diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/sqlalchemy/orm/descriptor_props.py | 8 | ||||
| -rw-r--r-- | lib/sqlalchemy/orm/properties.py | 3 | ||||
| -rw-r--r-- | lib/sqlalchemy/util/langhelpers.py | 4 |
3 files changed, 8 insertions, 7 deletions
diff --git a/lib/sqlalchemy/orm/descriptor_props.py b/lib/sqlalchemy/orm/descriptor_props.py index 24a12193b..fefd2d2a1 100644 --- a/lib/sqlalchemy/orm/descriptor_props.py +++ b/lib/sqlalchemy/orm/descriptor_props.py @@ -76,7 +76,7 @@ class DescriptorProperty(MapperProperty): mapper.class_manager.instrument_attribute(self.key, proxy_attr) -@util.langhelpers.dependency_for("sqlalchemy.orm.properties") +@util.langhelpers.dependency_for("sqlalchemy.orm.properties", add_to_all=True) class CompositeProperty(DescriptorProperty): """Defines a "composite" mapped attribute, representing a collection of columns as one attribute. @@ -465,7 +465,7 @@ class CompositeProperty(DescriptorProperty): return str(self.parent.class_.__name__) + "." + self.key -@util.langhelpers.dependency_for("sqlalchemy.orm.properties") +@util.langhelpers.dependency_for("sqlalchemy.orm.properties", add_to_all=True) class ConcreteInheritedProperty(DescriptorProperty): """A 'do nothing' :class:`.MapperProperty` that disables an attribute on a concrete subclass that is only present @@ -516,7 +516,7 @@ class ConcreteInheritedProperty(DescriptorProperty): self.descriptor = NoninheritedConcreteProp() -@util.langhelpers.dependency_for("sqlalchemy.orm.properties") +@util.langhelpers.dependency_for("sqlalchemy.orm.properties", add_to_all=True) class SynonymProperty(DescriptorProperty): def __init__(self, name, map_column=None, @@ -693,7 +693,7 @@ class SynonymProperty(DescriptorProperty): self.parent = parent -@util.langhelpers.dependency_for("sqlalchemy.orm.properties") +@util.langhelpers.dependency_for("sqlalchemy.orm.properties", add_to_all=True) class ComparableProperty(DescriptorProperty): """Instruments a Python property for use in query expressions.""" diff --git a/lib/sqlalchemy/orm/properties.py b/lib/sqlalchemy/orm/properties.py index 01ce7043a..ca47fe7ea 100644 --- a/lib/sqlalchemy/orm/properties.py +++ b/lib/sqlalchemy/orm/properties.py @@ -20,8 +20,7 @@ from .util import _orm_full_deannotate from .interfaces import PropComparator, StrategizedProperty -__all__ = ['ColumnProperty', 'CompositeProperty', 'SynonymProperty', - 'ComparableProperty', 'RelationshipProperty'] +__all__ = ['ColumnProperty'] @log.class_logger diff --git a/lib/sqlalchemy/util/langhelpers.py b/lib/sqlalchemy/util/langhelpers.py index 6a1db7a98..7e387f4f2 100644 --- a/lib/sqlalchemy/util/langhelpers.py +++ b/lib/sqlalchemy/util/langhelpers.py @@ -853,7 +853,7 @@ class MemoizedSlots(object): return self._fallback_getattr(key) -def dependency_for(modulename): +def dependency_for(modulename, add_to_all=False): def decorate(obj): # TODO: would be nice to improve on this import silliness, # unfortunately importlib doesn't work that great either @@ -862,6 +862,8 @@ def dependency_for(modulename): ".".join(tokens[0:-1]), globals(), locals(), [tokens[-1]]) mod = getattr(mod, tokens[-1]) setattr(mod, obj.__name__, obj) + if add_to_all and hasattr(mod, "__all__"): + mod.__all__.append(obj.__name__) return obj return decorate |
