* #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
* #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
* #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
* A vulnerability (CVE-2020-27783) was discovered in the HTML Cleaner by Yaniv Nizry,
which allowed JavaScript to pass through. The cleaner now removes more sneaky
"style" content.
* GH#310: lxml.html.InputGetter supports __len__() to count
* the number of input fields. Patch by Aidan Woolley.
* lxml.html.InputGetter has a new .items() method to ease processing all input fields.
* lxml.html.InputGetter.keys() now returns the field names in document order.
* GH-309: The API documentation is now generated using sphinx-apidoc. Patch by Chris Mayo.
* LP#1869455: C14N 2.0 serialisation failed for unprefixed attributes when a default namespace was defined.
* TreeBuilder.close() raised AssertionError in some error cases where it should
have raised XMLSyntaxError. It now raises a combined exception to keep up
backwards compatibility, while switching to XMLSyntaxError as an interface.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-importlib-metadata?expand=0&rev=6
- Update to 3.1.1
* no changelog, probably just the merge of 2.1.1
- Update in v2.1.1
* #261: Restored compatibility for package discovery for metadata
without version in the name and for legacy eggs.
- Update in v3.1.0
* Merge with 2.1.0.
- Update in v2.1.0
* #253: When querying for package metadata, the lookup now honors
package normalization rules.
- Update in v3.0.0
* Require Python 3.6 or later.
- Upstream switched to pytest, so do we
- Revert last change: The condition for **BuildRequires** does not
make any sense, as that would also prevent the install of
python36-importlib_resources into the build environment.
OBS-URL: https://build.opensuse.org/request/show/853672
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-importlib-metadata?expand=0&rev=4