Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 3 commits into from
Mar 14, 2024

Conversation

jaraco
Copy link
Member

@jaraco jaraco commented Mar 14, 2024

  • Make MetadataPathFinder a proper classmethod.
  • In PathFinder.invalidate_caches, also invoke MetadataPathFinder.invalidate_caches.

@jaraco
Copy link
Member Author

jaraco commented Mar 14, 2024

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.

@jaraco jaraco added needs backport to 3.11 only security fixes needs backport to 3.12 bug and security fixes labels Mar 14, 2024
@jaraco
Copy link
Member Author

jaraco commented Mar 14, 2024

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:main Mar 14, 2024
34 checks passed
@miss-islington-app
Copy link

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

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

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

⚠️⚠️⚠️ 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_script
    raise AssertionError(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_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>'


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_flock
    self._lock(fcntl.flock, "flock")
    ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/_test_eintr.py", line 517, in _lock
    raise Exception("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_lockf
    self._lock(fcntl.lockf, "lockf")
    ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/_test_eintr.py", line 517, in _lock
    raise Exception("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_timeout
    self.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 run
    self.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_complete
    return future.result()
           ~~~~~~~~~~~~~^^
  File "/home/ubuntu/buildarea/3.x.itamaro-ubuntu-aws.nogil/build/Lib/test/test_asyncio/test_ssl.py", line 371, in _gather
    return await 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 = await self._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_transport
    await 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
Member Author

jaraco commented Mar 15, 2024

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
Member Author

jaraco commented Mar 15, 2024

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
Member Author

jaraco commented Mar 15, 2024

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

image

@bedevere-app
Copy link

bedevere-app bot commented Mar 15, 2024

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

@bedevere-app bedevere-app bot removed the needs backport to 3.12 bug and 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

bedevere-app bot commented Mar 15, 2024

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

@bedevere-app bedevere-app bot 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 free to 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