summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/orm/base.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/orm/base.py')
-rw-r--r--lib/sqlalchemy/orm/base.py19
1 files changed, 16 insertions, 3 deletions
diff --git a/lib/sqlalchemy/orm/base.py b/lib/sqlalchemy/orm/base.py
index 3390ceec4..7bfafdc2b 100644
--- a/lib/sqlalchemy/orm/base.py
+++ b/lib/sqlalchemy/orm/base.py
@@ -437,6 +437,7 @@ class InspectionAttr(object):
here intact for forwards-compatibility.
"""
+ __slots__ = ()
is_selectable = False
"""Return True if this object is an instance of :class:`.Selectable`."""
@@ -488,6 +489,16 @@ class InspectionAttr(object):
"""
+
+class InspectionAttrInfo(InspectionAttr):
+ """Adds the ``.info`` attribute to :class:`.InspectionAttr`.
+
+ The rationale for :class:`.InspectionAttr` vs. :class:`.InspectionAttrInfo`
+ is that the former is compatible as a mixin for classes that specify
+ ``__slots__``; this is essentially an implementation artifact.
+
+ """
+
@util.memoized_property
def info(self):
"""Info dictionary associated with the object, allowing user-defined
@@ -501,9 +512,10 @@ class InspectionAttr(object):
.. versionadded:: 0.8 Added support for .info to all
:class:`.MapperProperty` subclasses.
- .. versionchanged:: 1.0.0 :attr:`.InspectionAttr.info` moved
- from :class:`.MapperProperty` so that it can apply to a wider
- variety of ORM and extension constructs.
+ .. versionchanged:: 1.0.0 :attr:`.MapperProperty.info` is also
+ available on extension types via the
+ :attr:`.InspectionAttrInfo.info` attribute, so that it can apply
+ to a wider variety of ORM and extension constructs.
.. seealso::
@@ -520,3 +532,4 @@ class _MappedAttribute(object):
attributes.
"""
+ __slots__ = ()