diff options
Diffstat (limited to 'lib/sqlalchemy/orm')
| -rw-r--r-- | lib/sqlalchemy/orm/collections.py | 4 | ||||
| -rw-r--r-- | lib/sqlalchemy/orm/decl_api.py | 2 | ||||
| -rw-r--r-- | lib/sqlalchemy/orm/util.py | 2 |
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`. |
