diff options
| author | Brian Jarrett <celttechie@gmail.com> | 2014-07-20 12:44:40 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-07-20 12:44:40 -0400 |
| commit | cca03097f47f22783d42d1853faac6cf84607c5a (patch) | |
| tree | 4fe1a63d03a2d88d1cf37e1167759dfaf84f4ce7 /lib/sqlalchemy/orm/path_registry.py | |
| parent | 827329a0cca5351094a1a86b6b2be2b9182f0ae2 (diff) | |
| download | sqlalchemy-cca03097f47f22783d42d1853faac6cf84607c5a.tar.gz | |
- apply pep8 formatting to sqlalchemy/sql, sqlalchemy/util, sqlalchemy/dialects,
sqlalchemy/orm, sqlalchemy/event, sqlalchemy/testing
Diffstat (limited to 'lib/sqlalchemy/orm/path_registry.py')
| -rw-r--r-- | lib/sqlalchemy/orm/path_registry.py | 37 |
1 files changed, 21 insertions, 16 deletions
diff --git a/lib/sqlalchemy/orm/path_registry.py b/lib/sqlalchemy/orm/path_registry.py index fb4f4b986..f10a125a8 100644 --- a/lib/sqlalchemy/orm/path_registry.py +++ b/lib/sqlalchemy/orm/path_registry.py @@ -14,6 +14,7 @@ from .. import exc from itertools import chain from .base import class_mapper + def _unreduce_path(path): return PathRegistry.deserialize(path) @@ -21,6 +22,7 @@ def _unreduce_path(path): _WILDCARD_TOKEN = "*" _DEFAULT_TOKEN = "_sa_default" + class PathRegistry(object): """Represent query load paths and registry functions. @@ -81,7 +83,7 @@ class PathRegistry(object): self.path[i] for i in range(0, len(self.path), 2) ]: if path_mapper.is_mapper and \ - path_mapper.isa(mapper): + path_mapper.isa(mapper): return True else: return False @@ -105,9 +107,9 @@ class PathRegistry(object): return None p = tuple(chain(*[(class_mapper(mcls), - class_mapper(mcls).attrs[key] - if key is not None else None) - for mcls, key in path])) + class_mapper(mcls).attrs[key] + if key is not None else None) + for mcls, key in path])) if p and p[-1] is None: p = p[0:-1] return cls.coerce(p) @@ -115,8 +117,8 @@ class PathRegistry(object): @classmethod def per_mapper(cls, mapper): return EntityRegistry( - cls.root, mapper - ) + cls.root, mapper + ) @classmethod def coerce(cls, raw): @@ -132,8 +134,8 @@ class PathRegistry(object): def __add__(self, other): return util.reduce( - lambda prev, next: prev[next], - other.path, self) + lambda prev, next: prev[next], + other.path, self) def __repr__(self): return "%s(%r)" % (self.__class__.__name__, self.path, ) @@ -146,11 +148,13 @@ class RootRegistry(PathRegistry): """ path = () has_entity = False + def __getitem__(self, entity): return entity._path_registry PathRegistry.root = RootRegistry() + class TokenRegistry(PathRegistry): def __init__(self, parent, token): self.token = token @@ -162,6 +166,7 @@ class TokenRegistry(PathRegistry): def __getitem__(self, entity): raise NotImplementedError() + class PropRegistry(PathRegistry): def __init__(self, parent, prop): # restate this path in terms of the @@ -171,7 +176,7 @@ class PropRegistry(PathRegistry): parent = parent.parent[prop.parent] elif insp.is_aliased_class and insp.with_polymorphic_mappers: if prop.parent is not insp.mapper and \ - prop.parent in insp.with_polymorphic_mappers: + prop.parent in insp.with_polymorphic_mappers: subclass_entity = parent[-1]._entity_for_mapper(prop.parent) parent = parent.parent[subclass_entity] @@ -196,16 +201,18 @@ class PropRegistry(PathRegistry): """ return ("loader", self.parent.token( - "%s:%s" % (self.prop.strategy_wildcard_key, _WILDCARD_TOKEN) - ).path + "%s:%s" % ( + self.prop.strategy_wildcard_key, _WILDCARD_TOKEN) + ).path ) @util.memoized_property def _default_path_loader_key(self): return ("loader", self.parent.token( - "%s:%s" % (self.prop.strategy_wildcard_key, _DEFAULT_TOKEN) - ).path + "%s:%s" % (self.prop.strategy_wildcard_key, + _DEFAULT_TOKEN) + ).path ) @util.memoized_property @@ -228,6 +235,7 @@ class PropRegistry(PathRegistry): self, entity ) + class EntityRegistry(PathRegistry, dict): is_aliased_class = False has_entity = True @@ -257,6 +265,3 @@ class EntityRegistry(PathRegistry, dict): def __missing__(self, key): self[key] = item = PropRegistry(self, key) return item - - - |
