Skip to content

[BUG] vendor package typeguard installed to entrypoints #4480

Closed
@hfudev

Description

@hfudev

setuptools version

setuptools==71.0.1

Python version

python 3.8

OS

arch linux

Additional environment information

No response

Description

bug introduced by https://github.com/pypa/setuptools/compare/v71.0.1..v71.0.0#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711R181-R183

pytest would search the plugins by the entrypoint pytest11. the vendor/typeguard got installed to the entrypoint, but without a correct metadata. Got error message

Traceback (most recent call last):
  ... unrelated ..
  File "myenv/lib/python3.8/site-packages/_pytest/config/__init__.py", line 159, in main
    config = _prepareconfig(args, plugins)
  File "myenv/lib/python3.8/site-packages/_pytest/config/__init__.py", line 346, in _prepareconfig
    config = pluginmanager.hook.pytest_cmdline_parse(
  File "myenv/lib/python3.8/site-packages/pluggy/_hooks.py", line 513, in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
  File "myenv/lib/python3.8/site-packages/pluggy/_manager.py", line 120, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
  File "myenv/lib/python3.8/site-packages/pluggy/_callers.py", line 139, in _multicall
    raise exception.with_traceback(exception.__traceback__)
  File "myenv/lib/python3.8/site-packages/pluggy/_callers.py", line 122, in _multicall
    teardown.throw(exception)  # type: ignore[union-attr]
  File "myenv/lib/python3.8/site-packages/_pytest/helpconfig.py", line 106, in pytest_cmdline_parse
    config = yield
  File "myenv/lib/python3.8/site-packages/pluggy/_callers.py", line 103, in _multicall
    res = hook_impl.function(*args)
  File "myenv/lib/python3.8/site-packages/_pytest/config/__init__.py", line 1152, in pytest_cmdline_parse
    self.parse(args)
  File "myenv/lib/python3.8/site-packages/_pytest/config/__init__.py", line 1501, in parse
    self._preparse(args, addopts=addopts)
  File "myenv/lib/python3.8/site-packages/_pytest/config/__init__.py", line 1388, in _preparse
    self.pluginmanager.load_setuptools_entrypoints("pytest11")
  File "myenv/lib/python3.8/site-packages/pluggy/_manager.py", line 421, in load_setuptools_entrypoints
    plugin = ep.load()
  File "myenv/lib/python3.8/site-packages/setuptools/_vendor/importlib_metadata/__init__.py", line 183, in load
    module = import_module(match.group('module'))
  File "myuser/.pyenv/versions/3.8.19/lib/python3.8/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 961, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
  File "<frozen importlib._bootstrap>", line 991, in _find_and_load
  File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 843, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "myenv/lib/python3.8/site-packages/setuptools/_vendor/typeguard/__init__.py", line 21, in <module>
    from ._importhook import ImportHookManager as ImportHookManager
  File "myenv/lib/python3.8/site-packages/setuptools/_vendor/typeguard/_importhook.py", line 35, in <module>
    OPTIMIZATION = "typeguard" + "".join(version("typeguard").split(".")[:3])
  File "myenv/lib/python3.8/site-packages/setuptools/_vendor/importlib_metadata/__init__.py", line 982, in version
    return distribution(distribution_name).version
  File "myenv/lib/python3.8/site-packages/setuptools/_vendor/importlib_metadata/__init__.py", line 475, in version
    return self.metadata['Version']
  File "myenv/lib/python3.8/site-packages/setuptools/_vendor/importlib_metadata/_adapters.py", line 54, in __getitem__
    raise KeyError(item)
KeyError: 'Version'

succeeded with version 71.0.0

Expected behavior

run successfully

How to Reproduce

as description

Output

as description

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions