Bug 2209052 - python-sqlalchemy fails to build with Python 3.12: KeyError: slice(1, None, None)
Summary: python-sqlalchemy fails to build with Python 3.12: KeyError: slice(1, None, N...
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: python-sqlalchemy
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
urgent
Target Milestone: ---
Assignee: Miro Hrončok
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: PYTHON3.12
TreeView+ depends on / blocked
 
Reported: 2023-05-22 12:36 UTC by Tomáš Hrnčiar
Modified: 2023-07-03 12:05 UTC (History)
5 users (show)

Fixed In Version: python-sqlalchemy-1.4.49~~20230703cd56e87-1.fc39
Clone Of:
Environment:
Last Closed: 2023-07-03 08:47:06 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Tomáš Hrnčiar 2023-05-22 12:36:25 UTC
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.

Comment 1 Michael Bayer 2023-05-22 15:10:07 UTC
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).

Comment 2 Michael Bayer 2023-05-22 16:23:35 UTC
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?

Comment 3 Michael Bayer 2023-05-24 19:49:31 UTC
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?

Comment 4 Miro Hrončok 2023-05-24 21:02:34 UTC
A build with b1 should appear shortly at https://copr.fedorainfracloud.org/coprs/g/python/python3.12/package/python-sqlalchemy/

Comment 5 Miro Hrončok 2023-05-25 04:49:07 UTC
> 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.

Comment 6 Michael Bayer 2023-05-26 13:36:24 UTC
> 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  .

Comment 7 Tomáš Hrnčiar 2023-05-26 16:34:11 UTC
(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

Comment 8 Miro Hrončok 2023-05-26 17:05:21 UTC
yet there is a new failure in https://copr.fedorainfracloud.org/coprs/g/python/python3.12/package/python-greenlet

Comment 9 Michael Bayer 2023-06-08 12:48:44 UTC
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

Comment 10 Miro Hrončok 2023-07-01 19:06:00 UTC
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).

Comment 11 Michael Bayer 2023-07-02 14:52:00 UTC
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.

Comment 12 Michael Bayer 2023-07-02 15:43:03 UTC
a few small test errors but no recursion overflow here so far.   will try building python 3.12 with --enable-optimizations

Comment 13 Miro Hrončok 2023-07-02 17:06:06 UTC
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

Comment 14 Miro Hrončok 2023-07-02 18:45:31 UTC
I'll try https://github.com/sqlalchemy/sqlalchemy/commits/rel_1_4

Comment 15 Miro Hrončok 2023-07-02 19:15:30 UTC
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) ==========

Comment 16 Michael Bayer 2023-07-03 00:34:18 UTC
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.

Comment 17 Michael Bayer 2023-07-03 03:49:43 UTC
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",

Comment 18 Miro Hrončok 2023-07-03 07:15:12 UTC
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.

Comment 19 Michael Bayer 2023-07-03 12:05:35 UTC
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


Note You need to log in before you can comment on or make changes to this bug.