summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/orm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/orm')
-rw-r--r--lib/sqlalchemy/orm/collections.py4
-rw-r--r--lib/sqlalchemy/orm/decl_api.py2
-rw-r--r--lib/sqlalchemy/orm/util.py2
3 files changed, 5 insertions, 3 deletions
diff --git a/lib/sqlalchemy/orm/collections.py b/lib/sqlalchemy/orm/collections.py
index ccb88866e..d71c84268 100644
--- a/lib/sqlalchemy/orm/collections.py
+++ b/lib/sqlalchemy/orm/collections.py
@@ -1252,7 +1252,7 @@ def _list_decorators():
def extend(fn):
def extend(self, iterable):
- for value in iterable:
+ for value in list(iterable):
self.append(value)
_tidy(extend)
@@ -1262,7 +1262,7 @@ def _list_decorators():
def __iadd__(self, iterable):
# list.__iadd__ takes any iterable and seems to let TypeError
# raise as-is instead of returning NotImplemented
- for value in iterable:
+ for value in list(iterable):
self.append(value)
return self
diff --git a/lib/sqlalchemy/orm/decl_api.py b/lib/sqlalchemy/orm/decl_api.py
index b55b201ee..ed8617d52 100644
--- a/lib/sqlalchemy/orm/decl_api.py
+++ b/lib/sqlalchemy/orm/decl_api.py
@@ -787,6 +787,8 @@ class registry:
class_dict["__abstract__"] = True
if mapper:
class_dict["__mapper_cls__"] = mapper
+ if hasattr(cls, "__class_getitem__"):
+ class_dict["__class_getitem__"] = cls.__class_getitem__
return metaclass(name, bases, class_dict)
diff --git a/lib/sqlalchemy/orm/util.py b/lib/sqlalchemy/orm/util.py
index 8403dd5ac..e7a485d0b 100644
--- a/lib/sqlalchemy/orm/util.py
+++ b/lib/sqlalchemy/orm/util.py
@@ -1083,7 +1083,7 @@ class LoaderCriteriaOption(CriteriaOption):
loaders such as lazy loaders.
- .. seealso::
+ .. seealso::
:ref:`examples_session_orm_events` - includes examples of using
:func:`_orm.with_loader_criteria`.