Skip to content

[BUG] setuptools doesn't build with Python 3.11.0a7 / upgrade bundled pyparsing #3274

@hrnciar

Description

@hrnciar

setuptools version

60.9.3

Python version

3.11.0a7

OS

Fedora Rawhide

Additional environment information

No response

Description

Pyparsing bundled in setuptools uses sre_constants module. Since Python 3.11.0a7 this module is deprecated and setuptools build fails with DeprecationWarning. This was already fixed in pyparsing 3.0.8 so updating bundled pyparsing should fix this problem.

Expected behavior

Setuptools builds with Python 3.11.0a7+.

How to Reproduce

Build setuptools with Python 3.11.0a7.

Output

+ /usr/bin/pytest --ignore=setuptools/tests/test_integration.py --ignore=setuptools/tests/integration/ --ignore=setuptools/tests/test_develop.py -k 'not test_pip_upgrade_from_source'
Traceback (most recent call last):
  File "/usr/bin/pytest", line 8, in <module>
    sys.exit(console_main())
             ^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 188, in console_main
    code = main()
           ^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 146, in main
    config = _prepareconfig(args, plugins)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 325, in _prepareconfig
    config = pluginmanager.hook.pytest_cmdline_parse(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pluggy/_hooks.py", line 265, in __call__
    return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pluggy/_manager.py", line 80, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pluggy/_callers.py", line 55, in _multicall
    gen.send(outcome)
    ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/helpconfig.py", line 102, in pytest_cmdline_parse
    config: Config = outcome.get_result()
                     ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pluggy/_result.py", line 60, in get_result
    raise ex[1].with_traceback(ex[2])
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pluggy/_callers.py", line 39, in _multicall
    res = hook_impl.function(*args)
          ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 1013, in pytest_cmdline_parse
    self.parse(args)
    ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 1301, in parse
    self._preparse(args, addopts=addopts)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 1203, in _preparse
    self.hook.pytest_load_initial_conftests(
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pluggy/_hooks.py", line 265, in __call__
    return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pluggy/_manager.py", line 80, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pluggy/_callers.py", line 60, in _multicall
    return outcome.get_result()
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pluggy/_result.py", line 60, in get_result
    raise ex[1].with_traceback(ex[2])
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pluggy/_callers.py", line 39, in _multicall
    res = hook_impl.function(*args)
          ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 1080, in pytest_load_initial_conftests
    self.pluginmanager._set_initial_conftests(
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 529, in _set_initial_conftests
    self._try_load_conftest(current, namespace.importmode, rootpath)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 534, in _try_load_conftest
    self._getconftestmodules(anchor, importmode, rootpath)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 565, in _getconftestmodules
    mod = self._importconftest(conftestpath, importmode, rootpath)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 620, in _importconftest
    self.consider_conftest(mod)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 701, in consider_conftest
    self.register(conftestmodule, name=conftestmodule.__file__)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 467, in register
    self.consider_module(plugin)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 709, in consider_module
    self._import_plugin_specs(getattr(mod, "pytest_plugins", []))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 716, in _import_plugin_specs
    self.import_plugin(import_spec)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 743, in import_plugin
    __import__(importspec)
    ^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/setuptools-60.9.3/setuptools/__init__.py", line 16, in <module>
    import setuptools.version
    ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/setuptools-60.9.3/setuptools/version.py", line 1, in <module>
    import pkg_resources
    ^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/setuptools-60.9.3/pkg_resources/__init__.py", line 84, in <module>
    __import__('pkg_resources.extern.packaging.requirements')
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/setuptools-60.9.3/pkg_resources/_vendor/packaging/requirements.py", line 10, in <module>
    from pkg_resources.extern.pyparsing import (  # noqa
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 676, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 573, in module_from_spec
  File "/builddir/build/BUILD/setuptools-60.9.3/pkg_resources/extern/__init__.py", line 52, in create_module
    return self.load_module(spec.name)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/setuptools-60.9.3/pkg_resources/extern/__init__.py", line 37, in load_module
    __import__(extant)
    ^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/setuptools-60.9.3/pkg_resources/_vendor/pyparsing.py", line 87, in <module>
    import sre_constants
    ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.11/sre_constants.py", line 2, in <module>
    warnings.warn(f"module {__name__!r} is deprecated",
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
DeprecationWarning: module 'sre_constants' is deprecated

Metadata

Metadata

Assignees

No one assigned

    Labels

    Needs TriageIssues that need to be evaluated for severity and status.bug

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions