python-sqlalchemy fails to build with Python 3.12.0a7. ==================================== ERRORS ==================================== _______ ERROR at setup of ColumnsClauseFromsTest.test_exclude_eagerloads _______ Traceback (most recent call last): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 655, in _setup_tables_test_class cls._setup_once_tables() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 446, in _setup_once_tables cls.define_tables(cls._tables_metadata) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/test/orm/_fixtures.py", line 169, in define_tables Table( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/schema.py", line 82, in Table return schema.Table(*args, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "<string>", line 2, in __new__ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/util/deprecations.py", line 375, in warned return fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 618, in __new__ with util.safe_reraise(): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/util/langhelpers.py", line 70, in __exit__ compat.raise_( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/util/compat.py", line 211, in raise_ raise exception File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 614, in __new__ table._init(name, metadata, *args, **kw) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 649, in _init PrimaryKeyConstraint( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 4017, in __init__ super(PrimaryKeyConstraint, self).__init__(*columns, **kw) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 3464, in __init__ ColumnCollectionMixin.__init__( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 3353, in __init__ self.columns = DedupeColumnCollection() ^^^^^^^^^^^^^^^^^^^^^^^^ RecursionError: maximum recursion depth exceeded _ ERROR at setup of ColumnsClauseFromsTest.test_maintain_annotations_from_annoated_cols _ Traceback (most recent call last): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 655, in _setup_tables_test_class cls._setup_once_tables() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 446, in _setup_once_tables cls.define_tables(cls._tables_metadata) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/test/orm/_fixtures.py", line 169, in define_tables Table( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/schema.py", line 82, in Table return schema.Table(*args, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "<string>", line 2, in __new__ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/util/deprecations.py", line 375, in warned return fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 618, in __new__ with util.safe_reraise(): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/util/langhelpers.py", line 70, in __exit__ compat.raise_( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/util/compat.py", line 211, in raise_ raise exception File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 614, in __new__ table._init(name, metadata, *args, **kw) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 649, in _init PrimaryKeyConstraint( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 4017, in __init__ super(PrimaryKeyConstraint, self).__init__(*columns, **kw) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 3464, in __init__ ColumnCollectionMixin.__init__( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 3353, in __init__ self.columns = DedupeColumnCollection() ^^^^^^^^^^^^^^^^^^^^^^^^ RecursionError: maximum recursion depth exceeded _ ERROR at setup of ColumnsClauseFromsTest.test_maintain_annotations_from_table _ Traceback (most recent call last): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 655, in _setup_tables_test_class cls._setup_once_tables() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 446, in _setup_once_tables cls.define_tables(cls._tables_metadata) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/test/orm/_fixtures.py", line 169, in define_tables Table( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/schema.py", line 82, in Table return schema.Table(*args, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "<string>", line 2, in __new__ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/util/deprecations.py", line 375, in warned return fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 618, in __new__ with util.safe_reraise(): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/util/langhelpers.py", line 70, in __exit__ compat.raise_( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/util/compat.py", line 211, in raise_ raise exception File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 614, in __new__ table._init(name, metadata, *args, **kw) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 649, in _init PrimaryKeyConstraint( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 4017, in __init__ super(PrimaryKeyConstraint, self).__init__(*columns, **kw) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 3464, in __init__ ColumnCollectionMixin.__init__( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 3353, in __init__ self.columns = DedupeColumnCollection() ^^^^^^^^^^^^^^^^^^^^^^^^ RecursionError: maximum recursion depth exceeded _ ERROR at setup of ColumnsClauseFromsTest.test_replace_into_select_from_maintains_existing[False] _ Traceback (most recent call last): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 655, in _setup_tables_test_class cls._setup_once_tables() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 446, in _setup_once_tables cls.define_tables(cls._tables_metadata) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/test/orm/_fixtures.py", line 169, in define_tables Table( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/schema.py", line 82, in Table return schema.Table(*args, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "<string>", line 2, in __new__ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/util/deprecations.py", line 375, in warned return fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 618, in __new__ with util.safe_reraise(): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/util/langhelpers.py", line 70, in __exit__ compat.raise_( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/util/compat.py", line 211, in raise_ raise exception File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 614, in __new__ table._init(name, metadata, *args, **kw) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 649, in _init PrimaryKeyConstraint( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 4017, in __init__ super(PrimaryKeyConstraint, self).__init__(*columns, **kw) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 3464, in __init__ ColumnCollectionMixin.__init__( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 3353, in __init__ self.columns = DedupeColumnCollection() ^^^^^^^^^^^^^^^^^^^^^^^^ RecursionError: maximum recursion depth exceeded _ ERROR at setup of ColumnsClauseFromsTest.test_replace_into_select_from_maintains_existing[True] _ Traceback (most recent call last): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 655, in _setup_tables_test_class cls._setup_once_tables() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 446, in _setup_once_tables cls.define_tables(cls._tables_metadata) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/test/orm/_fixtures.py", line 169, in define_tables Table( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/schema.py", line 82, in Table return schema.Table(*args, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "<string>", line 2, in __new__ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/util/deprecations.py", line 375, in warned return fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 618, in __new__ with util.safe_reraise(): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/util/langhelpers.py", line 70, in __exit__ compat.raise_( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/util/compat.py", line 211, in raise_ raise exception File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 614, in __new__ table._init(name, metadata, *args, **kw) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 649, in _init PrimaryKeyConstraint( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 4017, in __init__ super(PrimaryKeyConstraint, self).__init__(*columns, **kw) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 3464, in __init__ ColumnCollectionMixin.__init__( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 3353, in __init__ self.columns = DedupeColumnCollection() ^^^^^^^^^^^^^^^^^^^^^^^^ RecursionError: maximum recursion depth exceeded _ ERROR at setup of ColumnsClauseFromsTest.test_replace_into_select_from_with_loader_criteria[False] _ Traceback (most recent call last): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 655, in _setup_tables_test_class cls._setup_once_tables() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 446, in _setup_once_tables cls.define_tables(cls._tables_metadata) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/test/orm/_fixtures.py", line 169, in define_tables Table( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/schema.py", line 82, in Table return schema.Table(*args, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "<string>", line 2, in __new__ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/util/deprecations.py", line 375, in warned return fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 618, in __new__ with util.safe_reraise(): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/util/langhelpers.py", line 70, in __exit__ compat.raise_( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/util/compat.py", line 211, in raise_ raise exception File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 614, in __new__ table._init(name, metadata, *args, **kw) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 649, in _init PrimaryKeyConstraint( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 4017, in __init__ super(PrimaryKeyConstraint, self).__init__(*columns, **kw) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 3464, in __init__ ColumnCollectionMixin.__init__( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 3353, in __init__ self.columns = DedupeColumnCollection() ^^^^^^^^^^^^^^^^^^^^^^^^ RecursionError: maximum recursion depth exceeded _ ERROR at setup of ColumnsClauseFromsTest.test_replace_into_select_from_with_loader_criteria[True] _ Traceback (most recent call last): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 655, in _setup_tables_test_class cls._setup_once_tables() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 446, in _setup_once_tables cls.define_tables(cls._tables_metadata) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/test/orm/_fixtures.py", line 169, in define_tables Table( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/schema.py", line 82, in Table return schema.Table(*args, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "<string>", line 2, in __new__ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/util/deprecations.py", line 375, in warned return fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 618, in __new__ with util.safe_reraise(): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/util/langhelpers.py", line 70, in __exit__ compat.raise_( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/util/compat.py", line 211, in raise_ raise exception File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 614, in __new__ table._init(name, metadata, *args, **kw) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 649, in _init PrimaryKeyConstraint( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 4017, in __init__ super(PrimaryKeyConstraint, self).__init__(*columns, **kw) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 3464, in __init__ ColumnCollectionMixin.__init__( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 3353, in __init__ self.columns = DedupeColumnCollection() ^^^^^^^^^^^^^^^^^^^^^^^^ RecursionError: maximum recursion depth exceeded __ ERROR at setup of ColumnsClauseFromsTest.test_with_only_columns_unknown_kw __ Traceback (most recent call last): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 655, in _setup_tables_test_class cls._setup_once_tables() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 446, in _setup_once_tables cls.define_tables(cls._tables_metadata) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/test/orm/_fixtures.py", line 169, in define_tables Table( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/schema.py", line 82, in Table return schema.Table(*args, **kw) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "<string>", line 2, in __new__ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/util/deprecations.py", line 375, in warned return fn(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 618, in __new__ with util.safe_reraise(): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/util/langhelpers.py", line 70, in __exit__ compat.raise_( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/util/compat.py", line 211, in raise_ raise exception File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 614, in __new__ table._init(name, metadata, *args, **kw) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 649, in _init PrimaryKeyConstraint( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 4017, in __init__ super(PrimaryKeyConstraint, self).__init__(*columns, **kw) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 3464, in __init__ ColumnCollectionMixin.__init__( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/sql/schema.py", line 3353, in __init__ self.columns = DedupeColumnCollection() ^^^^^^^^^^^^^^^^^^^^^^^^ RecursionError: maximum recursion depth exceeded __________ ERROR at setup of CorrelateTest.test_correlate_all_column ___________ Traceback (most recent call last): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 656, in _setup_tables_test_class cls._setup_once_classes() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 686, in _setup_once_classes cls._with_register_classes(cls.setup_classes) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 792, in _with_register_classes super(DeclarativeMappedTest, cls)._with_register_classes(fn) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 740, in _with_register_classes fn() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/test/orm/test_core_compilation.py", line 2627, in setup_classes class T1(Base): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 777, in __init__ DeclarativeMeta.__init__(cls, classname, bases, dict_) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_api.py", line 76, in __init__ _as_declarative(reg, cls, dict_) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 126, in _as_declarative return _MapperConfig.setup_mapping(registry, cls, dict_, None, {}) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 183, in setup_mapping return cfg_cls(registry, cls_, dict_, table, mapper_kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 313, in __init__ super(_ClassScanMapperConfig, self).__init__(registry, cls_, mapper_kw) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 192, in __init__ instrumentation.register_class( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 575, in register_class manager = _instrumentation_factory.create_manager_for_cls(class_) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 522, in create_manager_for_cls manager = factory(class_) ^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 104, in __init__ self.dispatch._events._new_classmanager_instance(class_, self) ^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 321, in __get__ disp = self.dispatch._for_instance(obj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 127, in _for_instance return self._for_class(instance_cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 123, in _for_class return self.__class__(self, instance_cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 89, in __init__ self._empty_listeners = self._empty_listener_reg[instance_cls] ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ File "/usr/lib64/python3.12/weakref.py", line 415, in __getitem__ return self.data[ref(key)] ^^^^^^^^ RecursionError: maximum recursion depth exceeded while calling a Python object ___________ ERROR at setup of CorrelateTest.test_correlate_all_from ____________ Traceback (most recent call last): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 656, in _setup_tables_test_class cls._setup_once_classes() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 686, in _setup_once_classes cls._with_register_classes(cls.setup_classes) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 792, in _with_register_classes super(DeclarativeMappedTest, cls)._with_register_classes(fn) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 740, in _with_register_classes fn() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/test/orm/test_core_compilation.py", line 2627, in setup_classes class T1(Base): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 777, in __init__ DeclarativeMeta.__init__(cls, classname, bases, dict_) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_api.py", line 76, in __init__ _as_declarative(reg, cls, dict_) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 126, in _as_declarative return _MapperConfig.setup_mapping(registry, cls, dict_, None, {}) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 183, in setup_mapping return cfg_cls(registry, cls_, dict_, table, mapper_kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 313, in __init__ super(_ClassScanMapperConfig, self).__init__(registry, cls_, mapper_kw) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 192, in __init__ instrumentation.register_class( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 575, in register_class manager = _instrumentation_factory.create_manager_for_cls(class_) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 522, in create_manager_for_cls manager = factory(class_) ^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 104, in __init__ self.dispatch._events._new_classmanager_instance(class_, self) ^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 321, in __get__ disp = self.dispatch._for_instance(obj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 127, in _for_instance return self._for_class(instance_cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 123, in _for_class return self.__class__(self, instance_cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 89, in __init__ self._empty_listeners = self._empty_listener_reg[instance_cls] ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ File "/usr/lib64/python3.12/weakref.py", line 415, in __getitem__ return self.data[ref(key)] ^^^^^^^^ RecursionError: maximum recursion depth exceeded while calling a Python object ___________ ERROR at setup of CorrelateTest.test_correlate_all_where ___________ Traceback (most recent call last): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 656, in _setup_tables_test_class cls._setup_once_classes() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 686, in _setup_once_classes cls._with_register_classes(cls.setup_classes) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 792, in _with_register_classes super(DeclarativeMappedTest, cls)._with_register_classes(fn) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 740, in _with_register_classes fn() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/test/orm/test_core_compilation.py", line 2627, in setup_classes class T1(Base): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 777, in __init__ DeclarativeMeta.__init__(cls, classname, bases, dict_) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_api.py", line 76, in __init__ _as_declarative(reg, cls, dict_) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 126, in _as_declarative return _MapperConfig.setup_mapping(registry, cls, dict_, None, {}) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 183, in setup_mapping return cfg_cls(registry, cls_, dict_, table, mapper_kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 313, in __init__ super(_ClassScanMapperConfig, self).__init__(registry, cls_, mapper_kw) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 192, in __init__ instrumentation.register_class( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 575, in register_class manager = _instrumentation_factory.create_manager_for_cls(class_) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 522, in create_manager_for_cls manager = factory(class_) ^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 104, in __init__ self.dispatch._events._new_classmanager_instance(class_, self) ^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 321, in __get__ disp = self.dispatch._for_instance(obj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 127, in _for_instance return self._for_class(instance_cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 123, in _for_class return self.__class__(self, instance_cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 89, in __init__ self._empty_listeners = self._empty_listener_reg[instance_cls] ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ File "/usr/lib64/python3.12/weakref.py", line 415, in __getitem__ return self.data[ref(key)] ^^^^^^^^ RecursionError: maximum recursion depth exceeded while calling a Python object ________ ERROR at setup of CorrelateTest.test_correlate_alone_noeffect _________ Traceback (most recent call last): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 656, in _setup_tables_test_class cls._setup_once_classes() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 686, in _setup_once_classes cls._with_register_classes(cls.setup_classes) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 792, in _with_register_classes super(DeclarativeMappedTest, cls)._with_register_classes(fn) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 740, in _with_register_classes fn() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/test/orm/test_core_compilation.py", line 2627, in setup_classes class T1(Base): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 777, in __init__ DeclarativeMeta.__init__(cls, classname, bases, dict_) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_api.py", line 76, in __init__ _as_declarative(reg, cls, dict_) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 126, in _as_declarative return _MapperConfig.setup_mapping(registry, cls, dict_, None, {}) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 183, in setup_mapping return cfg_cls(registry, cls_, dict_, table, mapper_kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 313, in __init__ super(_ClassScanMapperConfig, self).__init__(registry, cls_, mapper_kw) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 192, in __init__ instrumentation.register_class( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 575, in register_class manager = _instrumentation_factory.create_manager_for_cls(class_) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 522, in create_manager_for_cls manager = factory(class_) ^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 104, in __init__ self.dispatch._events._new_classmanager_instance(class_, self) ^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 321, in __get__ disp = self.dispatch._for_instance(obj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 127, in _for_instance return self._for_class(instance_cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 123, in _for_class return self.__class__(self, instance_cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 89, in __init__ self._empty_listeners = self._empty_listener_reg[instance_cls] ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ File "/usr/lib64/python3.12/weakref.py", line 415, in __getitem__ return self.data[ref(key)] ^^^^^^^^ RecursionError: maximum recursion depth exceeded while calling a Python object __________ ERROR at setup of CorrelateTest.test_correlate_auto_column __________ Traceback (most recent call last): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 656, in _setup_tables_test_class cls._setup_once_classes() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 686, in _setup_once_classes cls._with_register_classes(cls.setup_classes) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 792, in _with_register_classes super(DeclarativeMappedTest, cls)._with_register_classes(fn) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 740, in _with_register_classes fn() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/test/orm/test_core_compilation.py", line 2627, in setup_classes class T1(Base): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 777, in __init__ DeclarativeMeta.__init__(cls, classname, bases, dict_) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_api.py", line 76, in __init__ _as_declarative(reg, cls, dict_) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 126, in _as_declarative return _MapperConfig.setup_mapping(registry, cls, dict_, None, {}) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 183, in setup_mapping return cfg_cls(registry, cls_, dict_, table, mapper_kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 313, in __init__ super(_ClassScanMapperConfig, self).__init__(registry, cls_, mapper_kw) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 192, in __init__ instrumentation.register_class( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 575, in register_class manager = _instrumentation_factory.create_manager_for_cls(class_) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 522, in create_manager_for_cls manager = factory(class_) ^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 104, in __init__ self.dispatch._events._new_classmanager_instance(class_, self) ^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 321, in __get__ disp = self.dispatch._for_instance(obj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 127, in _for_instance return self._for_class(instance_cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 123, in _for_class return self.__class__(self, instance_cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 89, in __init__ self._empty_listeners = self._empty_listener_reg[instance_cls] ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ File "/usr/lib64/python3.12/weakref.py", line 415, in __getitem__ return self.data[ref(key)] ^^^^^^^^ RecursionError: maximum recursion depth exceeded while calling a Python object ___________ ERROR at setup of CorrelateTest.test_correlate_auto_from ___________ Traceback (most recent call last): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 656, in _setup_tables_test_class cls._setup_once_classes() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 686, in _setup_once_classes cls._with_register_classes(cls.setup_classes) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 792, in _with_register_classes super(DeclarativeMappedTest, cls)._with_register_classes(fn) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 740, in _with_register_classes fn() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/test/orm/test_core_compilation.py", line 2627, in setup_classes class T1(Base): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 777, in __init__ DeclarativeMeta.__init__(cls, classname, bases, dict_) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_api.py", line 76, in __init__ _as_declarative(reg, cls, dict_) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 126, in _as_declarative return _MapperConfig.setup_mapping(registry, cls, dict_, None, {}) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 183, in setup_mapping return cfg_cls(registry, cls_, dict_, table, mapper_kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 313, in __init__ super(_ClassScanMapperConfig, self).__init__(registry, cls_, mapper_kw) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 192, in __init__ instrumentation.register_class( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 575, in register_class manager = _instrumentation_factory.create_manager_for_cls(class_) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 522, in create_manager_for_cls manager = factory(class_) ^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 104, in __init__ self.dispatch._events._new_classmanager_instance(class_, self) ^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 321, in __get__ disp = self.dispatch._for_instance(obj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 127, in _for_instance return self._for_class(instance_cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 123, in _for_class return self.__class__(self, instance_cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 89, in __init__ self._empty_listeners = self._empty_listener_reg[instance_cls] ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ File "/usr/lib64/python3.12/weakref.py", line 415, in __getitem__ return self.data[ref(key)] ^^^^^^^^ RecursionError: maximum recursion depth exceeded while calling a Python object __________ ERROR at setup of CorrelateTest.test_correlate_auto_having __________ Traceback (most recent call last): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 656, in _setup_tables_test_class cls._setup_once_classes() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 686, in _setup_once_classes cls._with_register_classes(cls.setup_classes) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 792, in _with_register_classes super(DeclarativeMappedTest, cls)._with_register_classes(fn) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 740, in _with_register_classes fn() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/test/orm/test_core_compilation.py", line 2627, in setup_classes class T1(Base): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 777, in __init__ DeclarativeMeta.__init__(cls, classname, bases, dict_) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_api.py", line 76, in __init__ _as_declarative(reg, cls, dict_) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 126, in _as_declarative return _MapperConfig.setup_mapping(registry, cls, dict_, None, {}) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 183, in setup_mapping return cfg_cls(registry, cls_, dict_, table, mapper_kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 313, in __init__ super(_ClassScanMapperConfig, self).__init__(registry, cls_, mapper_kw) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 192, in __init__ instrumentation.register_class( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 575, in register_class manager = _instrumentation_factory.create_manager_for_cls(class_) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 522, in create_manager_for_cls manager = factory(class_) ^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 104, in __init__ self.dispatch._events._new_classmanager_instance(class_, self) ^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 321, in __get__ disp = self.dispatch._for_instance(obj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 127, in _for_instance return self._for_class(instance_cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 123, in _for_class return self.__class__(self, instance_cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 89, in __init__ self._empty_listeners = self._empty_listener_reg[instance_cls] ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ File "/usr/lib64/python3.12/weakref.py", line 415, in __getitem__ return self.data[ref(key)] ^^^^^^^^ RecursionError: maximum recursion depth exceeded while calling a Python object __________ ERROR at setup of CorrelateTest.test_correlate_auto_where ___________ Traceback (most recent call last): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 656, in _setup_tables_test_class cls._setup_once_classes() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 686, in _setup_once_classes cls._with_register_classes(cls.setup_classes) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 792, in _with_register_classes super(DeclarativeMappedTest, cls)._with_register_classes(fn) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 740, in _with_register_classes fn() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/test/orm/test_core_compilation.py", line 2627, in setup_classes class T1(Base): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 777, in __init__ DeclarativeMeta.__init__(cls, classname, bases, dict_) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_api.py", line 76, in __init__ _as_declarative(reg, cls, dict_) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 126, in _as_declarative return _MapperConfig.setup_mapping(registry, cls, dict_, None, {}) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 183, in setup_mapping return cfg_cls(registry, cls_, dict_, table, mapper_kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 313, in __init__ super(_ClassScanMapperConfig, self).__init__(registry, cls_, mapper_kw) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 192, in __init__ instrumentation.register_class( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 575, in register_class manager = _instrumentation_factory.create_manager_for_cls(class_) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 522, in create_manager_for_cls manager = factory(class_) ^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 104, in __init__ self.dispatch._events._new_classmanager_instance(class_, self) ^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 321, in __get__ disp = self.dispatch._for_instance(obj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 127, in _for_instance return self._for_class(instance_cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 123, in _for_class return self.__class__(self, instance_cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 89, in __init__ self._empty_listeners = self._empty_listener_reg[instance_cls] ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ File "/usr/lib64/python3.12/weakref.py", line 415, in __getitem__ return self.data[ref(key)] ^^^^^^^^ RecursionError: maximum recursion depth exceeded while calling a Python object _____ ERROR at setup of CorrelateTest.test_correlate_auto_where_singlefrom _____ Traceback (most recent call last): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 656, in _setup_tables_test_class cls._setup_once_classes() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 686, in _setup_once_classes cls._with_register_classes(cls.setup_classes) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 792, in _with_register_classes super(DeclarativeMappedTest, cls)._with_register_classes(fn) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 740, in _with_register_classes fn() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/test/orm/test_core_compilation.py", line 2627, in setup_classes class T1(Base): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 777, in __init__ DeclarativeMeta.__init__(cls, classname, bases, dict_) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_api.py", line 76, in __init__ _as_declarative(reg, cls, dict_) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 126, in _as_declarative return _MapperConfig.setup_mapping(registry, cls, dict_, None, {}) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 183, in setup_mapping return cfg_cls(registry, cls_, dict_, table, mapper_kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 313, in __init__ super(_ClassScanMapperConfig, self).__init__(registry, cls_, mapper_kw) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 192, in __init__ instrumentation.register_class( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 575, in register_class manager = _instrumentation_factory.create_manager_for_cls(class_) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 522, in create_manager_for_cls manager = factory(class_) ^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 104, in __init__ self.dispatch._events._new_classmanager_instance(class_, self) ^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 321, in __get__ disp = self.dispatch._for_instance(obj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 127, in _for_instance return self._for_class(instance_cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 123, in _for_class return self.__class__(self, instance_cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 89, in __init__ self._empty_listeners = self._empty_listener_reg[instance_cls] ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ File "/usr/lib64/python3.12/weakref.py", line 415, in __getitem__ return self.data[ref(key)] ^^^^^^^^ RecursionError: maximum recursion depth exceeded while calling a Python object ________ ERROR at setup of CorrelateTest.test_correlate_disabled_column ________ Traceback (most recent call last): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 656, in _setup_tables_test_class cls._setup_once_classes() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 686, in _setup_once_classes cls._with_register_classes(cls.setup_classes) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 792, in _with_register_classes super(DeclarativeMappedTest, cls)._with_register_classes(fn) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 740, in _with_register_classes fn() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/test/orm/test_core_compilation.py", line 2627, in setup_classes class T1(Base): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 777, in __init__ DeclarativeMeta.__init__(cls, classname, bases, dict_) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_api.py", line 76, in __init__ _as_declarative(reg, cls, dict_) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 126, in _as_declarative return _MapperConfig.setup_mapping(registry, cls, dict_, None, {}) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 183, in setup_mapping return cfg_cls(registry, cls_, dict_, table, mapper_kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 313, in __init__ super(_ClassScanMapperConfig, self).__init__(registry, cls_, mapper_kw) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 192, in __init__ instrumentation.register_class( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 575, in register_class manager = _instrumentation_factory.create_manager_for_cls(class_) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 522, in create_manager_for_cls manager = factory(class_) ^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 104, in __init__ self.dispatch._events._new_classmanager_instance(class_, self) ^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 321, in __get__ disp = self.dispatch._for_instance(obj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 127, in _for_instance return self._for_class(instance_cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 123, in _for_class return self.__class__(self, instance_cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 89, in __init__ self._empty_listeners = self._empty_listener_reg[instance_cls] ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ File "/usr/lib64/python3.12/weakref.py", line 415, in __getitem__ return self.data[ref(key)] ^^^^^^^^ RecursionError: maximum recursion depth exceeded while calling a Python object _________ ERROR at setup of CorrelateTest.test_correlate_disabled_from _________ Traceback (most recent call last): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 656, in _setup_tables_test_class cls._setup_once_classes() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 686, in _setup_once_classes cls._with_register_classes(cls.setup_classes) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 792, in _with_register_classes super(DeclarativeMappedTest, cls)._with_register_classes(fn) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 740, in _with_register_classes fn() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/test/orm/test_core_compilation.py", line 2627, in setup_classes class T1(Base): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 777, in __init__ DeclarativeMeta.__init__(cls, classname, bases, dict_) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_api.py", line 76, in __init__ _as_declarative(reg, cls, dict_) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 126, in _as_declarative return _MapperConfig.setup_mapping(registry, cls, dict_, None, {}) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 183, in setup_mapping return cfg_cls(registry, cls_, dict_, table, mapper_kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 313, in __init__ super(_ClassScanMapperConfig, self).__init__(registry, cls_, mapper_kw) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 192, in __init__ instrumentation.register_class( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 575, in register_class manager = _instrumentation_factory.create_manager_for_cls(class_) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 522, in create_manager_for_cls manager = factory(class_) ^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 104, in __init__ self.dispatch._events._new_classmanager_instance(class_, self) ^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 321, in __get__ disp = self.dispatch._for_instance(obj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 127, in _for_instance return self._for_class(instance_cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 123, in _for_class return self.__class__(self, instance_cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 89, in __init__ self._empty_listeners = self._empty_listener_reg[instance_cls] ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ File "/usr/lib64/python3.12/weakref.py", line 415, in __getitem__ return self.data[ref(key)] ^^^^^^^^ RecursionError: maximum recursion depth exceeded while calling a Python object ________ ERROR at setup of CorrelateTest.test_correlate_disabled_having ________ Traceback (most recent call last): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 656, in _setup_tables_test_class cls._setup_once_classes() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 686, in _setup_once_classes cls._with_register_classes(cls.setup_classes) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 792, in _with_register_classes super(DeclarativeMappedTest, cls)._with_register_classes(fn) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 740, in _with_register_classes fn() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/test/orm/test_core_compilation.py", line 2627, in setup_classes class T1(Base): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 777, in __init__ DeclarativeMeta.__init__(cls, classname, bases, dict_) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_api.py", line 76, in __init__ _as_declarative(reg, cls, dict_) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 126, in _as_declarative return _MapperConfig.setup_mapping(registry, cls, dict_, None, {}) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 183, in setup_mapping return cfg_cls(registry, cls_, dict_, table, mapper_kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 313, in __init__ super(_ClassScanMapperConfig, self).__init__(registry, cls_, mapper_kw) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 192, in __init__ instrumentation.register_class( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 575, in register_class manager = _instrumentation_factory.create_manager_for_cls(class_) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 522, in create_manager_for_cls manager = factory(class_) ^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 104, in __init__ self.dispatch._events._new_classmanager_instance(class_, self) ^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 321, in __get__ disp = self.dispatch._for_instance(obj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 127, in _for_instance return self._for_class(instance_cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 123, in _for_class return self.__class__(self, instance_cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 89, in __init__ self._empty_listeners = self._empty_listener_reg[instance_cls] ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ File "/usr/lib64/python3.12/weakref.py", line 415, in __getitem__ return self.data[ref(key)] ^^^^^^^^ RecursionError: maximum recursion depth exceeded while calling a Python object _____ ERROR at setup of CorrelateTest.test_correlate_disabled_where[False] _____ Traceback (most recent call last): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 656, in _setup_tables_test_class cls._setup_once_classes() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 686, in _setup_once_classes cls._with_register_classes(cls.setup_classes) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 792, in _with_register_classes super(DeclarativeMappedTest, cls)._with_register_classes(fn) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 740, in _with_register_classes fn() File "/builddir/build/BUILD/SQLAlchemy-1.4.46/test/orm/test_core_compilation.py", line 2627, in setup_classes class T1(Base): File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/testing/fixtures.py", line 777, in __init__ DeclarativeMeta.__init__(cls, classname, bases, dict_) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_api.py", line 76, in __init__ _as_declarative(reg, cls, dict_) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 126, in _as_declarative return _MapperConfig.setup_mapping(registry, cls, dict_, None, {}) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 183, in setup_mapping return cfg_cls(registry, cls_, dict_, table, mapper_kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 313, in __init__ super(_ClassScanMapperConfig, self).__init__(registry, cls_, mapper_kw) File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/decl_base.py", line 192, in __init__ instrumentation.register_class( File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 575, in register_class manager = _instrumentation_factory.create_manager_for_cls(class_) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 522, in create_manager_for_cls manager = factory(class_) ^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/orm/instrumentation.py", line 104, in __init__ self.dispatch._events._new_classmanager_instance(class_, self) ^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 321, in __get__ disp = self.dispatch._for_instance(obj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 127, in _for_instance return self._for_class(instance_cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 123, in _for_class return self.__class__(self, instance_cls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.46/lib/sqlalchemy/event/base.py", line 89, in __init__ self._empty_listeners = self._empty_listener_reg[instance_cls] ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^ File "/usr/lib64/python3.12/weakref.py", line 415, in __getitem__ return self.data[ref(key)] ^^^^^^^^ RecursionError: maximum recursion depth exceeded while calling a Python object _____ ERROR at setup of Corr https://docs.python.org/3.12/whatsnew/3.12.html For the build logs, see: https://copr-be.cloud.fedoraproject.org/results/@python/python3.12/fedora-rawhide-x86_64/05903230-python-sqlalchemy/ For all our attempts to build python-sqlalchemy with Python 3.12, see: https://copr.fedorainfracloud.org/coprs/g/python/python3.12/package/python-sqlalchemy/ Testing and mass rebuild of packages is happening in copr. You can follow these instructions to test locally in mock if your package builds with Python 3.12: https://copr.fedorainfracloud.org/coprs/g/python/python3.12/ Let us know here if you have any questions. Python 3.12 is planned to be included in Fedora 39. To make that update smoother, we're building Fedora packages with all pre-releases of Python 3.12. A build failure prevents us from testing all dependent packages (transitive [Build]Requires), so if this package is required a lot, it's important for us to get it fixed soon. We'd appreciate help from the people who know this package best, but if you don't want to work on this now, let us know so we can try to work around it on our side.
this could be a lot of different things, like perhaps some change in function introspection is causing decorators SQLAlchemy generates to behave differently, or language changes are causing Pytest to rewrite modules incorrectly (it does some syntax-oriented module rewriting), or just a plain interpreter bug in python 3.12a7. I'll try to do a build of 3.12a7 and see who's at fault (I'm leaning towards an unexpected API or behavioral change in python 3.12 that is possibly unintended on their end).
OK this does not reproduce for me using a new build of Python 3.12a7 with any version of SQLAlchemy including the 1.4.46 tag. There are tests failures for sure, related to a change in slice behavior we may have to accommodate, but no recursion overflows. Can we get more detail on this build? Is there a build of greenlet being used ? are the C extensions built or not? what version of pytest ? @nphilipp does this reproduce for you?
A similar RecursionError that *is* reproducible in SQLAlchemy on this end was introdcued in Python 3.12.0a7 and fixed in Python 3.12.0b1, which is https://github.com/python/cpython/issues/103272 . That error involves ``__getattr__()`` use which doesn't quite seem to be what's happening in the trace above. Nevertheless, can the reporter try out Python 3.12.0b1 and see if issue is resolved?
A build with b1 should appear shortly at https://copr.fedorainfracloud.org/coprs/g/python/python3.12/package/python-sqlalchemy/
> test/base/test_concurrency_py3k.py::TestAsyncAdaptedQueue::test_error_other_loop Fatal Python error: Segmentation fault This usually indicates some of the dependencies with an extension module need to be rebuilt with the new pre-release before we can test this one.
> This usually indicates some of the dependencies with an extension module need to be rebuilt with the new pre-release before we can test this one. right, it's going to be python-greenlet. I have no idea how we have a greenlet that works with python 3.12 because greenlet has not been updated yet upstream: https://github.com/python-greenlet/greenlet/issues/357 .
(In reply to Michael Bayer from comment #6) > > This usually indicates some of the dependencies with an extension module need to be rebuilt with the new pre-release before we can test this one. > > right, it's going to be python-greenlet. I have no idea how we have a > greenlet that works with python 3.12 because greenlet has not been updated > yet upstream: https://github.com/python-greenlet/greenlet/issues/357 . We have this patch that allows us to build greenlet with 3.12. https://src.fedoraproject.org/rpms/python-greenlet/c/15e20161cfce391c353d3b68c80bc6ffe494a1d7?branch=rawhide
yet there is a new failure in https://copr.fedorainfracloud.org/coprs/g/python/python3.12/package/python-greenlet
SQLAlchemy main upstream is passing 100% with Python 3.12b1 which is now integrated in CI: https://jenkins.sqlalchemy.org/job/sqlalchemy_main/ the greenlet patch we are using is https://github.com/mdboom/greenlet/tree/python-312
The current error in the f39-python side tag with Python 3.12.0b3 is: https://koji.fedoraproject.org/koji/buildinfo?buildID=2216643 =================================== FAILURES =================================== _________ ResultTest_sqlite+pysqlite_3_41_2.test_subquery_eagerloading _________ Traceback (most recent call last): File "/builddir/build/BUILD/SQLAlchemy-1.4.48/lib/sqlalchemy/engine/row.py", line 131, in _get_by_key_impl rec = self._keymap[key] ~~~~~~~~~~~~^^^^^ KeyError: slice(1, None, None) The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/builddir/build/BUILD/SQLAlchemy-1.4.48/test/ext/test_baked.py", line 900, in test_subquery_eagerloading self.assert_sql_count(testing.db, go, 3) File "/builddir/build/BUILD/SQLAlchemy-1.4.48/lib/sqlalchemy/testing/assertions.py", line 890, in assert_sql_count self.assert_sql_execution( File "/builddir/build/BUILD/SQLAlchemy-1.4.48/lib/sqlalchemy/testing/assertions.py", line 871, in assert_sql_execution result = callable_() ^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.48/test/ext/test_baked.py", line 897, in go result = bq(sess).all() ^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.48/lib/sqlalchemy/ext/baked.py", line 498, in all return self._iter().all() ^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.48/lib/sqlalchemy/engine/result.py", line 1476, in all return self._allrows() ^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.48/lib/sqlalchemy/engine/result.py", line 401, in _allrows rows = self._fetchall_impl() ^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.48/lib/sqlalchemy/engine/result.py", line 1389, in _fetchall_impl return self._real_result._fetchall_impl() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.48/lib/sqlalchemy/engine/result.py", line 1813, in _fetchall_impl return list(self.iterator) ^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.48/lib/sqlalchemy/orm/loading.py", line 151, in chunks rows = [proc(row) for row in fetch] ^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.48/lib/sqlalchemy/orm/loading.py", line 962, in _instance _populate_full( File "/builddir/build/BUILD/SQLAlchemy-1.4.48/lib/sqlalchemy/orm/loading.py", line 1136, in _populate_full populator(state, dict_, row) File "/builddir/build/BUILD/SQLAlchemy-1.4.48/lib/sqlalchemy/orm/strategies.py", line 1870, in load_collection_from_subq collection = collections.get(tuple_getter(row), ()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.48/lib/sqlalchemy/orm/strategies.py", line 1600, in get self._load() File "/builddir/build/BUILD/SQLAlchemy-1.4.48/lib/sqlalchemy/orm/strategies.py", line 1617, in _load for k, v in itertools.groupby(rows, lambda x: x[1:]): File "/builddir/build/BUILD/SQLAlchemy-1.4.48/lib/sqlalchemy/orm/strategies.py", line 1617, in <lambda> for k, v in itertools.groupby(rows, lambda x: x[1:]): ~^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.48/lib/sqlalchemy/engine/row.py", line 133, in _get_by_key_impl rec = self._parent._key_fallback(key, ke) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/SQLAlchemy-1.4.48/lib/sqlalchemy/engine/result.py", line 72, in _key_fallback util.raise_(KeyError(key), replace_context=err) File "/builddir/build/BUILD/SQLAlchemy-1.4.48/lib/sqlalchemy/util/compat.py", line 211, in raise_ raise exception KeyError: slice(1, None, None) ... FAILED test/ext/test_baked.py::ResultTest_sqlite+pysqlite_3_41_2::test_subquery_eagerloading FAILED test/ext/test_baked.py::ResultTest_sqlite+pysqlite_3_41_2::test_subqueryload_post_context FAILED test/ext/test_baked.py::ResultTest_sqlite+pysqlite_3_41_2::test_subqueryload_post_context_w_cancelling_event FAILED test/orm/test_cache_key.py::RoundTripTest::test_cache_key_loader_strategies[subqueryload-2] FAILED test/orm/test_cache_key.py::RoundTripTest::test_subqueryload - KeyErro... FAILED test/orm/test_composites.py::PointTest::test_bulk_update_fetch - KeyEr... FAILED test/orm/test_default_strategies.py::DefaultStrategyOptionsTest::test_disable_eagerloads FAILED test/orm/test_default_strategies.py::DefaultStrategyOptionsTest::test_downgrade_baseline FAILED test/orm/test_default_strategies.py::DefaultStrategyOptionsTest::test_joined_with_subqueryload FAILED test/orm/test_default_strategies.py::DefaultStrategyOptionsTest::test_noload_with_subqueryload FAILED test/orm/test_default_strategies.py::DefaultStrategyOptionsTest::test_select_with_joinedload FAILED test/orm/test_default_strategies.py::DefaultStrategyOptionsTest::test_select_with_subqueryload FAILED test/orm/test_default_strategies.py::DefaultStrategyOptionsTest::test_subquery FAILED test/orm/test_default_strategies.py::DefaultStrategyOptionsTest::test_subquery_path_wildcards FAILED test/orm/test_default_strategies.py::DefaultStrategyOptionsTest::test_subquery_with_joinedload FAILED test/orm/test_default_strategies.py::DefaultStrategyOptionsTest::test_subquery_with_lazyload FAILED test/orm/test_deferred.py::DeferredOptionsTest::test_undefer_group_from_relationship_subqueryload FAILED test/orm/test_deprecations.py::DefaultStrategyOptionsTest::test_disable_eagerloads FAILED test/orm/test_deprecations.py::DefaultStrategyOptionsTest::test_downgrade_baseline FAILED test/orm/test_deprecations.py::DefaultStrategyOptionsTest::test_joined_with_subqueryload FAILED test/orm/test_deprecations.py::DefaultStrategyOptionsTest::test_noload_with_subqueryload FAILED test/orm/test_deprecations.py::DefaultStrategyOptionsTest::test_select_with_joinedload FAILED test/orm/test_deprecations.py::DefaultStrategyOptionsTest::test_select_with_subqueryload FAILED test/orm/test_deprecations.py::DefaultStrategyOptionsTest::test_subquery FAILED test/orm/test_deprecations.py::DefaultStrategyOptionsTest::test_subquery_path_wildcards FAILED test/orm/test_deprecations.py::DefaultStrategyOptionsTest::test_subquery_with_joinedload FAILED test/orm/test_deprecations.py::DefaultStrategyOptionsTest::test_subquery_with_lazyload FAILED test/orm/test_deprecations.py::NonPrimaryRelationshipLoaderTest::test_subqueryload FAILED test/orm/test_deprecations.py::SubqRelationsFromSelfTest::test_subq_w_from_self_one FAILED test/orm/test_deprecations.py::SubqRelationsFromSelfTest::test_subq_w_from_self_two FAILED test/orm/test_eager_relations.py::DeepOptionsTest::test_deep_options_2 FAILED test/orm/test_events.py::ORMExecuteTest::test_subqueryload_flags - Key... FAILED test/orm/test_events.py::ORMExecuteTest::test_user_option_propagation[False-subqueryload-3-dont_cache] FAILED test/orm/test_events.py::ORMExecuteTest::test_user_option_propagation[False-subqueryload-3-fixed] FAILED test/orm/test_events.py::ORMExecuteTest::test_user_option_propagation[False-subqueryload-3-payload] FAILED test/orm/test_events.py::ORMExecuteTest::test_user_option_propagation[True-subqueryload-3-dont_cache] FAILED test/orm/test_events.py::ORMExecuteTest::test_user_option_propagation[True-subqueryload-3-fixed] FAILED test/orm/test_events.py::ORMExecuteTest::test_user_option_propagation[True-subqueryload-3-payload] FAILED test/ext/test_horizontal_shard.py::AttachedFileShardTest::test_bulk_delete_future_synchronize_fetch FAILED test/ext/test_horizontal_shard.py::AttachedFileShardTest::test_bulk_delete_synchronize_fetch FAILED test/ext/test_horizontal_shard.py::AttachedFileShardTest::test_bulk_update_future_synchronize_fetch FAILED test/ext/test_horizontal_shard.py::AttachedFileShardTest::test_bulk_update_synchronize_fetch FAILED test/ext/test_horizontal_shard.py::DistinctEngineShardTest::test_bulk_delete_future_synchronize_fetch FAILED test/ext/test_horizontal_shard.py::DistinctEngineShardTest::test_bulk_delete_synchronize_fetch FAILED test/ext/test_horizontal_shard.py::DistinctEngineShardTest::test_bulk_update_future_synchronize_fetch FAILED test/ext/test_horizontal_shard.py::DistinctEngineShardTest::test_bulk_update_synchronize_fetch FAILED test/ext/test_horizontal_shard.py::TableNameConventionShardTest::test_bulk_delete_future_synchronize_fetch FAILED test/ext/test_horizontal_shard.py::TableNameConventionShardTest::test_bulk_delete_synchronize_fetch FAILED test/ext/test_horizontal_shard.py::TableNameConventionShardTest::test_bulk_update_future_synchronize_fetch FAILED test/ext/test_horizontal_shard.py::TableNameConventionShardTest::test_bulk_update_synchronize_fetch FAILED test/ext/test_hybrid.py::BulkUpdateTest::test_fetch_hybrid_attr_indirect FAILED test/ext/test_hybrid.py::BulkUpdateTest::test_fetch_hybrid_attr_plain FAILED test/ext/test_hybrid.py::BulkUpdateTest::test_fetch_hybrid_attr_w_update_expr FAILED test/orm/test_immediate_load.py::ImmediateTest::test_m2one_side[subquery] FAILED test/orm/test_lambdas.py::LambdaTest_sqlite+pysqlite_3_41_2::test_subqueryload_external_lambda_caveats FAILED test/orm/test_lambdas.py::LambdaTest_sqlite+pysqlite_3_41_2::test_subqueryload_internal_lambda FAILED test/orm/test_lambdas.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_update FAILED test/aaa_profiling/test_memusage.py::MemUsageWBackendTest_sqlite+pysqlite_3_41_2::test_alias_pathing FAILED test/orm/test_of_type.py::PolymorphicAliasedJoinsTest::test_subqueryload_explicit_withpoly FAILED test/orm/test_of_type.py::PolymorphicAliasedJoinsTest::test_subqueryload_implicit_withpoly FAILED test/orm/test_of_type.py::PolymorphicJoinsTest::test_subqueryload_explicit_withpoly FAILED test/orm/test_of_type.py::PolymorphicJoinsTest::test_subqueryload_implicit_withpoly FAILED test/orm/test_of_type.py::PolymorphicPolymorphicTest::test_subqueryload_explicit_withpoly FAILED test/orm/test_of_type.py::PolymorphicPolymorphicTest::test_subqueryload_implicit_withpoly FAILED test/orm/test_of_type.py::PolymorphicUnionsTest::test_subqueryload_explicit_withpoly FAILED test/orm/test_of_type.py::PolymorphicUnionsTest::test_subqueryload_implicit_withpoly FAILED test/orm/test_of_type.py::SubclassRelationshipTest::test_subquery_wsubclass FAILED test/orm/test_of_type.py::SubclassRelationshipTest::test_twolevel_subqueryload_wsubclass FAILED test/orm/test_of_type.py::SubclassRelationshipTest::test_twolevel_subqueryload_wsubclass_mapper_term FAILED test/orm/test_of_type.py::SubclassRelationshipTest2::test_all_subq_query FAILED test/orm/test_pickled.py::OptionsTest::test_load - KeyError: slice(1, ... FAILED test/orm/inheritance/test_poly_loading.py::LazyLoaderTransfersOptsTest::test_opt_propagates[subqueryload] FAILED test/orm/inheritance/test_polymorphic_rel.py::PolymorphicAliasedJoinsTest_sqlite+pysqlite_3_41_2::test_primary_eager_aliasing_subqueryload FAILED test/orm/inheritance/test_polymorphic_rel.py::PolymorphicAliasedJoinsTest_sqlite+pysqlite_3_41_2::test_relationship_to_polymorphic_three FAILED test/orm/inheritance/test_polymorphic_rel.py::PolymorphicAliasedJoinsTest_sqlite+pysqlite_3_41_2::test_subqueryload_on_subclass FAILED test/orm/inheritance/test_polymorphic_rel.py::PolymorphicJoinsTest_sqlite+pysqlite_3_41_2::test_primary_eager_aliasing_subqueryload FAILED test/orm/inheritance/test_polymorphic_rel.py::PolymorphicJoinsTest_sqlite+pysqlite_3_41_2::test_relationship_to_polymorphic_three FAILED test/orm/inheritance/test_polymorphic_rel.py::PolymorphicJoinsTest_sqlite+pysqlite_3_41_2::test_subqueryload_on_subclass FAILED test/orm/inheritance/test_polymorphic_rel.py::PolymorphicPolymorphicTest_sqlite+pysqlite_3_41_2::test_primary_eager_aliasing_subqueryload FAILED test/orm/inheritance/test_polymorphic_rel.py::PolymorphicPolymorphicTest_sqlite+pysqlite_3_41_2::test_relationship_to_polymorphic_three FAILED test/orm/inheritance/test_polymorphic_rel.py::PolymorphicPolymorphicTest_sqlite+pysqlite_3_41_2::test_subqueryload_on_subclass FAILED test/orm/inheritance/test_polymorphic_rel.py::PolymorphicTest_sqlite+pysqlite_3_41_2::test_relationship_to_polymorphic_three FAILED test/orm/inheritance/test_polymorphic_rel.py::PolymorphicTest_sqlite+pysqlite_3_41_2::test_subqueryload_on_subclass FAILED test/orm/inheritance/test_polymorphic_rel.py::PolymorphicUnionsTest_sqlite+pysqlite_3_41_2::test_primary_eager_aliasing_subqueryload FAILED test/orm/inheritance/test_polymorphic_rel.py::PolymorphicUnionsTest_sqlite+pysqlite_3_41_2::test_relationship_to_polymorphic_three FAILED test/orm/inheritance/test_polymorphic_rel.py::PolymorphicUnionsTest_sqlite+pysqlite_3_41_2::test_subqueryload_on_subclass FAILED test/orm/inheritance/test_polymorphic_rel.py::PolymorphicUnionsTest_sqlite+pysqlite_3_41_2::test_subqueryload_on_subclass_uses_path_correctly FAILED test/orm/inheritance/test_relationship.py::EagerToSubclassTest::test_subq_through_related FAILED test/orm/inheritance/test_relationship.py::EagerToSubclassTest::test_subq_through_related_aliased FAILED test/orm/inheritance/test_relationship.py::SameNamedPropTwoPolymorphicSubClassesTest::test_free_w_poly_subquery FAILED test/orm/inheritance/test_relationship.py::SelfReferentialM2MTest::test_subquery_load FAILED test/orm/inheritance/test_relationship.py::SubClassEagerToSubClassTest::test_subqueryload FAILED test/orm/test_relationship_criteria.py::LoaderCriteriaTest::test_loader_strategy_on_refresh[subquery] FAILED test/orm/test_relationship_criteria.py::RelationshipCriteriaTest::test_subqueryload_local_criteria FAILED test/orm/test_relationship_criteria.py::TemporalFixtureTest::test_same_relatinship_load_different_range[subqueryload-False] FAILED test/orm/test_relationship_criteria.py::TemporalFixtureTest::test_same_relatinship_load_different_range[subqueryload-True] FAILED test/orm/test_relationships.py::DirectSelfRefFKTest::test_descendants_subqueryload FAILED test/base/test_result.py::ResultTupleTest::test_negative_index_access FAILED test/base/test_result.py::ResultTupleTest::test_slice_access - KeyErro... FAILED test/base/test_result.py::ResultTupleTest::test_slices_arent_in_mappings FAILED test/sql/test_resultset.py::CursorResultTest_sqlite+pysqlite_3_41_2::test_column_slices FAILED test/sql/test_resultset.py::CursorResultTest_sqlite+pysqlite_3_41_2::test_row_getitem_indexes_compiled FAILED test/sql/test_resultset.py::CursorResultTest_sqlite+pysqlite_3_41_2::test_row_getitem_indexes_raw FAILED test/aaa_profiling/test_resultset.py::RowTest_sqlite+pysqlite_3_41_2::test_value_refcounts_custom_seq FAILED test/aaa_profiling/test_resultset.py::RowTest_sqlite+pysqlite_3_41_2::test_value_refcounts_pure_tuple FAILED test/orm/inheritance/test_single.py::RelationshipFromSingleTest::test_subquery_load FAILED test/dialect/test_sqlite.py::TestTypes_sqlite+pysqlite_3_41_2::test_native_datetime FAILED test/orm/test_subquery_relations.py::BaseRelationFromJoinedSubclassTest::test_correct_subquery_existingfrom FAILED test/orm/test_subquery_relations.py::BaseRelationFromJoinedSubclassTest::test_correct_subquery_multilevel FAILED test/orm/test_subquery_relations.py::BaseRelationFromJoinedSubclassTest::test_correct_subquery_nofrom FAILED test/orm/test_subquery_relations.py::BaseRelationFromJoinedSubclassTest::test_correct_subquery_with_polymorphic_alias FAILED test/orm/test_subquery_relations.py::BaseRelationFromJoinedSubclassTest::test_correct_subquery_with_polymorphic_flat_alias FAILED test/orm/test_subquery_relations.py::BaseRelationFromJoinedSubclassTest::test_correct_subquery_with_polymorphic_no_alias FAILED test/orm/test_subquery_relations.py::CyclicalInheritingEagerTestTwo::test_from_subclass FAILED test/orm/test_subquery_relations.py::CyclicalInheritingEagerTestTwo::test_integrate FAILED test/orm/test_subquery_relations.py::EagerTest::test_basic - KeyError:... FAILED test/orm/test_subquery_relations.py::EagerTest::test_cyclical - KeyErr... FAILED test/orm/test_subquery_relations.py::EagerTest::test_cyclical_explicit_join_depth FAILED test/orm/test_subquery_relations.py::EagerTest::test_double_same_mappers FAILED test/orm/test_subquery_relations.py::EagerTest::test_double_w_ac - Key... FAILED test/orm/test_subquery_relations.py::EagerTest::test_double_w_ac_against_subquery FAILED test/orm/test_subquery_relations.py::EagerTest::test_double_with_aggregate FAILED test/orm/test_subquery_relations.py::EagerTest::test_from_aliased_w_cache_one FAILED test/orm/test_subquery_relations.py::EagerTest::test_from_aliased_w_cache_three FAILED test/orm/test_subquery_relations.py::EagerTest::test_from_aliased_w_cache_two FAILED test/orm/test_subquery_relations.py::EagerTest::test_from_get - KeyErr... FAILED test/orm/test_subquery_relations.py::EagerTest::test_from_params - Key... FAILED test/orm/test_subquery_relations.py::EagerTest::test_group_by_only - K... FAILED test/orm/test_subquery_relations.py::EagerTest::test_limit - KeyError:... FAILED test/orm/test_subquery_relations.py::EagerTest::test_many_to_many_plain FAILED test/orm/test_subquery_relations.py::EagerTest::test_many_to_many_with_join FAILED test/orm/test_subquery_relations.py::EagerTest::test_many_to_many_with_join_alias FAILED test/orm/test_subquery_relations.py::EagerTest::test_many_to_one - Key... FAILED test/orm/test_subquery_relations.py::EagerTest::test_map_to_cte_subq[cte] FAILED test/orm/test_subquery_relations.py::EagerTest::test_map_to_cte_subq[plain] FAILED test/orm/test_subquery_relations.py::EagerTest::test_map_to_cte_subq[subquery] FAILED test/orm/test_subquery_relations.py::EagerTest::test_mapper_pathing - ... FAILED test/orm/test_subquery_relations.py::EagerTest::test_multilevel_sub_options[1-False] FAILED test/orm/test_subquery_relations.py::EagerTest::test_multilevel_sub_options[1-True] FAILED test/orm/test_subquery_relations.py::EagerTest::test_multilevel_sub_options[2-False] FAILED test/orm/test_subquery_relations.py::EagerTest::test_multilevel_sub_options[2-True] FAILED test/orm/test_subquery_relations.py::EagerTest::test_one_to_many_scalar FAILED test/orm/test_subquery_relations.py::EagerTest::test_options_pathing FAILED test/orm/test_subquery_relations.py::EagerTest::test_orderby - KeyErro... FAILED test/orm/test_subquery_relations.py::EagerTest::test_orderby_desc - Ke... FAILED test/orm/test_subquery_relations.py::EagerTest::test_orderby_multi - K... FAILED test/orm/test_subquery_relations.py::EagerTest::test_orderby_related FAILED test/orm/test_subquery_relations.py::EagerTest::test_params_arent_cached FAILED test/orm/test_subquery_relations.py::EagerTest::test_uselist_false_warning FAILED test/orm/test_subquery_relations.py::FromSubqTest::test_subq_w_from_self_one FAILED test/orm/test_subquery_relations.py::FromSubqTest::test_subq_w_from_self_two FAILED test/orm/test_subquery_relations.py::InheritanceToRelatedTest::test_caches_query_per_base_subq FAILED test/orm/test_subquery_relations.py::Issue6149Test::test_issue_6419 - ... FAILED test/orm/test_subquery_relations.py::JoinedNoLoadConflictTest::test_subqueryload_on_joined_noload FAILED test/orm/test_subquery_relations.py::LoadOnExistingTest::test_load_two_levels_collection_to_collection FAILED test/orm/test_subquery_relations.py::LoadOnExistingTest::test_load_two_levels_collection_to_scalar FAILED test/orm/test_subquery_relations.py::LoadOnExistingTest::test_loads_second_level_collection_to_collection FAILED test/orm/test_subquery_relations.py::LoadOnExistingTest::test_loads_second_level_collection_to_scalar FAILED test/orm/test_subquery_relations.py::LoadOnExistingTest::test_no_query_on_deferred FAILED test/orm/test_subquery_relations.py::LoadOnExistingTest::test_populate_existing_propagate FAILED test/orm/test_subquery_relations.py::LoadOnExistingTest::test_runs_query_on_option_refresh[immediate] FAILED test/orm/test_subquery_relations.py::LoadOnExistingTest::test_runs_query_on_option_refresh[raise] FAILED test/orm/test_subquery_relations.py::LoadOnExistingTest::test_runs_query_on_option_refresh[raise_on_sql] FAILED test/orm/test_subquery_relations.py::LoadOnExistingTest::test_runs_query_on_option_refresh[select] FAILED test/orm/test_subquery_relations.py::LoadOnExistingTest::test_runs_query_on_refresh FAILED test/orm/test_subquery_relations.py::OrderBySecondaryTest::test_ordering FAILED test/orm/test_subquery_relations.py::SelfRefInheritanceAliasedTest::test_twolevel_subquery_w_polymorphic FAILED test/orm/test_subquery_relations.py::SelfReferentialTest::test_basic FAILED test/orm/test_subquery_relations.py::SelfReferentialTest::test_lazy_fallback_doesnt_affect_eager FAILED test/orm/test_subquery_relations.py::SelfReferentialTest::test_options FAILED test/orm/test_subquery_relations.py::SelfReferentialTest::test_with_deferred FAILED test/orm/test_subquery_relations.py::SubRelationFromJoinedSubclassMultiLevelTest::test_chained_subq_subclass FAILED test/orm/test_subquery_relations.py::SubqueryloadDistinctTest::test_cant_do_distinct_in_joins FAILED test/orm/test_subquery_relations.py::SubqueryloadDistinctTest::test_distinct_strategy_opt_m2o FAILED test/orm/test_subquery_relations.py::SubqueryloadDistinctTest::test_distinct_unrelated_opt_m2o FAILED test/orm/test_subquery_relations.py::TestExistingRowPopulation::test_m2o FAILED test/orm/test_subquery_relations.py::TestExistingRowPopulation::test_o2m FAILED test/orm/test_update_delete.py::ExpressionUpdateTest::test_update_attr_names FAILED test/orm/test_update_delete.py::SingleTablePolymorphicTest_sqlite+pysqlite_3_41_2::test_delete[fetch-False] FAILED test/orm/test_update_delete.py::SingleTablePolymorphicTest_sqlite+pysqlite_3_41_2::test_delete[fetch-True] FAILED test/orm/test_update_delete.py::SingleTablePolymorphicTest_sqlite+pysqlite_3_41_2::test_update[fetch-False] FAILED test/orm/test_update_delete.py::SingleTablePolymorphicTest_sqlite+pysqlite_3_41_2::test_update[fetch-True] FAILED test/orm/test_update_delete.py::UpdateDeleteIgnoresLoadersTest::test_update_with_eager_relationships FAILED test/orm/test_update_delete.py::UpdateDeleteIgnoresLoadersTest::test_update_with_explicit_joinedload FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_autoflush_before_fetch_delete FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_autoflush_before_fetch_update FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_delete_fetch_returning FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_delete_fetch_returning_lambda FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_delete_invalid_evaluation FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_delete_rollback_with_fetch FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_delete_with_bindparams FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_delete_with_fetch_strategy FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_delete_with_loader_criteria[fetch-False] FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_delete_with_loader_criteria[fetch-True] FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_fetch_before_delete FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_fetch_before_update FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_fetch_dont_refresh_expired_objects FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_routing_session[fetch-delete] FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_routing_session[fetch-update] FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_update FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_update_fetch_returning FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_update_fetch_returning_lambda FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_update_future FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_update_future_lambda[not_values_first] FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_update_future_lambda[values_first] FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_update_w_unevaluatable_value_fetch FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_update_with_bindparams FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_update_with_expire_strategy FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_update_with_loader_criteria[fetch-False] FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_update_with_loader_criteria[fetch-True] FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_update_without_load ========= 211 failed, 14975 passed, 2412 skipped in 472.18s (0:07:52) ========== Note that this is sqlalchemy 1.4.48 because the Fedora package is outdated. Both bugzillas asking for an update to version 2 seem to be ignored (bz2134559, bz2203139).
we have merged full python 312 support into CI / main for SQLAlchemy 2.0, have now enabled all python 3.12b1 (for the moment, will update to b3 later today) for 1.4 and am running through a backport of the test support, which relies upon a branch of greenlet that builds on 3.12. Have not reproduced any recursion errors to date but will see how the builds go today.
a few small test errors but no recursion overflow here so far. will try building python 3.12 with --enable-optimizations
We get "KeyError: slice(1, None, None)" now, no more RecursionErrors. See the output at the build.log of https://koji.fedoraproject.org/koji/buildinfo?buildID=2216643 If you can point me to your 1.4 branch with backports, I can try that one. I've renamed this bugzilla. ---- In the meantime, we attempted to update to 2, but it's not that easy: https://src.fedoraproject.org/rpms/python-sqlalchemy/pull-request/16#comment-148334
I'll try https://github.com/sqlalchemy/sqlalchemy/commits/rel_1_4
Same failures =================================== FAILURES =================================== _________ ResultTest_sqlite+pysqlite_3_41_2.test_subquery_eagerloading _________ Traceback (most recent call last): File "/builddir/build/BUILD/sqlalchemy-rel_1_4/lib/sqlalchemy/engine/row.py", line 131, in _get_by_key_impl rec = self._keymap[key] ~~~~~~~~~~~~^^^^^ KeyError: slice(1, None, None) The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/builddir/build/BUILD/sqlalchemy-rel_1_4/test/ext/test_baked.py", line 900, in test_subquery_eagerloading self.assert_sql_count(testing.db, go, 3) File "/builddir/build/BUILD/sqlalchemy-rel_1_4/lib/sqlalchemy/testing/assertions.py", line 890, in assert_sql_count self.assert_sql_execution( File "/builddir/build/BUILD/sqlalchemy-rel_1_4/lib/sqlalchemy/testing/assertions.py", line 871, in assert_sql_execution result = callable_() ^^^^^^^^^^^ File "/builddir/build/BUILD/sqlalchemy-rel_1_4/test/ext/test_baked.py", line 897, in go result = bq(sess).all() ^^^^^^^^^^^^^^ File "/builddir/build/BUILD/sqlalchemy-rel_1_4/lib/sqlalchemy/ext/baked.py", line 498, in all return self._iter().all() ^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/sqlalchemy-rel_1_4/lib/sqlalchemy/engine/result.py", line 1476, in all return self._allrows() ^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/sqlalchemy-rel_1_4/lib/sqlalchemy/engine/result.py", line 401, in _allrows rows = self._fetchall_impl() ^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/sqlalchemy-rel_1_4/lib/sqlalchemy/engine/result.py", line 1389, in _fetchall_impl return self._real_result._fetchall_impl() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/sqlalchemy-rel_1_4/lib/sqlalchemy/engine/result.py", line 1813, in _fetchall_impl return list(self.iterator) ^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/sqlalchemy-rel_1_4/lib/sqlalchemy/orm/loading.py", line 151, in chunks rows = [proc(row) for row in fetch] ^^^^^^^^^ File "/builddir/build/BUILD/sqlalchemy-rel_1_4/lib/sqlalchemy/orm/loading.py", line 962, in _instance _populate_full( File "/builddir/build/BUILD/sqlalchemy-rel_1_4/lib/sqlalchemy/orm/loading.py", line 1136, in _populate_full populator(state, dict_, row) File "/builddir/build/BUILD/sqlalchemy-rel_1_4/lib/sqlalchemy/orm/strategies.py", line 1870, in load_collection_from_subq collection = collections.get(tuple_getter(row), ()) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/sqlalchemy-rel_1_4/lib/sqlalchemy/orm/strategies.py", line 1600, in get self._load() File "/builddir/build/BUILD/sqlalchemy-rel_1_4/lib/sqlalchemy/orm/strategies.py", line 1617, in _load for k, v in itertools.groupby(rows, lambda x: x[1:]): File "/builddir/build/BUILD/sqlalchemy-rel_1_4/lib/sqlalchemy/orm/strategies.py", line 1617, in <lambda> for k, v in itertools.groupby(rows, lambda x: x[1:]): ~^^^^ File "/builddir/build/BUILD/sqlalchemy-rel_1_4/lib/sqlalchemy/engine/row.py", line 133, in _get_by_key_impl rec = self._parent._key_fallback(key, ke) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/builddir/build/BUILD/sqlalchemy-rel_1_4/lib/sqlalchemy/engine/result.py", line 72, in _key_fallback util.raise_(KeyError(key), replace_context=err) File "/builddir/build/BUILD/sqlalchemy-rel_1_4/lib/sqlalchemy/util/compat.py", line 211, in raise_ raise exception KeyError: slice(1, None, None) ... FAILED test/ext/test_baked.py::ResultTest_sqlite+pysqlite_3_41_2::test_subquery_eagerloading FAILED test/ext/test_baked.py::ResultTest_sqlite+pysqlite_3_41_2::test_subqueryload_post_context FAILED test/ext/test_baked.py::ResultTest_sqlite+pysqlite_3_41_2::test_subqueryload_post_context_w_cancelling_event FAILED test/orm/test_cache_key.py::RoundTripTest::test_cache_key_loader_strategies[subqueryload-2] FAILED test/orm/test_cache_key.py::RoundTripTest::test_subqueryload - KeyErro... FAILED test/orm/test_composites.py::PointTest::test_bulk_update_fetch - KeyEr... FAILED test/orm/test_default_strategies.py::DefaultStrategyOptionsTest::test_disable_eagerloads FAILED test/orm/test_default_strategies.py::DefaultStrategyOptionsTest::test_downgrade_baseline FAILED test/orm/test_default_strategies.py::DefaultStrategyOptionsTest::test_joined_with_subqueryload FAILED test/orm/test_default_strategies.py::DefaultStrategyOptionsTest::test_noload_with_subqueryload FAILED test/orm/test_default_strategies.py::DefaultStrategyOptionsTest::test_select_with_joinedload FAILED test/orm/test_default_strategies.py::DefaultStrategyOptionsTest::test_select_with_subqueryload FAILED test/orm/test_default_strategies.py::DefaultStrategyOptionsTest::test_subquery FAILED test/orm/test_default_strategies.py::DefaultStrategyOptionsTest::test_subquery_path_wildcards FAILED test/orm/test_default_strategies.py::DefaultStrategyOptionsTest::test_subquery_with_joinedload FAILED test/orm/test_default_strategies.py::DefaultStrategyOptionsTest::test_subquery_with_lazyload FAILED test/orm/test_deferred.py::DeferredOptionsTest::test_undefer_group_from_relationship_subqueryload FAILED test/orm/test_deprecations.py::DefaultStrategyOptionsTest::test_disable_eagerloads FAILED test/orm/test_deprecations.py::DefaultStrategyOptionsTest::test_downgrade_baseline FAILED test/orm/test_deprecations.py::DefaultStrategyOptionsTest::test_joined_with_subqueryload FAILED test/orm/test_deprecations.py::DefaultStrategyOptionsTest::test_noload_with_subqueryload FAILED test/orm/test_deprecations.py::DefaultStrategyOptionsTest::test_select_with_joinedload FAILED test/orm/test_deprecations.py::DefaultStrategyOptionsTest::test_select_with_subqueryload FAILED test/orm/test_deprecations.py::DefaultStrategyOptionsTest::test_subquery FAILED test/orm/test_deprecations.py::DefaultStrategyOptionsTest::test_subquery_path_wildcards FAILED test/orm/test_deprecations.py::DefaultStrategyOptionsTest::test_subquery_with_joinedload FAILED test/orm/test_deprecations.py::DefaultStrategyOptionsTest::test_subquery_with_lazyload FAILED test/orm/test_deprecations.py::NonPrimaryRelationshipLoaderTest::test_subqueryload FAILED test/orm/test_deprecations.py::SubqRelationsFromSelfTest::test_subq_w_from_self_one FAILED test/orm/test_deprecations.py::SubqRelationsFromSelfTest::test_subq_w_from_self_two FAILED test/orm/test_eager_relations.py::DeepOptionsTest::test_deep_options_2 FAILED test/orm/test_events.py::ORMExecuteTest::test_subqueryload_flags - Key... FAILED test/orm/test_events.py::ORMExecuteTest::test_user_option_propagation[False-subqueryload-3-dont_cache] FAILED test/orm/test_events.py::ORMExecuteTest::test_user_option_propagation[False-subqueryload-3-fixed] FAILED test/orm/test_events.py::ORMExecuteTest::test_user_option_propagation[False-subqueryload-3-payload] FAILED test/orm/test_events.py::ORMExecuteTest::test_user_option_propagation[True-subqueryload-3-dont_cache] FAILED test/orm/test_events.py::ORMExecuteTest::test_user_option_propagation[True-subqueryload-3-fixed] FAILED test/orm/test_events.py::ORMExecuteTest::test_user_option_propagation[True-subqueryload-3-payload] FAILED test/ext/test_horizontal_shard.py::AttachedFileShardTest::test_bulk_delete_future_synchronize_fetch FAILED test/ext/test_horizontal_shard.py::AttachedFileShardTest::test_bulk_delete_synchronize_fetch FAILED test/ext/test_horizontal_shard.py::AttachedFileShardTest::test_bulk_update_future_synchronize_fetch FAILED test/ext/test_horizontal_shard.py::AttachedFileShardTest::test_bulk_update_synchronize_fetch FAILED test/ext/test_horizontal_shard.py::DistinctEngineShardTest::test_bulk_delete_future_synchronize_fetch FAILED test/ext/test_horizontal_shard.py::DistinctEngineShardTest::test_bulk_delete_synchronize_fetch FAILED test/ext/test_horizontal_shard.py::DistinctEngineShardTest::test_bulk_update_future_synchronize_fetch FAILED test/ext/test_horizontal_shard.py::DistinctEngineShardTest::test_bulk_update_synchronize_fetch FAILED test/ext/test_horizontal_shard.py::TableNameConventionShardTest::test_bulk_delete_future_synchronize_fetch FAILED test/ext/test_horizontal_shard.py::TableNameConventionShardTest::test_bulk_delete_synchronize_fetch FAILED test/ext/test_horizontal_shard.py::TableNameConventionShardTest::test_bulk_update_future_synchronize_fetch FAILED test/ext/test_horizontal_shard.py::TableNameConventionShardTest::test_bulk_update_synchronize_fetch FAILED test/ext/test_hybrid.py::BulkUpdateTest::test_fetch_hybrid_attr_indirect FAILED test/ext/test_hybrid.py::BulkUpdateTest::test_fetch_hybrid_attr_plain FAILED test/ext/test_hybrid.py::BulkUpdateTest::test_fetch_hybrid_attr_w_update_expr FAILED test/orm/test_immediate_load.py::ImmediateTest::test_m2one_side[subquery] FAILED test/orm/test_lambdas.py::LambdaTest_sqlite+pysqlite_3_41_2::test_subqueryload_external_lambda_caveats FAILED test/orm/test_lambdas.py::LambdaTest_sqlite+pysqlite_3_41_2::test_subqueryload_internal_lambda FAILED test/orm/test_lambdas.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_update FAILED test/aaa_profiling/test_memusage.py::MemUsageWBackendTest_sqlite+pysqlite_3_41_2::test_alias_pathing FAILED test/orm/test_of_type.py::PolymorphicAliasedJoinsTest::test_subqueryload_explicit_withpoly FAILED test/orm/test_of_type.py::PolymorphicAliasedJoinsTest::test_subqueryload_implicit_withpoly FAILED test/orm/test_of_type.py::PolymorphicJoinsTest::test_subqueryload_explicit_withpoly FAILED test/orm/test_of_type.py::PolymorphicJoinsTest::test_subqueryload_implicit_withpoly FAILED test/orm/test_of_type.py::PolymorphicPolymorphicTest::test_subqueryload_explicit_withpoly FAILED test/orm/test_of_type.py::PolymorphicPolymorphicTest::test_subqueryload_implicit_withpoly FAILED test/orm/test_of_type.py::PolymorphicUnionsTest::test_subqueryload_explicit_withpoly FAILED test/orm/test_of_type.py::PolymorphicUnionsTest::test_subqueryload_implicit_withpoly FAILED test/orm/test_of_type.py::SubclassRelationshipTest::test_subquery_wsubclass FAILED test/orm/test_of_type.py::SubclassRelationshipTest::test_twolevel_subqueryload_wsubclass FAILED test/orm/test_of_type.py::SubclassRelationshipTest::test_twolevel_subqueryload_wsubclass_mapper_term FAILED test/orm/test_of_type.py::SubclassRelationshipTest2::test_all_subq_query FAILED test/orm/test_pickled.py::OptionsTest::test_load - KeyError: slice(1, ... FAILED test/orm/inheritance/test_poly_loading.py::LazyLoaderTransfersOptsTest::test_opt_propagates[subqueryload] FAILED test/orm/inheritance/test_polymorphic_rel.py::PolymorphicAliasedJoinsTest_sqlite+pysqlite_3_41_2::test_primary_eager_aliasing_subqueryload FAILED test/orm/inheritance/test_polymorphic_rel.py::PolymorphicAliasedJoinsTest_sqlite+pysqlite_3_41_2::test_relationship_to_polymorphic_three FAILED test/orm/inheritance/test_polymorphic_rel.py::PolymorphicAliasedJoinsTest_sqlite+pysqlite_3_41_2::test_subqueryload_on_subclass FAILED test/orm/inheritance/test_polymorphic_rel.py::PolymorphicJoinsTest_sqlite+pysqlite_3_41_2::test_primary_eager_aliasing_subqueryload FAILED test/orm/inheritance/test_polymorphic_rel.py::PolymorphicJoinsTest_sqlite+pysqlite_3_41_2::test_relationship_to_polymorphic_three FAILED test/orm/inheritance/test_polymorphic_rel.py::PolymorphicJoinsTest_sqlite+pysqlite_3_41_2::test_subqueryload_on_subclass FAILED test/orm/inheritance/test_polymorphic_rel.py::PolymorphicPolymorphicTest_sqlite+pysqlite_3_41_2::test_primary_eager_aliasing_subqueryload FAILED test/orm/inheritance/test_polymorphic_rel.py::PolymorphicPolymorphicTest_sqlite+pysqlite_3_41_2::test_relationship_to_polymorphic_three FAILED test/orm/inheritance/test_polymorphic_rel.py::PolymorphicPolymorphicTest_sqlite+pysqlite_3_41_2::test_subqueryload_on_subclass FAILED test/orm/inheritance/test_polymorphic_rel.py::PolymorphicTest_sqlite+pysqlite_3_41_2::test_relationship_to_polymorphic_three FAILED test/orm/inheritance/test_polymorphic_rel.py::PolymorphicTest_sqlite+pysqlite_3_41_2::test_subqueryload_on_subclass FAILED test/orm/inheritance/test_polymorphic_rel.py::PolymorphicUnionsTest_sqlite+pysqlite_3_41_2::test_primary_eager_aliasing_subqueryload FAILED test/orm/inheritance/test_polymorphic_rel.py::PolymorphicUnionsTest_sqlite+pysqlite_3_41_2::test_relationship_to_polymorphic_three FAILED test/orm/inheritance/test_polymorphic_rel.py::PolymorphicUnionsTest_sqlite+pysqlite_3_41_2::test_subqueryload_on_subclass FAILED test/orm/inheritance/test_polymorphic_rel.py::PolymorphicUnionsTest_sqlite+pysqlite_3_41_2::test_subqueryload_on_subclass_uses_path_correctly FAILED test/orm/inheritance/test_relationship.py::EagerToSubclassTest::test_subq_through_related FAILED test/orm/inheritance/test_relationship.py::EagerToSubclassTest::test_subq_through_related_aliased FAILED test/orm/inheritance/test_relationship.py::SameNamedPropTwoPolymorphicSubClassesTest::test_free_w_poly_subquery FAILED test/orm/inheritance/test_relationship.py::SelfReferentialM2MTest::test_subquery_load FAILED test/orm/inheritance/test_relationship.py::SubClassEagerToSubClassTest::test_subqueryload FAILED test/orm/test_relationship_criteria.py::LoaderCriteriaTest::test_loader_strategy_on_refresh[subquery] FAILED test/orm/test_relationship_criteria.py::RelationshipCriteriaTest::test_subqueryload_local_criteria FAILED test/orm/test_relationship_criteria.py::TemporalFixtureTest::test_same_relatinship_load_different_range[subqueryload-False] FAILED test/orm/test_relationship_criteria.py::TemporalFixtureTest::test_same_relatinship_load_different_range[subqueryload-True] FAILED test/orm/test_relationships.py::DirectSelfRefFKTest::test_descendants_subqueryload FAILED test/base/test_result.py::ResultTupleTest::test_negative_index_access FAILED test/base/test_result.py::ResultTupleTest::test_slice_access - KeyErro... FAILED test/base/test_result.py::ResultTupleTest::test_slices_arent_in_mappings FAILED test/sql/test_resultset.py::CursorResultTest_sqlite+pysqlite_3_41_2::test_column_slices FAILED test/sql/test_resultset.py::CursorResultTest_sqlite+pysqlite_3_41_2::test_row_getitem_indexes_compiled FAILED test/sql/test_resultset.py::CursorResultTest_sqlite+pysqlite_3_41_2::test_row_getitem_indexes_raw FAILED test/aaa_profiling/test_resultset.py::RowTest_sqlite+pysqlite_3_41_2::test_value_refcounts_custom_seq FAILED test/aaa_profiling/test_resultset.py::RowTest_sqlite+pysqlite_3_41_2::test_value_refcounts_pure_tuple FAILED test/orm/inheritance/test_single.py::RelationshipFromSingleTest::test_subquery_load FAILED test/dialect/test_sqlite.py::TestTypes_sqlite+pysqlite_3_41_2::test_native_datetime FAILED test/orm/test_subquery_relations.py::BaseRelationFromJoinedSubclassTest::test_correct_subquery_existingfrom FAILED test/orm/test_subquery_relations.py::BaseRelationFromJoinedSubclassTest::test_correct_subquery_multilevel FAILED test/orm/test_subquery_relations.py::BaseRelationFromJoinedSubclassTest::test_correct_subquery_nofrom FAILED test/orm/test_subquery_relations.py::BaseRelationFromJoinedSubclassTest::test_correct_subquery_with_polymorphic_alias FAILED test/orm/test_subquery_relations.py::BaseRelationFromJoinedSubclassTest::test_correct_subquery_with_polymorphic_flat_alias FAILED test/orm/test_subquery_relations.py::BaseRelationFromJoinedSubclassTest::test_correct_subquery_with_polymorphic_no_alias FAILED test/orm/test_subquery_relations.py::CyclicalInheritingEagerTestTwo::test_from_subclass FAILED test/orm/test_subquery_relations.py::CyclicalInheritingEagerTestTwo::test_integrate FAILED test/orm/test_subquery_relations.py::EagerTest::test_basic - KeyError:... FAILED test/orm/test_subquery_relations.py::EagerTest::test_cyclical - KeyErr... FAILED test/orm/test_subquery_relations.py::EagerTest::test_cyclical_explicit_join_depth FAILED test/orm/test_subquery_relations.py::EagerTest::test_double_same_mappers FAILED test/orm/test_subquery_relations.py::EagerTest::test_double_w_ac - Key... FAILED test/orm/test_subquery_relations.py::EagerTest::test_double_w_ac_against_subquery FAILED test/orm/test_subquery_relations.py::EagerTest::test_double_with_aggregate FAILED test/orm/test_subquery_relations.py::EagerTest::test_from_aliased_w_cache_one FAILED test/orm/test_subquery_relations.py::EagerTest::test_from_aliased_w_cache_three FAILED test/orm/test_subquery_relations.py::EagerTest::test_from_aliased_w_cache_two FAILED test/orm/test_subquery_relations.py::EagerTest::test_from_get - KeyErr... FAILED test/orm/test_subquery_relations.py::EagerTest::test_from_params - Key... FAILED test/orm/test_subquery_relations.py::EagerTest::test_group_by_only - K... FAILED test/orm/test_subquery_relations.py::EagerTest::test_limit - KeyError:... FAILED test/orm/test_subquery_relations.py::EagerTest::test_many_to_many_plain FAILED test/orm/test_subquery_relations.py::EagerTest::test_many_to_many_with_join FAILED test/orm/test_subquery_relations.py::EagerTest::test_many_to_many_with_join_alias FAILED test/orm/test_subquery_relations.py::EagerTest::test_many_to_one - Key... FAILED test/orm/test_subquery_relations.py::EagerTest::test_map_to_cte_subq[cte] FAILED test/orm/test_subquery_relations.py::EagerTest::test_map_to_cte_subq[plain] FAILED test/orm/test_subquery_relations.py::EagerTest::test_map_to_cte_subq[subquery] FAILED test/orm/test_subquery_relations.py::EagerTest::test_mapper_pathing - ... FAILED test/orm/test_subquery_relations.py::EagerTest::test_multilevel_sub_options[1-False] FAILED test/orm/test_subquery_relations.py::EagerTest::test_multilevel_sub_options[1-True] FAILED test/orm/test_subquery_relations.py::EagerTest::test_multilevel_sub_options[2-False] FAILED test/orm/test_subquery_relations.py::EagerTest::test_multilevel_sub_options[2-True] FAILED test/orm/test_subquery_relations.py::EagerTest::test_one_to_many_scalar FAILED test/orm/test_subquery_relations.py::EagerTest::test_options_pathing FAILED test/orm/test_subquery_relations.py::EagerTest::test_orderby - KeyErro... FAILED test/orm/test_subquery_relations.py::EagerTest::test_orderby_desc - Ke... FAILED test/orm/test_subquery_relations.py::EagerTest::test_orderby_multi - K... FAILED test/orm/test_subquery_relations.py::EagerTest::test_orderby_related FAILED test/orm/test_subquery_relations.py::EagerTest::test_params_arent_cached FAILED test/orm/test_subquery_relations.py::EagerTest::test_uselist_false_warning FAILED test/orm/test_subquery_relations.py::FromSubqTest::test_subq_w_from_self_one FAILED test/orm/test_subquery_relations.py::FromSubqTest::test_subq_w_from_self_two FAILED test/orm/test_subquery_relations.py::InheritanceToRelatedTest::test_caches_query_per_base_subq FAILED test/orm/test_subquery_relations.py::Issue6149Test::test_issue_6419 - ... FAILED test/orm/test_subquery_relations.py::JoinedNoLoadConflictTest::test_subqueryload_on_joined_noload FAILED test/orm/test_subquery_relations.py::LoadOnExistingTest::test_load_two_levels_collection_to_collection FAILED test/orm/test_subquery_relations.py::LoadOnExistingTest::test_load_two_levels_collection_to_scalar FAILED test/orm/test_subquery_relations.py::LoadOnExistingTest::test_loads_second_level_collection_to_collection FAILED test/orm/test_subquery_relations.py::LoadOnExistingTest::test_loads_second_level_collection_to_scalar FAILED test/orm/test_subquery_relations.py::LoadOnExistingTest::test_no_query_on_deferred FAILED test/orm/test_subquery_relations.py::LoadOnExistingTest::test_populate_existing_propagate FAILED test/orm/test_subquery_relations.py::LoadOnExistingTest::test_runs_query_on_option_refresh[immediate] FAILED test/orm/test_subquery_relations.py::LoadOnExistingTest::test_runs_query_on_option_refresh[raise] FAILED test/orm/test_subquery_relations.py::LoadOnExistingTest::test_runs_query_on_option_refresh[raise_on_sql] FAILED test/orm/test_subquery_relations.py::LoadOnExistingTest::test_runs_query_on_option_refresh[select] FAILED test/orm/test_subquery_relations.py::LoadOnExistingTest::test_runs_query_on_refresh FAILED test/orm/test_subquery_relations.py::OrderBySecondaryTest::test_ordering FAILED test/orm/test_subquery_relations.py::SelfRefInheritanceAliasedTest::test_twolevel_subquery_w_polymorphic FAILED test/orm/test_subquery_relations.py::SelfReferentialTest::test_basic FAILED test/orm/test_subquery_relations.py::SelfReferentialTest::test_lazy_fallback_doesnt_affect_eager FAILED test/orm/test_subquery_relations.py::SelfReferentialTest::test_options FAILED test/orm/test_subquery_relations.py::SelfReferentialTest::test_with_deferred FAILED test/orm/test_subquery_relations.py::SubRelationFromJoinedSubclassMultiLevelTest::test_chained_subq_subclass FAILED test/orm/test_subquery_relations.py::SubqueryloadDistinctTest::test_cant_do_distinct_in_joins FAILED test/orm/test_subquery_relations.py::SubqueryloadDistinctTest::test_distinct_strategy_opt_m2o FAILED test/orm/test_subquery_relations.py::SubqueryloadDistinctTest::test_distinct_unrelated_opt_m2o FAILED test/orm/test_subquery_relations.py::TestExistingRowPopulation::test_m2o FAILED test/orm/test_subquery_relations.py::TestExistingRowPopulation::test_o2m FAILED test/orm/test_update_delete.py::ExpressionUpdateTest::test_update_attr_names FAILED test/orm/test_update_delete.py::SingleTablePolymorphicTest_sqlite+pysqlite_3_41_2::test_delete[fetch-False] FAILED test/orm/test_update_delete.py::SingleTablePolymorphicTest_sqlite+pysqlite_3_41_2::test_delete[fetch-True] FAILED test/orm/test_update_delete.py::SingleTablePolymorphicTest_sqlite+pysqlite_3_41_2::test_update[fetch-False] FAILED test/orm/test_update_delete.py::SingleTablePolymorphicTest_sqlite+pysqlite_3_41_2::test_update[fetch-True] FAILED test/orm/test_update_delete.py::UpdateDeleteIgnoresLoadersTest::test_update_with_eager_relationships FAILED test/orm/test_update_delete.py::UpdateDeleteIgnoresLoadersTest::test_update_with_explicit_joinedload FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_autoflush_before_fetch_delete FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_autoflush_before_fetch_update FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_delete_fetch_returning FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_delete_fetch_returning_lambda FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_delete_invalid_evaluation FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_delete_rollback_with_fetch FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_delete_with_bindparams FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_delete_with_fetch_strategy FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_delete_with_loader_criteria[fetch-False] FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_delete_with_loader_criteria[fetch-True] FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_fetch_before_delete FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_fetch_before_update FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_fetch_dont_refresh_expired_objects FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_routing_session[fetch-delete] FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_routing_session[fetch-update] FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_update FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_update_fetch_returning FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_update_fetch_returning_lambda FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_update_future FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_update_future_lambda[not_values_first] FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_update_future_lambda[values_first] FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_update_w_unevaluatable_value_fetch FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_update_with_bindparams FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_update_with_expire_strategy FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_update_with_loader_criteria[fetch-False] FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_update_with_loader_criteria[fetch-True] FAILED test/orm/test_update_delete.py::UpdateDeleteTest_sqlite+pysqlite_3_41_2::test_update_without_load ========= 211 failed, 14975 passed, 2412 skipped in 809.10s (0:13:29) ==========
the errors related to `KeyError: slice(1, None, None)` can be fixed by this: diff --git a/lib/sqlalchemy/engine/row.py b/lib/sqlalchemy/engine/row.py index f7c00bab37..50577ffe8d 100644 --- a/lib/sqlalchemy/engine/row.py +++ b/lib/sqlalchemy/engine/row.py @@ -130,7 +130,10 @@ except ImportError: try: rec = self._keymap[key] except KeyError as ke: - rec = self._parent._key_fallback(key, ke) + if isinstance(key, slice): + return tuple(self._data[key]) + else: + rec = self._parent._key_fallback(key, ke) except TypeError: if isinstance(key, slice): return tuple(self._data[key]) the patch at https://gerrit.sqlalchemy.org/c/sqlalchemy/sqlalchemy/+/4760 has all tests passing for py3.12.0b3 , that's against the rel_1_4 branch. ill try to release this soon but you can create a patchfile for now.
i think we need this too, for the C version of Row to raise KeyError instead of TypeError for mapping[slice] exception diff --git a/lib/sqlalchemy/cextension/resultproxy.c b/lib/sqlalchemy/cextension/resultproxy.c index 9d1f0ead48..20f1536529 100644 --- a/lib/sqlalchemy/cextension/resultproxy.c +++ b/lib/sqlalchemy/cextension/resultproxy.c @@ -21,6 +21,12 @@ typedef Py_ssize_t (*lenfunc)(PyObject *); typedef intargfunc ssizeargfunc; #endif +#if PY_VERSION_HEX > 0x030c0000 +# define PY_RAISE_SLICE_FOR_MAPPING PyExc_KeyError +#else +# define PY_RAISE_SLICE_FOR_MAPPING PyExc_TypeError +#endif + #if PY_MAJOR_VERSION < 3 // new typedef in Python 3 @@ -369,7 +375,7 @@ BaseRow_getitem_by_object(BaseRow *self, PyObject *key, int asmapping) if (record == NULL) { if (PySlice_Check(key)) { - PyErr_Format(PyExc_TypeError, "can't use slices for mapping access"); + PyErr_Format(PY_RAISE_SLICE_FOR_MAPPING, "can't use slices for mapping access"); return NULL; } record = PyObject_CallMethod(self->parent, "_key_fallback",
Thank you! I see this was merged upstream and when I package from a git snapshot, it passed all tests on my local x86_64 build. Running a sctartchbuild in Koji to verify other architectures and will ship it if it passes.
I have to adjust that C comparison to be this: #if PY_VERSION_HEX >= 0x030c0000 assuming that's what the v would be for 3.12.0 final, not really sure