sip & PyQt w/ Python 3.13a

Phil Thompson phil at riverbankcomputing.com
Fri Dec 1 09:44:26 GMT 2023


On 01/12/2023 04:34, Scott Talbert wrote:
> Hi Phil,
> 
> I know it's early in the Python 3.13 dev cycle, but the Fedora folks
> have started working on building everything.  When trying to build
> PyQt5, we're seeing a RecursionError.  Any ideas about that?
> 
> Generating the QtCore .pyi file...
> sip-build: An internal error occurred...
> Traceback (most recent call last):
>   File "/usr/bin/sip-build", line 8, in <module>
>     sys.exit(main())
>              ^^^^^^
>   File "/usr/lib64/python3.13/site-packages/sipbuild/tools/build.py",
> line 37, in main
>     handle_exception(e)
>   File "/usr/lib64/python3.13/site-packages/sipbuild/exceptions.py",
> line 81, in handle_exception
>     raise e
>   File "/usr/lib64/python3.13/site-packages/sipbuild/tools/build.py",
> line 34, in main
>     project.build()
>   File "/usr/lib64/python3.13/site-packages/sipbuild/project.py", line
> 245, in build
>     self.builder.build()
>   File "/usr/lib64/python3.13/site-packages/sipbuild/builder.py", line
> 48, in build
>     self._generate_bindings()
>   File "/usr/lib64/python3.13/site-packages/sipbuild/builder.py", line
> 280, in _generate_bindings
>     buildable = bindings.generate()
>                 ^^^^^^^^^^^^^^^^^^^
>   File "/builddir/build/BUILD/PyQt5-5.15.9/project.py", line 619, in 
> generate
>     buildable = super().generate()
>                 ^^^^^^^^^^^^^^^^^^
>   File "/usr/lib64/python3.13/site-packages/sipbuild/bindings.py",
> line 214, in generate
>     output_pyi(spec, project, pyi_path)
>   File
> "/usr/lib64/python3.13/site-packages/sipbuild/generator/outputs/pyi.py",
> line 53, in output_pyi
>     _module(pf, spec, module)
>   File
> "/usr/lib64/python3.13/site-packages/sipbuild/generator/outputs/pyi.py",
> line 132, in _module
>     _class(pf, spec, module, klass, defined)
>   File
> "/usr/lib64/python3.13/site-packages/sipbuild/generator/outputs/pyi.py",
> line 267, in _class
>     _class(pf, spec, module, nested, defined, indent)
>   File
> "/usr/lib64/python3.13/site-packages/sipbuild/generator/outputs/pyi.py",
> line 289, in _class
>     _callable(pf, spec, module, member, klass.overloads,
>   File
> "/usr/lib64/python3.13/site-packages/sipbuild/generator/outputs/pyi.py",
> line 485, in _callable
>     _overload(pf, spec, module, overload, overloaded, first_overload,
>   File
> "/usr/lib64/python3.13/site-packages/sipbuild/generator/outputs/pyi.py",
> line 575, in _overload
>     signature = _python_signature(spec, module, py_signature, defined,
>                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>   File
> "/usr/lib64/python3.13/site-packages/sipbuild/generator/outputs/pyi.py",
> line 599, in _python_signature
>     as_str = _argument(spec, module, arg, defined, arg_nr=arg_nr)
>              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>   File
> "/usr/lib64/python3.13/site-packages/sipbuild/generator/outputs/pyi.py",
> line 676, in _argument
>     s += _type(spec, module, arg, defined, out=out)
>          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>   File
> "/usr/lib64/python3.13/site-packages/sipbuild/generator/outputs/pyi.py",
> line 710, in _type
>     return ArgumentFormatter(spec, arg).as_type_hint(module, out, 
> defined)
>            
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>   File
> "/usr/lib64/python3.13/site-packages/sipbuild/generator/outputs/formatters/argument.py",
> line 327, in as_type_hint
>     s += TypeHintManager(self.spec).as_type_hint(hint, out, context,
>          ^^^^^^^^^^^^^^^^^^^^^^^^^^
>   File
> "/usr/lib64/python3.13/site-packages/sipbuild/generator/outputs/type_hints.py",
> line 107, in __new__
>     manager = cls._spec_manager_map[spec]
>               ~~~~~~~~~~~~~~~~~~~~~^^^^^^
>   File "/usr/lib64/python3.13/weakref.py", line 415, in __getitem__
>     return self.data[ref(key)]
>            ~~~~~~~~~^^^^^^^^^^
>   File "<string>", line 4, in __eq__
>   File "<string>", line 4, in __eq__
>   File "<string>", line 4, in __eq__
>   [Previous line repeated 495 more times]
> RecursionError: maximum recursion depth exceeded in comparison

No idea - what version of SIP?

Phil


More information about the PyQt mailing list