Repository navigation
Open
Description
Python version: 3.15.0b2+dev
Pytest version: 9.1.1
PYTHON_LAZY_IMPORTS=all pytest --help produces:
Traceback (most recent call last):
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/_pytest/config/__init__.py", line 50, in <module>
from .exceptions import UsageError as UsageError
ImportError: lazy import of '_pytest.config.exceptions.UsageError' raised an exception during resolution
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/Users/sobolev/Desktop/msgspec/.venv/bin/pytest", line 10, in <module>
sys.exit(console_main())
~~~~~~~~~~~~^^
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/_pytest/config/__init__.py", line 223, in console_main
code = main()
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/_pytest/config/__init__.py", line 193, in main
config = _prepareconfig(new_args, plugins)
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/_pytest/config/__init__.py", line 361, in _prepareconfig
config: Config = pluginmanager.hook.pytest_cmdline_parse(
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
pluginmanager=pluginmanager, args=args
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/pluggy/_hooks.py", line 512, in __call__
return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/pluggy/_manager.py", line 120, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/pluggy/_callers.py", line 167, in _multicall
raise exception
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/pluggy/_callers.py", line 139, in _multicall
teardown.throw(exception)
~~~~~~~~~~~~~~^^^^^^^^^^^
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/_pytest/helpconfig.py", line 124, in pytest_cmdline_parse
config = yield
^^^^^
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/pluggy/_callers.py", line 121, in _multicall
res = hook_impl.function(*args)
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/_pytest/config/__init__.py", line 1193, in pytest_cmdline_parse
except UsageError:
^^^^^^^^^^
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/_pytest/assertion/rewrite.py", line 111, in find_spec
if self._early_rewrite_bailout(name, state):
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/_pytest/assertion/rewrite.py", line 229, in _early_rewrite_bailout
if fnmatch_ex(pat, path):
~~~~~~~~~~^^^^^^^^^^^
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/_pytest/pathlib.py", line 452, in fnmatch_ex
return fnmatch.fnmatch(name, pattern)
^^^^^^^
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/_pytest/assertion/rewrite.py", line 111, in find_spec
if self._early_rewrite_bailout(name, state):
~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/_pytest/assertion/rewrite.py", line 229, in _early_rewrite_bailout
if fnmatch_ex(pat, path):
~~~~~~~~~~^^^^^^^^^^^
File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/_pytest/pathlib.py", line 452, in fnmatch_ex
return fnmatch.fnmatch(name, pattern)
^^^^^^^
ImportCycleError: cannot import name 'fnmatch' (most likely due to a circular import) The same happens for all other invokations.
Reacted by Alexander Pavlov, Hugo van Kemenade, DetachHead, hongchan6 and SpacedOut64
Reacted by Copilot
Metadata
Metadata
Assignees
Labels
No labels
Activity
RonnyPfannschmidt commentedon Jun 21, 2026
Assertion rewrite doesn't expect it's import hook to Recurse that way
We may need a hardheaded skip list for that import mode
Fix recursive find_spec crash with PYTHON_LAZY_IMPORTS=all (#14632)
fix pytest-dev#14632: never rewrite stdlib and pytest modules
fix pytest-dev#14632: never rewrite stdlib and pytest modules
fix pytest-dev#14632: never rewrite stdlib and pytest modules
fix pytest-dev#14632: never rewrite stdlib and pytest modules
fix pytest-dev#14632: never rewrite stdlib and pytest modules
fix pytest-dev#14632: never rewrite stdlib and pytest modules
fix pytest-dev#14632: never rewrite stdlib and pytest modules
fix pytest-dev#14632: never rewrite stdlib and pytest modules
fix pytest-dev#14632: never rewrite stdlib and pytest modules