- Features
- Deferred import of zipfile.Path
- Deferred import of json
- Rely on zipp overlay for zipfile.Path.
- Deferred import of inspect for import performance.
- Disallow passing of 'dist' to EntryPoints.select.
- Add SimplePath to importlib_metadata.__all__.
- Prioritize valid dists to invalid dists when retrieving by
name.
- Deferred select imports in for speedup
(python/cpython#109829).
- Updated fixtures for python/cpython#120801.
- Deprecations and Removals
- Message.__getitem__ now raises a KeyError on missing
keys.
- Removed deprecated support for Distribution subclasses not
implementing abstract methods.
- Bugfixes
- When reading installed files from an egg, use
relative_to(walk_up=True) to honor files installed outside
of the installation root.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-importlib-metadata?expand=0&rev=56
* Deferred import of zipfile.Path
* Deferred import of json
* Rely on zipp overlay for zipfile.Path.
* Deferred import of inspect for import performance.
* Disallow passing of 'dist' to EntryPoints.select.
* Add SimplePath to importlib_metadata.__all__.
* Prioritize valid dists to invalid dists when retrieving by
name.
* Message.__getitem__ now raises a KeyError on missing keys.
* Removed deprecated support for Distribution subclasses not
implementing abstract methods.
* When reading installed files from an egg, use
relative_to(walk_up=True) to honor files installed outside of
the installation root.
* Deferred select imports in for speedup
(python/cpython#109829).
* Updated fixtures for python/cpython#120801.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-importlib-metadata?expand=0&rev=55
- update to 7.0.0:
* Removed EntryPoint access by numeric index (tuple behavior).
* Added ``Distribution.origin`` supplying the
``direct_url.json`` in a ``SimpleNamespace``. (#404)
* Added diagnose script. (#461)
* Added EntryPoints.__repr__ (#473)
- Remove unneeded BuildRequires on pep517.
- Update to versino 5.1.0
* #396: Added compatibility for PathDistributions originating from Python 3.8 and 3.9.
- update to 4.12.0:
- #361: Avoid potential REDoS in ``EntryPoint.pattern``.
* #353: Fixed discovery of distributions when path is empty.
- Update to v4.8.1
* #334: Correct SimplePath protocol to match pathlib protocol
* bpo-44784: Avoid errors in test suite when DeprecationWarnings
* #327: Deprecation warnings now honor call stack variance on
* #326: Performance tests now rely on pytest-perf. To disable
these tests, which require network access and a git checkout,
entry_points (EntryPoints) to honor expectations in older
implementations and issuing deprecation warnings for these
() and other list-based mutation operations. Avoid deprecation
* EntryPoints results once again allow for access by index. To
avoid deprecation warnings, cast the result to a Sequence
* #320: Fix issue where normalized name for eggs was incorrectly
* #317: De-duplication of distributions no longer requires
loading the full metadata for PathDistribution objects, entry
* #315: Add SimplePath protocol for interface clarity in
* #304: PackageMetadata as returned by metadata() and
Distribution.metadata() now provides normalized metadata
OBS-URL: https://build.opensuse.org/request/show/1131745
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-importlib-metadata?expand=0&rev=22
* Removed EntryPoint access by numeric index (tuple behavior).
* Added ``Distribution.origin`` supplying the
``direct_url.json`` in a ``SimpleNamespace``. (#404)
* Added diagnose script. (#461)
* Added EntryPoints.__repr__ (#473)
- Remove unneeded BuildRequires on pep517.
- Update to versino 5.1.0
* #396: Added compatibility for PathDistributions originating from Python 3.8 and 3.9.
- update to 4.12.0:
- #361: Avoid potential REDoS in ``EntryPoint.pattern``.
* #353: Fixed discovery of distributions when path is empty.
- Update to v4.8.1
* #334: Correct SimplePath protocol to match pathlib protocol
* bpo-44784: Avoid errors in test suite when DeprecationWarnings
* #327: Deprecation warnings now honor call stack variance on
* #326: Performance tests now rely on pytest-perf. To disable
these tests, which require network access and a git checkout,
entry_points (EntryPoints) to honor expectations in older
implementations and issuing deprecation warnings for these
() and other list-based mutation operations. Avoid deprecation
* EntryPoints results once again allow for access by index. To
avoid deprecation warnings, cast the result to a Sequence
* #320: Fix issue where normalized name for eggs was incorrectly
* #317: De-duplication of distributions no longer requires
loading the full metadata for PathDistribution objects, entry
* #315: Add SimplePath protocol for interface clarity in
* #304: PackageMetadata as returned by metadata() and
Distribution.metadata() now provides normalized metadata
* If a long description is provided in the payload of the RFC
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-importlib-metadata?expand=0&rev=46
- update to 6.6.0:
* Expanded type annotations.
* python/cpython#103661: Removed excess error suppression in
``_read_files_egginfo_installed`` and fixed path handling
on Windows.
* #422: Removed ABC metaclass from ``Distribution`` and instead
deprecated construction of ``Distribution`` objects without
concrete methods.
* Updated docs with tweaks from upstream CPython.
* Consolidated some behaviors in tests around ``_path``.
* Added type annotation for ``Distribution.read_text``.
OBS-URL: https://build.opensuse.org/request/show/1084915
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-importlib-metadata?expand=0&rev=20
* Expanded type annotations.
* python/cpython#103661: Removed excess error suppression in
``_read_files_egginfo_installed`` and fixed path handling
on Windows.
* #422: Removed ABC metaclass from ``Distribution`` and instead
deprecated construction of ``Distribution`` objects without
concrete methods.
* Updated docs with tweaks from upstream CPython.
* Consolidated some behaviors in tests around ``_path``.
* Added type annotation for ``Distribution.read_text``.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-importlib-metadata?expand=0&rev=42
* #115: Support ``installed-files.txt`` for
``Distribution.files`` when present.
* #442: Fixed issue introduced in v6.1.0 where non-importable
* names (metadata dirs) began appearing in ``packages_distributions``.
* #384: ``PackageMetadata`` now stipulates an additional
``get`` method allowing for easy querying of metadata keys that may
not be present
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-importlib-metadata?expand=0&rev=38
* #419: Declared ``Distribution`` as an abstract class, enforcing
definition of abstract methods in instantiated subclasses. It's no
longer possible to instantiate a ``Distribution`` or any subclasses
unless they define the abstract methods.
* #371: Deprecated expectation that ``PackageMetadata.__getitem__``
will return ``None`` for missing keys. In the future, it will raise a
``KeyError``.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-importlib-metadata?expand=0&rev=32
- update to 4.11.3:
* #372: Removed cast of path items in FastPath, not needed.
* #369: Fixed bug where ``EntryPoint.extras`` was returning
match objects and not the extras strings.
* #367: In ``Distribution.requires`` for egg-info, if ``requires.txt``
is empty, return an empty list.
* bpo-46246: Added ``__slots__`` to ``EntryPoints``.
* #365 and bpo-46546: Avoid leaking ``method_name`` in
``DeprecatedList``.
- update to 4.10.1:
- #361: Avoid potential REDoS in ``EntryPoint.pattern``.
- Update to 4.10.0:
- #354: Removed Distribution._local factory. This
functionality was created as a demonstration of the possible
implementation. Now, the pep517 package provides this
functionality directly through pep517.meta.load.
- Require Python 3.7 or later.
- #357: Fixed requirement generation from egg-info when a URL
requirement is given.
OBS-URL: https://build.opensuse.org/request/show/975783
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-importlib-metadata?expand=0&rev=9
* #372: Removed cast of path items in FastPath, not needed.
* #369: Fixed bug where ``EntryPoint.extras`` was returning
match objects and not the extras strings.
* #367: In ``Distribution.requires`` for egg-info, if ``requires.txt``
is empty, return an empty list.
* bpo-46246: Added ``__slots__`` to ``EntryPoints``.
* #365 and bpo-46546: Avoid leaking ``method_name`` in
``DeprecatedList``.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-importlib-metadata?expand=0&rev=20
- Update to 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
- Release v4.8.0
* #337: Rewrote EntryPoint as a simple class, still immutable
and still with the attributes, but without any expectation for
namedtuple functionality such as _asdict.
- Release v4.7.1
* #344: Fixed regression in packages_distributions when neither
top-level.txt nor a files manifest is present.
- Release v4.7.0
* #330: In packages_distributions, now infer top-level names
from .files() when a top-level.txt (Setuptools-specific
metadata) is not present.
- Release v4.6.4
* #334: Correct SimplePath protocol to match pathlib protocol
for __truediv__.
- Release v4.6.3
* Moved workaround for #327 to _compat module.
- Release v4.6.2
* bpo-44784: Avoid errors in test suite when DeprecationWarnings
are treated as errors.
- Release v4.6.1
* #327: Deprecation warnings now honor call stack variance on
PyPy.
- Release v4.6.0
* #326: Performance tests now rely on pytest-perf. To disable
these tests, which require network access and a git checkout,
pass -p no:perf to pytest.
- Release v4.5.0
* #319: Remove SelectableGroups deprecation exception for flake8.
- Release 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 for sort
() 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]).
- Release v4.3.1
* #320: Fix issue where normalized name for eggs was incorrectly
solicited, leading to metadata being unavailable for eggs.
- Release v4.3.0
* #317: De-duplication of distributions no longer requires
loading the full metadata for PathDistribution objects, entry
point loading performance by ~10x.
- Release v4.2.0
* Prefer f-strings to .format calls.
- Release v4.1.0
* #312: Add support for metadata 2.2 (Dynamic field).
* #315: Add SimplePath protocol for interface clarity in
PathDistribution.
- Release v4.0.1
* #306: Clearer guidance about compatibility in readme.
- Release v4.0.0
* #304: PackageMetadata as returned by metadata() and
Distribution.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.
- Release v3.10.1
* Minor tweaks from CPython.
- Release v3.10.0
* #295: Internal refactoring to unify section parsing logic.
- Release v3.9.1
* #296: Exclude 'prepare' package.
* #297: Fix ValueError when entry points contains comments.
- Release 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 the entry points documentation 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 older
importlib_metadata (especially on Python 3.5 and earlier),
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.
- Release v3.8.2
* #293: Re-enabled lazy evaluation of path lookup through a
FreezableDefaultDict.
- Release v3.8.1
* #293: Workaround for error in distribution search.
- Release v3.8.0
* #290: Add mtime-based caching for FastPath and its lookups,
dramatically increasing performance for repeated distribution
lookups.
- Release v3.7.3
* Docs enhancements and cleanup following review in GH-24782.
OBS-URL: https://build.opensuse.org/request/show/920301
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-importlib-metadata?expand=0&rev=16
- update to 3.7.0:
* #131: Added ``packages_distributions`` to conveniently
resolve a top-level package or module to its distribution(s).
* #284: Introduces new ``EntryPoints`` object, a tuple of
``EntryPoint`` objects but with convenience properties for
selecting and inspecting the results:
- ``.select()`` accepts ``group`` or ``name`` keyword
parameters and returns a new ``EntryPoints`` 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 as ``EntryPoint.select()``.
``entry_points()`` now provides a future-compatible
``SelectableGroups`` object that supplies the above interface
but remains a dict for compatibility.
In the future, ``entry_points()`` will return an
``EntryPoints`` object, but provide for backward
compatibility with a deprecated ``__getitem__``
accessor by group and a ``get()`` method.
If passing selection parameters to ``entry_points``, the
future behavior is invoked and an ``EntryPoints`` is the
result.
Construction of entry points using
``dict([EntryPoint, ...])`` is now deprecated and raises
an appropriate DeprecationWarning and will be removed in
a future version.
* #280: ``entry_points`` now only returns entry points for
OBS-URL: https://build.opensuse.org/request/show/876090
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-importlib-metadata?expand=0&rev=5
* #131: Added ``packages_distributions`` to conveniently
resolve a top-level package or module to its distribution(s).
* #284: Introduces new ``EntryPoints`` object, a tuple of
``EntryPoint`` objects but with convenience properties for
selecting and inspecting the results:
- ``.select()`` accepts ``group`` or ``name`` keyword
parameters and returns a new ``EntryPoints`` 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 as ``EntryPoint.select()``.
``entry_points()`` now provides a future-compatible
``SelectableGroups`` object that supplies the above interface
but remains a dict for compatibility.
In the future, ``entry_points()`` will return an
``EntryPoints`` object, but provide for backward
compatibility with a deprecated ``__getitem__``
accessor by group and a ``get()`` method.
If passing selection parameters to ``entry_points``, the
future behavior is invoked and an ``EntryPoints`` is the
result.
Construction of entry points using
``dict([EntryPoint, ...])`` is now deprecated and raises
an appropriate DeprecationWarning and will be removed in
a future version.
* #280: ``entry_points`` now only returns entry points for
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-importlib-metadata?expand=0&rev=12