Skip to content

gh-116811: Ensure MetadataPathFinder.invalidate_caches is reachable when delegated through PathFinder. - #116812

Merged
jaraco merged 3 commits into
python:mainfrom
jaraco:feature/invalidate-metadata-caches
Mar 14, 2024
Merged

gh-116811: Ensure MetadataPathFinder.invalidate_caches is reachable when delegated through PathFinder.#116812
jaraco merged 3 commits into
python:mainfrom
jaraco:feature/invalidate-metadata-caches

Conversation

@jaraco

@jaracojaraco commented Mar 14, 2024

Copy link
Copy Markdown
Member
  • Make MetadataPathFinder a proper classmethod.
  • In PathFinder.invalidate_caches, also invoke MetadataPathFinder.invalidate_caches.

@jaraco

Copy link
Copy Markdown
MemberAuthor

I guess this change should be backported, since it fixes a missed expectation that the cache invalidation was happening. I don't feel strongly about it, though.

@jaracojaraco added needs backport to 3.11 only security fixes needs backport to 3.12 only security fixes labels Mar 14, 2024
@jaraco

Copy link
Copy Markdown
MemberAuthor

In order not to have too many open threads, I'm going to merge this, but feel free to comment if you have concerns and we can revisit or roll back if needed.

@jaraco
jaraco merged commit 5f52d20 into python:mainMar 14, 2024
@miss-islington-app

Copy link
Copy Markdown

Thanks @jaraco for the PR 🌮🎉.. I'm working now to backport this PR to: 3.11, 3.12.
🐍🍒⛏🤖 I'm not a witch! I'm not a witch!

@miss-islington-app

Copy link
Copy Markdown

Sorry, @jaraco, I could not cleanly backport this to 3.12 due to a conflict.
Please backport using cherry_picker on command line.

cherry_picker 5f52d20a93908196f74271db8437cc1ba7e1e262 3.12

@miss-islington-app

Copy link
Copy Markdown

Sorry, @jaraco, I could not cleanly backport this to 3.11 due to a conflict.
Please backport using cherry_picker on command line.

cherry_picker 5f52d20a93908196f74271db8437cc1ba7e1e262 3.11

@bedevere-bot

Copy link
Copy Markdown

⚠️⚠️⚠️ Buildbot failure ⚠️⚠️⚠️

Hi! The buildbot AMD64 Ubuntu NoGIL 3.x has failed when building commit 5f52d20.

What do you need to do:

  1. Don't panic.
  2. Check the buildbot page in the devguide if you don't know what the buildbots are or how they work.
  3. Go to the page of the buildbot that failed (https://buildbot.python.org/all/#builders/1225/builds/1752) and take a look at the build logs.
  4. Check if the failure is related to this commit (5f52d20) or if it is a false positive.
  5. If the failure is related to this commit, please, reflect that on the issue and make a new Pull Request with a fix.

You can take a look at the buildbot page here:

https://buildbot.python.org/all/#builders/1225/builds/1752

Failed tests:

  • <regrtest
  • worker>

Failed subtests:

  • test_map_timeout - test.test_concurrent_futures.test_process_pool.ProcessPoolSpawnProcessPoolExecutorTest.test_map_timeout
  • test_create_connection_ssl_1 - test.test_asyncio.test_ssl.TestSSL.test_create_connection_ssl_1
  • test_lockf - main.FNTLEINTRTest.test_lockf
  • test_all - test.test_eintr.EINTRTests.test_all
  • test_flock - main.FNTLEINTRTest.test_flock

Summary of the results of the build (if available):

==

Click to see traceback logs
Traceback (most recent call last):
File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/test_eintr.py", line 17, in test_all
script_helper.run_test_script(script)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^
File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/support/script_helper.py", line 316, in run_test_scriptraiseAssertionError(f"{name} failed")
AssertionError: script _test_eintr.py failed
Traceback (most recent call last):
File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/libregrtest/single.py", line 178, in _runtest_env_changed_exc
_load_run_test(result, runtests)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/libregrtest/single.py", line 125, in _load_run_test
test_mod = importlib.import_module(module_name)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/importlib/__init__.py", line 88, in import_modulereturn _bootstrap._gcd_import(name[level:], package, level)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
File "<frozen importlib._bootstrap>", line 1324, in _find_and_load_unlockedModuleNotFoundError: No module named 'test.<regrtest worker>'
Traceback (most recent call last):
File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/asyncio/selector_events.py", line 978, in _read_ready__get_buffer
nbytes =self._sock.recv_into(buf)
~~~~~~~~~~~~~~~~~~~~^^^^^ConnectionResetError: [Errno 104] Connection reset by peer
Future exception was never retrieved
future: <Future finished exception=ConnectionResetError(104, 'Connection reset by peer')>
Traceback (most recent call last):
File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/asyncio/selector_events.py", line 978, in _read_ready__get_buffer
nbytes =self._sock.recv_into(buf)
~~~~~~~~~~~~~~~~~~~~^^^^^ConnectionResetError: [Errno 104] Connection reset by peer
/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/support/__init__.py:785: ResourceWarning: unclosed <socket.socket fd=32, family=2, type=1, proto=6, laddr=('127.0.0.1', 51906)>
gc.collect()
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/asyncio/selector_events.py:869: ResourceWarning: unclosed transport <_SelectorSocketTransport closing fd=32>
_warn(f"unclosed transport {self!r}", ResourceWarning, source=self)
ResourceWarning: Enable tracemalloc to get the object allocation traceback
Traceback (most recent call last):
File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/_test_eintr.py", line 535, in test_flockself._lock(fcntl.flock, "flock")
~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/_test_eintr.py", line 517, in _lockraiseException("failed to sync child in %.1f sec"% dt)
Exception: failed to sync child in 300.1 sec
Traceback (most recent call last):
File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/_test_eintr.py", line 532, in test_lockfself._lock(fcntl.lockf, "lockf")
~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/_test_eintr.py", line 517, in _lockraiseException("failed to sync child in %.1f sec"% dt)
Exception: failed to sync child in 300.3 sec
Traceback (most recent call last):
File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/test_concurrent_futures/executor.py", line 71, in test_map_timeoutself.assertEqual([None, None], results)
~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^AssertionError: Lists differ: [None, None] != []
Traceback (most recent call last):
Warning -- File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/support/__init__.py", line 198, in _force_run
Warning -- return func(*args)
Warning -- ~~~~^^^^^^^
Warning -- OSError: [Errno 39] Directory not empty: '/tmp/test_python_kf8ji_kn/tmp7e5svg_l/python-installation/lib/python3.13/test'
Warning -- Warning -- During handling of the above exception, another exception occurred:
Warning -- Warning -- Traceback (most recent call last):
Warning -- File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/libregrtest/run_workers.py", line 389, in run
Warning -- mp_result = self._runtest(test_name)
Warning -- ~~~~~~~~~~~~~^^^^^^^^^^^
Warning -- File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/libregrtest/run_workers.py", line 349, in _runtest
Warning -- retcode, tmp_files = self.run_tmp_files(worker_runtests,
Warning -- ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
Warning -- stdout_file.fileno())
Warning -- ^^^^^^^^^^^^^^^^^^^^^
Warning -- File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/libregrtest/run_workers.py", line 289, in run_tmp_files
Warning -- os_helper.rmtree(tmp_dir)
Warning -- ~~~~~~~~~~~~~~~~^^^^^^^^^
Warning -- File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/support/os_helper.py", line 465, in rmtree
Warning -- _rmtree(path)
Warning -- ~~~~~~~^^^^^^
Warning -- File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/support/os_helper.py", line 449, in _rmtree
Warning -- _rmtree_inner(path)
Warning -- ~~~~~~~~~~~~~^^^^^^
Warning -- File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/support/os_helper.py", line 445, in _rmtree_inner
Warning -- _rmtree_inner(fullname)
Warning -- ~~~~~~~~~~~~~^^^^^^^^^^
Warning -- File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/support/os_helper.py", line 445, in _rmtree_inner
Warning -- _rmtree_inner(fullname)
Warning -- ~~~~~~~~~~~~~^^^^^^^^^^
Warning -- File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/support/os_helper.py", line 445, in _rmtree_inner
Warning -- _rmtree_inner(fullname)
Warning -- ~~~~~~~~~~~~~^^^^^^^^^^
Warning -- [Previous line repeated 1 more time]
Warning -- File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/support/os_helper.py", line 446, in _rmtree_inner
Warning -- _force_run(path, os.rmdir, fullname)
Warning -- ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
Warning -- File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/support/__init__.py", line 209, in _force_run
Warning -- return func(*args)
Warning -- ~~~~^^^^^^^
Warning -- OSError: [Errno 39] Directory not empty: '/tmp/test_python_kf8ji_kn/tmp7e5svg_l/python-installation/lib/python3.13/test'
Kill <WorkerThread #1 running test=test_unicodedata pid=3541376 time=6 min 23 sec> process group
Kill <WorkerThread #2 running test=test_logging pid=3550953 time=1 min 18 sec> process group
Kill <WorkerThread #3 running test=test_array pid=3551973 time=440 ms> process group
Kill <WorkerThread #4 running test=test_tokenize pid=3535277 time=13 min 13 sec> process group
Kill <WorkerThread #5 running test=test_threading pid=3551081 time=57.6 sec> process group
Kill <WorkerThread #6 running test=test.test_multiprocessing_forkserver.test_processes pid=3543017 time=4 min 57 sec> process group
Kill <WorkerThread #7 running test=test.test_multiprocessing_spawn.test_misc pid=3549934 time=2 min 33 sec> process group
Kill <WorkerThread #8 running test=test_capi pid=3549833 time=2 min 38 sec> process group
Kill <WorkerThread #9 running test=test_regrtest pid=3550488 time=2 min 5 sec> process group
Traceback (most recent call last):
File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/test_asyncio/test_ssl.py", line 385, in test_create_connection_ssl_1
run(client)
~~~^^^^^^^^
File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/test_asyncio/test_ssl.py", line 380, in runself.loop.run_until_complete(_gather(*tasks))
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/asyncio/base_events.py", line 712, in run_until_completereturn future.result()
~~~~~~~~~~~~~^^
File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/test_asyncio/test_ssl.py", line 371, in _gatherreturnawait asyncio.gather(*tasks)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/test_asyncio/test_ssl.py", line 326, in client
reader, writer =await asyncio.open_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...<3 lines>...**extras)
^^^^^^^^^
File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/asyncio/streams.py", line 48, in open_connection
transport, _ =await loop.create_connection(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^lambda: protocol, host, port, **kwds)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/asyncio/base_events.py", line 1174, in create_connection
transport, protocol =awaitself._create_connection_transport(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^...<2 lines>...
ssl_shutdown_timeout=ssl_shutdown_timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/asyncio/base_events.py", line 1207, in _create_connection_transportawait waiter
ConnectionAbortedError: SSL handshake is taking longer than 30.0 seconds: aborting the connection

jaraco added a commit to jaraco/cpython that referenced this pull request Mar 15, 2024
…s reachable when delegated through PathFinder. (pythonGH-116812)
* Make MetadataPathFinder a proper classmethod.
* In PathFinder.invalidate_caches, also invoke MetadataPathFinder.invalidate_caches.
* Add blurb
(cherry picked from commit 5f52d20)
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
@jaraco

Copy link
Copy Markdown
MemberAuthor

The backports failed due to conflicts created by the introduction of marginally-useful type hints, in this case the -> None of a one-line function that doesn't return anything. It's another case where the introduction of type hints has added toil in exchange for very little (if any) value.

@jaraco
jaraco deleted the feature/invalidate-metadata-caches branch March 15, 2024 13:10
@jaraco

Copy link
Copy Markdown
MemberAuthor

Investigating the buildbot failure, I see:

0:45:01 load avg: 30.97 [1/5/1] <regrtest worker> failed (uncaught exception)
Re-running <regrtest worker> in verbose mode
test <regrtest worker> crashed -- Traceback (most recent call last):
File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/libregrtest/single.py", line 178, in _runtest_env_changed_exc
_load_run_test(result, runtests)
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/libregrtest/single.py", line 125, in _load_run_test
test_mod = importlib.import_module(module_name)
~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/importlib/__init__.py", line 88, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
File "<frozen importlib._bootstrap>", line 1324, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'test.<regrtest worker>'

and

Warning -- regrtest worker thread failed: Traceback (most recent call last):
Warning -- File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/support/__init__.py", line 198, in _force_run
Warning -- return func(*args)
Warning -- ~~~~^^^^^^^
Warning -- OSError: [Errno 39] Directory not empty: '/tmp/test_python_kf8ji_kn/tmp7e5svg_l/python-installation/lib/python3.13/test'
Warning -- Warning -- During handling of the above exception, another exception occurred:
Warning -- Warning -- Traceback (most recent call last):
Warning -- File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/libregrtest/run_workers.py", line 389, in run
Warning -- mp_result = self._runtest(test_name)
Warning -- ~~~~~~~~~~~~~^^^^^^^^^^^
Warning -- File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/libregrtest/run_workers.py", line 349, in _runtest
Warning -- retcode, tmp_files = self.run_tmp_files(worker_runtests,
Warning -- ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
Warning -- stdout_file.fileno())
Warning -- ^^^^^^^^^^^^^^^^^^^^^
Warning -- File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/libregrtest/run_workers.py", line 289, in run_tmp_files
Warning -- os_helper.rmtree(tmp_dir)
Warning -- ~~~~~~~~~~~~~~~~^^^^^^^^^
Warning -- File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/support/os_helper.py", line 465, in rmtree
Warning -- _rmtree(path)
Warning -- ~~~~~~~^^^^^^
Warning -- File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/support/os_helper.py", line 449, in _rmtree
Warning -- _rmtree_inner(path)
Warning -- ~~~~~~~~~~~~~^^^^^^
Warning -- File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/support/os_helper.py", line 445, in _rmtree_inner
Warning -- _rmtree_inner(fullname)
Warning -- ~~~~~~~~~~~~~^^^^^^^^^^
Warning -- File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/support/os_helper.py", line 445, in _rmtree_inner
Warning -- _rmtree_inner(fullname)
Warning -- ~~~~~~~~~~~~~^^^^^^^^^^
Warning -- File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/support/os_helper.py", line 445, in _rmtree_inner
Warning -- _rmtree_inner(fullname)
Warning -- ~~~~~~~~~~~~~^^^^^^^^^^
Warning -- [Previous line repeated 1 more time]
Warning -- File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/support/os_helper.py", line 446, in _rmtree_inner
Warning -- _force_run(path, os.rmdir, fullname)
Warning -- ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
Warning -- File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/support/__init__.py", line 209, in _force_run
Warning -- return func(*args)
Warning -- ~~~~^^^^^^^
Warning -- OSError: [Errno 39] Directory not empty: '/tmp/test_python_kf8ji_kn/tmp7e5svg_l/python-installation/lib/python3.13/test'
Kill <WorkerThread #1 running test=test_unicodedata pid=3541376 time=6 min 23 sec> process group
Kill <WorkerThread #2 running test=test_logging pid=3550953 time=1 min 18 sec> process group
Kill <WorkerThread #3 running test=test_array pid=3551973 time=440 ms> process group
Kill <WorkerThread #4 running test=test_tokenize pid=3535277 time=13 min 13 sec> process group
Kill <WorkerThread #5 running test=test_threading pid=3551081 time=57.6 sec> process group
Kill <WorkerThread #6 running test=test.test_multiprocessing_forkserver.test_processes pid=3543017 time=4 min 57 sec> process group
Kill <WorkerThread #7 running test=test.test_multiprocessing_spawn.test_misc pid=3549934 time=2 min 33 sec> process group
Kill <WorkerThread #8 running test=test_capi pid=3549833 time=2 min 38 sec> process group
Kill <WorkerThread #9 running test=test_regrtest pid=3550488 time=2 min 5 sec> process group

I suspect these failures are environmental and transient and not caused by this change.

@jaraco

Copy link
Copy Markdown
MemberAuthor

Confirmed - the same builder succeeded on the subsequent build. This builder does appear to be flaky right now.

image

@bedevere-app

Copy link
Copy Markdown

GH-116864 is a backport of this pull request to the 3.12 branch.

@bedevere-appbedevere-appBot removed the needs backport to 3.12 only security fixes label Mar 15, 2024
jaraco added a commit to jaraco/cpython that referenced this pull request Mar 15, 2024
…s reachable when delegated through PathFinder. (pythonGH-116812)
* Make MetadataPathFinder a proper classmethod.
* In PathFinder.invalidate_caches, also invoke MetadataPathFinder.invalidate_caches.
* Add blurb
(cherry picked from commit 5f52d20)
Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
@bedevere-app

Copy link
Copy Markdown

GH-116865 is a backport of this pull request to the 3.11 branch.

@bedevere-appbedevere-appBot removed the needs backport to 3.11 only security fixes label Mar 15, 2024
jaraco added a commit that referenced this pull request Mar 15, 2024
…hable when delegated through PathFinder. (GH-116812) (#116864)
* Make MetadataPathFinder a proper classmethod.
* In PathFinder.invalidate_caches, also invoke MetadataPathFinder.invalidate_caches.
* Add blurb
(cherry picked from commit 5f52d20)
jaraco added a commit that referenced this pull request Mar 15, 2024
…hable when delegated through PathFinder. (GH-116812) (#116865)
* Make MetadataPathFinder a proper classmethod.
* In PathFinder.invalidate_caches, also invoke MetadataPathFinder.invalidate_caches.
* Add blurb
(cherry picked from commit 5f52d20)
jaraco added a commit to python/importlib_metadata that referenced this pull request Mar 20, 2024
…hen delegated through PathFinder. (python/cpython#116812)
* Make MetadataPathFinder a proper classmethod.
vstinner pushed a commit to vstinner/cpython that referenced this pull request Mar 20, 2024
…able when delegated through PathFinder. (python#116812)
* Make MetadataPathFinder a proper classmethod.
* In PathFinder.invalidate_caches, also invoke MetadataPathFinder.invalidate_caches.
* Add blurb
clrpackages pushed a commit to clearlinux-pkgs/pypi-importlib_metadata that referenced this pull request Mar 22, 2024
…0.2 to version 7.1.0
Jason R. Coombs (13):
gh-116811: Ensure MetadataPathFinder.invalidate_caches is reachable when delegated through PathFinder. (python/cpython#116812)
Add support for python/cpython references
Fix test failures on older Pythons with os_helper shim. Copied 'from_test_support' from importlib_resources.
Moved compatibility module to compat package.
Moved compatibility module to compat package.
Remove legacy logic for Python 3.7.
Moved compatibility tests to the compat package, as they're not included in CPython.
Consolidated test support logic in jaraco.test.cpython.
Copy backport of isolated_modules from importlib_resources.
Ensure tests do not leak references in sys.modules.
Make MetadataPathFinder.find_distributions a classmethod for consistency with CPython. Closes #484.
Need to include names from test.support for py312 compat.
Finalize
Petr Viktorin (1):
gh-114107: Fix symlink test if symlinks aren't supported (python/cpython#114108)
Shantanu (1):
gh-109653: Improve import time of importlib.metadata / email.utils (python/cpython#114664)
adorilson pushed a commit to adorilson/cpython that referenced this pull request Mar 25, 2024
…able when delegated through PathFinder. (python#116812)
* Make MetadataPathFinder a proper classmethod.
* In PathFinder.invalidate_caches, also invoke MetadataPathFinder.invalidate_caches.
* Add blurb
diegorusso pushed a commit to diegorusso/cpython that referenced this pull request Apr 17, 2024
…able when delegated through PathFinder. (python#116812)
* Make MetadataPathFinder a proper classmethod.
* In PathFinder.invalidate_caches, also invoke MetadataPathFinder.invalidate_caches.
* Add blurb
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@jaraco@bedevere-bot