diff options
Diffstat (limited to 'lib/sqlalchemy/orm/properties.py')
| -rw-r--r-- | lib/sqlalchemy/orm/properties.py | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/lib/sqlalchemy/orm/properties.py b/lib/sqlalchemy/orm/properties.py index 2a5e92c1a..41024101b 100644 --- a/lib/sqlalchemy/orm/properties.py +++ b/lib/sqlalchemy/orm/properties.py @@ -58,6 +58,8 @@ class ColumnProperty(StrategizedProperty): self.comparator_factory = kwargs.pop('comparator_factory', self.__class__.Comparator) self.descriptor = kwargs.pop('descriptor', None) self.extension = kwargs.pop('extension', None) + self.doc = kwargs.pop('doc', getattr(columns[0], 'doc', None)) + if kwargs: raise TypeError( "%s received unexpected keyword argument(s): %s" % ( @@ -80,7 +82,8 @@ class ColumnProperty(StrategizedProperty): self.key, comparator=self.comparator_factory(self, mapper), parententity=mapper, - property_=self + property_=self, + doc=self.doc ) def do_init(self): @@ -259,11 +262,12 @@ class SynonymProperty(MapperProperty): extension = None - def __init__(self, name, map_column=None, descriptor=None, comparator_factory=None): + def __init__(self, name, map_column=None, descriptor=None, comparator_factory=None, doc=None): self.name = name self.map_column = map_column self.descriptor = descriptor self.comparator_factory = comparator_factory + self.doc = doc or (descriptor and descriptor.__doc__) or None util.set_creation_order(self) def setup(self, context, entity, path, adapter, **kwargs): @@ -303,7 +307,8 @@ class SynonymProperty(MapperProperty): comparator=comparator_callable(self, mapper), parententity=mapper, property_=self, - proxy_property=self.descriptor + proxy_property=self.descriptor, + doc=self.doc ) def merge(self, session, source_state, source_dict, dest_state, dest_dict, load, _recursive): @@ -316,9 +321,10 @@ class ComparableProperty(MapperProperty): extension = None - def __init__(self, comparator_factory, descriptor=None): + def __init__(self, comparator_factory, descriptor=None, doc=None): self.descriptor = descriptor self.comparator_factory = comparator_factory + self.doc = doc or (descriptor and descriptor.__doc__) or None util.set_creation_order(self) def instrument_class(self, mapper): @@ -330,7 +336,8 @@ class ComparableProperty(MapperProperty): comparator=self.comparator_factory(self, mapper), parententity=mapper, property_=self, - proxy_property=self.descriptor + proxy_property=self.descriptor, + doc=self.doc, ) def setup(self, context, entity, path, adapter, **kwargs): @@ -364,6 +371,7 @@ class RelationshipProperty(StrategizedProperty): enable_typechecks=True, join_depth=None, comparator_factory=None, single_parent=False, innerjoin=False, + doc=None, strategy_class=None, _local_remote_pairs=None, query_class=None): self.uselist = uselist @@ -384,7 +392,7 @@ class RelationshipProperty(StrategizedProperty): self.enable_typechecks = enable_typechecks self.query_class = query_class self.innerjoin = innerjoin - + self.doc = doc self.join_depth = join_depth self.local_remote_pairs = _local_remote_pairs self.extension = extension @@ -433,7 +441,8 @@ class RelationshipProperty(StrategizedProperty): self.key, comparator=self.comparator_factory(self, mapper), parententity=mapper, - property_=self + property_=self, + doc=self.doc, ) class Comparator(PropComparator): @@ -1149,7 +1158,7 @@ class RelationshipProperty(StrategizedProperty): parent = self.parent.primary_mapper() kwargs.setdefault('viewonly', self.viewonly) kwargs.setdefault('post_update', self.post_update) - + self.back_populates = backref_key relationship = RelationshipProperty( parent, |
