Update dependency importlib-metadata to v4
This MR contains the following updates:
Package | Update | Change |
---|---|---|
importlib-metadata | major |
==1.7.0 -> ==4.11.4
|
Release Notes
python/importlib_metadata
v4.11.4
=======
-
#379: In
PathDistribution._name_from_stem
, avoid including parts of the extension in the result. -
#381: In
PathDistribution._normalized_name
, ensure names loaded from the stem of the filename are also normalized, ensuring duplicate entry points by packages varying only by non-normalized name are hidden.
v4.11.3
=======
- #372: Removed cast of path items in FastPath, not needed.
v4.11.2
=======
-
#369: Fixed bug where
EntryPoint.extras
was returning match objects and not the extras strings.
v4.11.1
=======
-
#367: In
Distribution.requires
for egg-info, ifrequires.txt
is empty, return an empty list.
v4.11.0
=======
- bpo-46246: Added
__slots__
toEntryPoints
.
v4.10.1
=======
v4.10.0
=======
-
#354: Removed
Distribution._local
factory. This functionality was created as a demonstration of the possible implementation. Now, thepep517 <https://pypi.org/project/pep517>
_ package provides this functionality directly throughpep517.meta.load <https://github.com/pypa/pep517/blob/a942316305395f8f757f210e2b16f738af73f8b8/pep517/meta.py#L63-L73>
_.
v4.9.0
======
- Require Python 3.7 or later.
v4.8.3
======
- #357: Fixed requirement generation from egg-info when a URL requirement is given.
v4.8.2
======
v4.8.1
======
-
#348: Restored support for
EntryPoint
access by item, deprecating support in the process. Users are advised to use direct member access instead of item-based access::- ep[0] -> ep.name
- ep[1] -> ep.value
- ep[2] -> ep.group
- ep[:] -> ep.name, ep.value, ep.group
v4.8.0
======
-
#337: Rewrote
EntryPoint
as a simple class, still immutable and still with the attributes, but without any expectation fornamedtuple
functionality such as_asdict
.
v4.7.1
======
-
#344: Fixed regression in
packages_distributions
when neither top-level.txt nor a files manifest is present.
v4.7.0
======
-
#330: In
packages_distributions
, now infer top-level names from.files()
when atop-level.txt
(Setuptools-specific metadata) is not present.
v4.6.4
======
-
#334: Correct
SimplePath
protocol to matchpathlib
protocol for__truediv__
.
v4.6.3
======
- Moved workaround for #327 to
_compat
module.
v4.6.2
======
- bpo-44784: Avoid errors in test suite when DeprecationWarnings are treated as errors.
v4.6.1
======
- #327: Deprecation warnings now honor call stack variance on PyPy.
v4.6.0
======
-
#326: Performance tests now rely on
pytest-perf <https://pypi.org/project/pytest-perf>
_. To disable these tests, which require network access and a git checkout, pass-p no:perf
to pytest.
v4.5.0
======
-
#319: Remove
SelectableGroups
deprecation exception for flake8.
v4.4.0
======
-
#300: Restore compatibility in the result from
Distribution.entry_points
(EntryPoints
) to honor expectations in older implementations and issuing deprecation warnings for these cases:-
EntryPoints
objects are once again mutable, allowing forsort()
and other list-based mutation operations. Avoid deprecation warnings by casting to a mutable sequence (e.g.list(dist.entry_points).sort()
). -
EntryPoints
results once again allow for access by index. To avoid deprecation warnings, cast the result to a Sequence first (e.g.tuple(dist.entry_points)[0]
).
-
v4.3.1
======
- #320: Fix issue where normalized name for eggs was incorrectly solicited, leading to metadata being unavailable for eggs.
v4.3.0
======
-
#317: De-duplication of distributions no longer requires
loading the full metadata for
PathDistribution
objects, entry point loading performance by ~10x.
v4.2.0
======
- Prefer f-strings to
.format
calls.
v4.1.0
======
-
#312: Add support for metadata 2.2 (
Dynamic
field). -
#315: Add
SimplePath
protocol for interface clarity inPathDistribution
.
v4.0.1
======
- #306: Clearer guidance about compatibility in readme.
v4.0.0
======
-
#304:
PackageMetadata
as returned bymetadata()
andDistribution.metadata()
now provides normalized metadata honoring PEP 566:- If a long description is provided in the payload of the
RFC 822 value, it can be retrieved as the
Description
field. - Any multi-line values in the metadata will be returned as such.
- For any multi-line values, line continuation characters are removed. This backward-incompatible change means that any projects relying on the RFC 822 line continuation characters being present must be tolerant to them having been removed.
- Add a
json
property that provides the metadata converted to a JSON-compatible form per PEP 566.
- If a long description is provided in the payload of the
RFC 822 value, it can be retrieved as the
v3.10.1
=======
- Minor tweaks from CPython.
v3.10.0
=======
- #295: Internal refactoring to unify section parsing logic.
v3.9.1
======
v3.9.0
======
-
Use of Mapping (dict) interfaces on
SelectableGroups
is now flagged as deprecated. Instead, users are advised to use the select interface for future compatibility.Suppress the warning with this filter:
ignore:SelectableGroups dict interface
.Or with this invocation in the Python environment:
warnings.filterwarnings('ignore', 'SelectableGroups dict interface')
.Preferably, switch to the
select
interface introduced in 3.7.0. See theentry points documentation <https://importlib-metadata.readthedocs.io/en/latest/using.html#entry-points>
_ and changelog for the 3.6 release below for more detail.For some use-cases, especially those that rely on
importlib.metadata
in Python 3.8 and 3.9 or those relying on olderimportlib_metadata
(especially on Python 3.5 and earlier),backports.entry_points_selectable <https://pypi.org/project/backports.entry_points_selectable>
_ was created to ease the transition. Please have a look at that project if simply relying on importlib_metadata 3.6+ is not straightforward. Background in #298. -
#283: Entry point parsing no longer relies on ConfigParser and instead uses a custom, one-pass parser to load the config, resulting in a ~20% performance improvement when loading entry points.
v3.8.2
======
- #293: Re-enabled lazy evaluation of path lookup through a FreezableDefaultDict.
v3.8.1
======
- #293: Workaround for error in distribution search.
v3.8.0
======
-
#290: Add mtime-based caching for
FastPath
and its lookups, dramatically increasing performance for repeated distribution lookups.
v3.7.3
======
- Docs enhancements and cleanup following review in
GH-24782 <https://github.com/python/cpython/pull/24782>
_.
v3.7.2
======
- Cleaned up cruft in entry_points docstring.
v3.7.1
======
- Internal refactoring to facilitate
entry_points() -> dict
deprecation.
v3.7.0
======
-
#131: Added
packages_distributions
to conveniently resolve a top-level package or module to its distribution(s).
v3.6.0
======
-
#284: Introduces new
EntryPoints
object, a tuple ofEntryPoint
objects but with convenience properties for selecting and inspecting the results:-
.select()
acceptsgroup
orname
keyword parameters and returns a newEntryPoints
tuple with only those that match the selection. -
.groups
property presents all of the group names. -
.names
property presents the names of the entry points. - Item access (e.g.
eps[name]
) retrieves a single entry point by name.
entry_points
now accepts "selection parameters", same asEntryPoint.select()
.entry_points()
now provides a future-compatibleSelectableGroups
object that supplies the above interface (except item access) but remains a dict for compatibility.In the future,
entry_points()
will return anEntryPoints
object for all entry points.If passing selection parameters to
entry_points
, the future behavior is invoked and anEntryPoints
is the result. -
-
#284: Construction of entry points using
dict([EntryPoint, ...])
is now deprecated and raises an appropriate DeprecationWarning and will be removed in a future version. -
#300:
Distribution.entry_points
now presents as anEntryPoints
object and access by index is no longer allowed. If access by index is required, cast to a sequence first.
v3.5.0
======
-
#280:
entry_points
now only returns entry points for unique distributions (by name).
v3.4.0
======
- #10: Project now declares itself as being typed.
- #272: Additional performance enhancements to distribution discovery.
-
#111: For PyPA projects, add test ensuring that
MetadataPathFinder._search_paths
honors the needed interface. Method is still private.
v3.3.0
======
-
#265:
EntryPoint
objects now expose a.dist
object referencing theDistribution
when constructed from a Distribution.
v3.2.0
======
- The object returned by
metadata()
now has a formally-defined protocol calledPackageMetadata
with declared support for the.get_all()
method. Fixes #126.
v3.1.1
======
v3.1.0
======
- Merge with 2.1.0.
v3.0.0
======
- Require Python 3.6 or later.
v2.1.3
=======
-
#361: Avoid potential REDoS in
EntryPoint.pattern
.
v2.1.2
======
- #353: Fixed discovery of distributions when path is empty.
v2.1.1
======
- #261: Restored compatibility for package discovery for metadata without version in the name and for legacy eggs.
v2.1.0
======
-
#253: When querying for package metadata, the lookup
now honors
package normalization rules <https://packaging.python.org/specifications/recording-installed-packages/>
_.
v2.0.0
======
-
importlib_metadata
no longer presents a__version__
attribute. Consumers wishing to resolve the version of the package should query it directly withimportlib_metadata.version('importlib-metadata')
. Closes #71.
Configuration
-
If you want to rebase/retry this MR, click this checkbox.
This MR has been generated by Renovate Bot.