Movatterモバイル変換


[0]ホーム

URL:


ContentsMenuExpandLight modeDark modeAuto light/dark, in light modeAuto light/dark, in dark modeSkip to content
importlib_metadata 8.7.1.dev14+g95ecf2a documentation
importlib_metadata 8.7.1.dev14+g95ecf2a documentation

Links

Back to top

History

v8.7.0

27 Apr 2025

Features

  • .metadata() (andDistribution.metadata) can now returnNone if the metadata directory exists but not metadata file is present. (#493)

Bugfixes

  • Raise consistent ValueError for invalid EntryPoint.value (#518)

v8.6.1

20 Jan 2025

Bugfixes

  • Fixed indentation logic to also honor blank lines.

v8.6.0

20 Jan 2025

Features

v8.5.0

11 Sep 2024

Features

  • Deferred import of zipfile.Path (#502)

  • Deferred import of json (#503)

  • Rely on zipp overlay for zipfile.Path.

v8.4.0

20 Aug 2024

Features

  • Deferred import of inspect for import performance. (#499)

v8.3.0

19 Aug 2024

Features

  • Disallow passing of ‘dist’ to EntryPoints.select.

v8.2.0

24 Jul 2024

Features

  • Add SimplePath to importlib_metadata.__all__. (#494)

v8.1.0

23 Jul 2024

Features

  • Prioritize valid dists to invalid dists when retrieving by name. (#489)

v8.0.0

23 Jun 2024

Deprecations and Removals

  • Message.__getitem__ now raises a KeyError on missing keys. (#371)

  • Removed deprecated support for Distribution subclasses not implementing abstract methods.

v7.2.1

23 Jun 2024

Bugfixes

  • When reading installed files from an egg, userelative_to(walk_up=True) to honor files installed outside of the installation root. (#455)

v7.2.0

20 Jun 2024

Features

v7.1.0

20 Mar 2024

Features

Bugfixes

  • Make MetadataPathFinder.find_distributions a classmethod for consistency with CPython. Closes#484. (#484)

  • AllowMetadataPathFinder.invalidate_caches to be called as a classmethod.

v7.0.2

07 Mar 2024

No significant changes.

v7.0.1

22 Dec 2023

Bugfixes

  • Corrected the interface for SimplePath to encompass the expectations of locate_file and PackagePath.

  • Fixed type annotations to allow strings.

v7.0.0

03 Dec 2023

Deprecations and Removals

  • Removed EntryPoint access by numeric index (tuple behavior).

v6.11.0

03 Dec 2023

Features

  • AddedDistribution.origin supplying thedirect_url.json in aSimpleNamespace. (#404)

v6.10.0

01 Dec 2023

Features

  • Added diagnose script. (#461)

v6.9.0

01 Dec 2023

Features

  • Added EntryPoints.__repr__ (#473)

v6.8.0

07 Jul 2023

Features

  • Require Python 3.8 or later.

v6.7.0

18 Jun 2023

  • #453: When inferring top-level names that are importable fordistributions inpackage_distributions, now symlinks toother directories are honored.

v6.6.0

22 Apr 2023

  • #449: Expanded type annotations.

v6.5.1

21 Apr 2023

  • python/cpython#103661: Removed excess error suppression in_read_files_egginfo_installed and fixed path handlingon Windows.

v6.5.0

18 Apr 2023

  • #422: Removed ABC metaclass fromDistribution and insteaddeprecated construction ofDistribution objects withoutconcrete methods.

v6.4.1

15 Apr 2023

  • Updated docs with tweaks from upstream CPython.

v6.4.0

15 Apr 2023

  • Consolidated some behaviors in tests around_path.

  • Added type annotation forDistribution.read_text.

v6.3.0

09 Apr 2023

  • #115: Supportinstalled-files.txt forDistribution.fileswhen present.

v6.2.1

09 Apr 2023

  • #442: Fixed issue introduced in v6.1.0 where non-importablenames (metadata dirs) began appearing inpackages_distributions.

v6.2.0

07 Apr 2023

  • #384:PackageMetadata now stipulates an additionalgetmethod allowing for easy querying of metadata keys that may notbe present.

v6.1.0

18 Mar 2023

  • #428:packages_distributions now honors packages and moduleswith Python modules that not.py sources (e.g..pyc,.so).

v6.0.1

18 Mar 2023

  • #434: Expand protocol forPackageMetadata.get_all to matchthe upstream implementation ofemail.message.Message.get_allin python/typeshed#9620.

v6.0.0

01 Jan 2023

  • #419: DeclaredDistribution as an abstract class, enforcingdefinition of abstract methods in instantiated subclasses. It’s nolonger possible to instantiate aDistribution or any subclassesunless they define the abstract methods.

    Please comment in the issue if this change breaks any projects.This change will likely be rolled back if it causes significantdisruption.

v5.2.0

18 Dec 2022

  • #371: Deprecated expectation thatPackageMetadata.__getitem__will returnNone for missing keys. In the future, it will raise aKeyError.

v5.1.0

24 Nov 2022

  • #415: InstrumentSimplePath with generic support.

v5.0.0

01 Oct 2022

  • #97,#284,#300: Removed compatibility shims for deprecated entrypoint interfaces.

v4.13.0

01 Oct 2022

  • #396: Added compatibility forPathDistributions originatingfrom Python 3.8 and 3.9.

v4.12.0

25 Jun 2022

  • py-93259: Now raiseValueError whenNone or an emptystring are passed toDistribution.from_name (and othercallers).

v4.11.4

21 May 2022

  • #379: InPathDistribution._name_from_stem, avoid includingparts of the extension in the result.

  • #381: InPathDistribution._normalized_name, ensure namesloaded from the stem of the filename are also normalized, ensuringduplicate entry points by packages varying only by non-normalizedname are hidden.

Note (#459): This change had a backward-incompatible effect forany installers that created metadata in the filesystem with dashesin the package names (not replaced by underscores).

v4.11.3

13 Mar 2022

  • #372: Removed cast of path items in FastPath, not needed.

v4.11.2

26 Feb 2022

  • #369: Fixed bug whereEntryPoint.extras was returningmatch objects and not the extras strings.

v4.11.1

14 Feb 2022

  • #367: InDistribution.requires for egg-info, ifrequires.txtis empty, return an empty list.

v4.11.0

10 Feb 2022

v4.10.2

v4.10.1

16 Jan 2022

v2.1.3

16 Jan 2022

  • #361: Avoid potential REDoS inEntryPoint.pattern.

v4.10.0

19 Dec 2021

  • #354: RemovedDistribution._local factory. Thisfunctionality was created as a demonstration of thepossible implementation. Now, thepep517 packageprovides this functionality directly throughpep517.meta.load.

v4.9.0

16 Dec 2021

  • Require Python 3.7 or later.

v4.8.3

16 Dec 2021

  • #357: Fixed requirement generation from egg-info when aURL requirement is given.

v4.8.2

08 Nov 2021

v2.1.2

08 Nov 2021

  • #353: Fixed discovery of distributions when path is empty.

v4.8.1

29 Aug 2021

  • #348: Restored support forEntryPoint access by item,deprecating support in the process. Users are advisedto 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

28 Aug 2021

  • #337: RewroteEntryPoint as a simple class, stillimmutable and still with the attributes, but without anyexpectation fornamedtuple functionality such as_asdict.

v4.7.1

26 Aug 2021

  • #344: Fixed regression inpackages_distributions whenneither top-level.txt nor a files manifest is present.

v4.7.0

25 Aug 2021

  • #330: Inpackages_distributions, now infer top-levelnames from.files() when atop-level.txt(Setuptools-specific metadata) is not present.

v4.6.4

13 Aug 2021

  • #334: CorrectSimplePath protocol to matchpathlibprotocol for__truediv__.

v4.6.3

31 Jul 2021

  • Moved workaround for#327 to_compat module.

v4.6.2

30 Jul 2021

  • bpo-44784: Avoid errors in test suite whenDeprecationWarnings are treated as errors.

v4.6.1

04 Jul 2021

  • #327: Deprecation warnings now honor call stack varianceon PyPy.

v4.6.0

27 Jun 2021

  • #326: Performance tests now rely onpytest-perf.To disable these tests, which require network accessand a git checkout, pass-pno:perf to pytest.

v4.5.0

03 Jun 2021

  • #319: RemoveSelectableGroups deprecation exceptionfor flake8.

v4.4.0

31 May 2021

  • #300: Restore compatibility in the result fromDistribution.entry_points (EntryPoints) to honorexpectations in older implementations and issuingdeprecation warnings for these cases:

    • EntryPoints objects are once again mutable, allowingforsort() and other list-based mutation operations.Avoid deprecation warnings by casting to amutable sequence (e.g.list(dist.entry_points).sort()).

    • EntryPoints results once again allowfor access by index. To avoid deprecation warnings,cast the result to a Sequence first(e.g.tuple(dist.entry_points)[0]).

v4.3.1

28 May 2021

  • #320: Fix issue where normalized name for eggs wasincorrectly solicited, leading to metadata beingunavailable for eggs.

v4.3.0

27 May 2021

  • #317: De-duplication of distributions no longer requiresloading the full metadata forPathDistribution objects,entry point loading performance by ~10x.

v4.2.0

26 May 2021

  • Prefer f-strings to.format calls.

v4.1.0

26 May 2021

  • #312: Add support for metadata 2.2 (Dynamic field).

  • #315: AddSimplePath protocol for interface clarityinPathDistribution.

v4.0.1

20 Apr 2021

  • #306: Clearer guidance about compatibility in readme.

v4.0.0

18 Apr 2021

  • #304:PackageMetadata as returned bymetadata()andDistribution.metadata() now provides normalizedmetadata honoringPEP 566:

    • If a long description is provided in the payload of theRFC 822 value, it can be retrieved as theDescriptionfield.

    • Any multi-line values in the metadata will be returned assuch.

    • For any multi-line values, line continuation charactersare removed. This backward-incompatible change meansthat any projects relying on the RFC 822 line continuationcharacters being present must be tolerant to them havingbeen removed.

    • Add ajson property that provides the metadataconverted to a JSON-compatible form perPEP 566.

v3.10.1

12 Apr 2021

  • Minor tweaks from CPython.

v3.10.0

29 Mar 2021

  • #295: Internal refactoring to unify section parsing logic.

v3.9.1

29 Mar 2021

  • #296: Exclude ‘prepare’ package.

  • #297: Fix ValueError when entry points contains comments.

v3.9.0

28 Mar 2021

  • Use of Mapping (dict) interfaces onSelectableGroupsis now flagged as deprecated. Instead, users are advisedto use the select interface for future compatibility.

    Suppress the warning with this filter:ignore:SelectableGroupsdictinterface.

    Or with this invocation in the Python environment:warnings.filterwarnings('ignore','SelectableGroupsdictinterface').

    Preferably, switch to theselect interface introducedin 3.7.0. See theentry points documentation and changelog for the 3.6release below for more detail.

    For some use-cases, especially those that rely onimportlib.metadata in Python 3.8 and 3.9 orthose relying on olderimportlib_metadata (especiallyon Python 3.5 and earlier),backports.entry_points_selectablewas created to ease the transition. Please have a lookat that project if simply relying on importlib_metadata 3.6+is not straightforward. Background in#298.

  • #283: Entry point parsing no longer relies on ConfigParserand instead uses a custom, one-pass parser to load theconfig, resulting in a ~20% performance improvement whenloading entry points.

v3.8.2

28 Mar 2021

  • #293: Re-enabled lazy evaluation of path lookup througha FreezableDefaultDict.

v3.8.1

27 Mar 2021

  • #293: Workaround for error in distribution search.

v3.8.0

26 Mar 2021

  • #290: Add mtime-based caching forFastPath and itslookups, dramatically increasing performance for repeateddistribution lookups.

v3.7.3

14 Mar 2021

  • Docs enhancements and cleanup following review inGH-24782.

v3.7.2

07 Mar 2021

  • Cleaned up cruft in entry_points docstring.

v3.7.1

07 Mar 2021

  • Internal refactoring to facilitateentry_points()->dictdeprecation.

v3.7.0

24 Feb 2021

  • #131: Addedpackages_distributions to convenientlyresolve a top-level package or module to its distribution(s).

v3.6.0

23 Feb 2021

  • #284: Introduces newEntryPoints object, a tuple ofEntryPoint objects but with convenience properties forselecting and inspecting the results:

    • .select() acceptsgroup orname keywordparameters and returns a newEntryPoints tuplewith 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 singleentry 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 toentry_points, thefuture behavior is invoked and anEntryPoints is theresult.

  • #284: Construction of entry points usingdict([EntryPoint,...]) is now deprecated and raisesan appropriate DeprecationWarning and will be removed ina future version.

  • #300:Distribution.entry_points now presents as anEntryPoints object and access by index is no longerallowed. If access by index is required, cast to a sequencefirst.

v3.5.0

21 Feb 2021

  • #280:entry_points now only returns entry points forunique distributions (by name).

v3.4.0

10 Jan 2021

  • #10: Project now declares itself as being typed.

  • #272: Additional performance enhancements to distributiondiscovery.

  • #111: For PyPA projects, add test ensuring thatMetadataPathFinder._search_paths honors the neededinterface. Method is still private.

v3.3.0

13 Dec 2020

  • #265:EntryPoint objects now expose a.dist objectreferencing theDistribution when constructed from aDistribution.

v3.2.0

13 Dec 2020

  • The object returned bymetadata() now has aformally-defined protocol calledPackageMetadatawith declared support for the.get_all() method.Fixes#126.

v3.1.1

01 Dec 2020

v2.1.1

01 Dec 2020

  • #261: Restored compatibility for package discovery formetadata without version in the name and for legacyeggs.

v3.1.0

23 Nov 2020

  • Merge with 2.1.0.

v2.1.0

23 Nov 2020

v3.0.0

22 Nov 2020

  • Require Python 3.6 or later.

v2.0.0

26 Jun 2020

  • importlib_metadata no longer presents a__version__ attribute. Consumers wishing toresolve the version of the package should query itdirectly withimportlib_metadata.version('importlib-metadata').Closes#71.

v1.7.0

14 Jun 2020

  • PathNotFoundError now has a custom__str__mentioning “package metadata” being missing to helpguide users to the cause when the package is installedbut no metadata is present. Closes#124.

v1.6.1

05 Jun 2020

  • AddedDistribution._local() as a provisionaldemonstration of how to load metadata for a localpackage. Implicitly requires thatpep517 isinstalled. Ref#42.

  • Ensure inputs to FastPath are Unicode. Closes#121.

  • Tests now rely onimportlib.resources.files (andbackport) instead of the olderpath function.

  • Support any iterable fromfind_distributions.Closes#122.

v1.6.0

27 Mar 2020

  • Addedmodule andattr attributes toEntryPoint

v1.5.2

26 Mar 2020

  • Fix redundant entries fromFastPath.zip_children.Closes#117.

v1.5.1

25 Mar 2020

  • Improve reliability and consistency of compatibilityimports for contextlib and pathlib when running tests.Closes#116.

v1.5.0

29 Jan 2020

  • Additional performance optimizations in FastPath nowsaves an additional 20% on a typical call.

  • Correct for issue where PyOxidizer finder has no__module__ attribute. Closes#110.

v1.4.0

10 Jan 2020

  • Through careful optimization,distribution() is3-4x faster. Thanks to Antony Lee for thecontribution. Closes#95.

  • When searching throughsys.path, if any erroroccurs attempting to list a path entry, that entryis skipped, making the system much more lenientto errors. Closes#94.

v1.3.0

10 Dec 2019

  • Improve custom finders documentation. Closes#105.

v1.2.0

04 Dec 2019

  • Once again, drop support for Python 3.4. Ref#104.

v1.1.3

04 Dec 2019

  • Restored support for Python 3.4 due to improper versioncompatibility declarations in the v1.1.0 and v1.1.1releases. Closes#104.

v1.1.2

04 Dec 2019

  • Repaired project metadata to correctly declare thepython_requires directive. Closes#103.

v1.1.1

04 Dec 2019

  • Fixedrepr(EntryPoint) on PyPy 3 also. Closes#102.

v1.1.0

01 Dec 2019

  • Dropped support for Python 3.4.

  • EntryPoints are now pickleable. Closes#96.

  • Fixedrepr(EntryPoint) on PyPy 2. Closes#97.

v1.0.0

30 Nov 2019

  • Project adopts semver for versioning.

  • Removed compatibility shim introduced in 0.23.

  • For better compatibility with the stdlib implementation and toavoid the same distributions being discovered by the stdlib andbackport implementations, the backport now disables thestdlib DistributionFinder during initialization (import time).Closes#91 and closes#100.

0.23

16 Sep 2019

  • Added a compatibility shim to prevent failures on beta releasesof Python before the signature changed to accept the“context” parameter on find_distributions. This workaroundwill have a limited lifespan, not to extend beyond release ofPython 3.8 final.

0.22

11 Sep 2019

  • Renamedpackage parameter todistribution_nameasrecommendedin the following functions:distribution,metadata,version,files, andrequires. Thisbackward-incompatible change is expected to have little impactas these functions are assumed to be primarily used withpositional parameters.

0.21

10 Sep 2019

  • importlib.metadata now exposes theDistributionFindermetaclass and references it in the docs for extending thesearch algorithm.

  • AddDistribution.at for constructing a Distribution objectfrom a known metadata directory on the file system. Closes#80.

  • Distribution finders now receive a context object thatsupplies.path and.name properties. This changeintroduces a fundamental backward incompatibility forany projects implementing afind_distributions methodon aMetaPathFinder. This new layer of abstractionallows this context to be supplied directly or constructedon demand and opens the opportunity for afind_distributions method to solicit additionalcontext from the caller. Closes#85.

0.20

02 Sep 2019

  • Clarify in the docs that calls to.files could returnNone when the metadata is not present. Closes#69.

  • Return all requirements and not just the first for dist-infopackages. Closes#67.

0.19

28 Jul 2019

  • Restrain over-eager egg metadata resolution.

  • Add support for entry points with colons in the name. Closes#75.

0.18

09 Jun 2019

  • Parse entry points case sensitively. Closes#68

  • Add a version constraint on the backport configparser package. Closes#66

0.17

29 May 2019

  • Fix a permission problem in the tests on Windows.

0.16

29 May 2019

  • Don’t crash if there exists an EGG-INFO directory on sys.path.

0.15

24 May 2019

  • Fix documentation.

0.14

24 May 2019

  • Removedlocal_distribution function from the API.This backward-incompatible change removes thisbehavior summarily. Projects should remove theirreliance on this behavior. A replacement behavior isunder review in thepep517 project. Closes#42.

0.13

18 May 2019

  • Update docstrings to matchPEP 8. Closes#63.

  • Merged modules into one module. Closes#62.

0.12

14 May 2019

  • Add support for eggs. !65; Closes#19.

0.11

09 May 2019

  • Support generic zip files (not just wheels). Closes#59

  • Support zip files with multiple distributions in them. Closes#60

  • Fully expose the public API inimportlib_metadata.__all__.

0.10

07 May 2019

  • TheDistribution ABC is now officially part of the public API.Closes#37.

  • Fixed support for older single file egg-info formats. Closes#43.

  • Fixed a testing bug when$CWD has spaces in the path. Closes#50.

  • Add Python 3.8 to thetox testing matrix.

0.9

25 Mar 2019

  • Fixed issue where entry points without an attribute would raise anException. Closes#40.

  • Removed unusedname parameter fromentry_points(). Closes#44.

  • DistributionFinder classes must now be instantiated beforebeing placed onsys.meta_path.

0.8

01 Jan 2019

  • This library can now discover/enumerate all installed packages.Thisbackward-incompatible change alters the protocol finders mustimplement to support distribution package discovery. Closes#24.

  • The signature offind_distributions() on custom installer findersshould now accept two parameters,name andpath andthese parameters must supply defaults.

  • Theentry_points() method no longer accepts a package namebut instead returns all entry points in a dictionary keyed by theEntryPoint.group. Theresolve method has been removed. Instead,callEntryPoint.load(), which has the same semantics aspkg_resources andentrypoints.This is a backward incompatiblechange.

  • Metadata is now always returned as Unicode text regardless ofPython version. Closes#29.

  • This library can now discover metadata for a ‘local’ package (foundin the current-working directory). Closes#27.

  • Addedfiles() function for resolving files from a distribution.

  • Added a newrequires() function, which returns the requirementsfor a package suitable for parsing bypackaging.requirements.Requirement. Closes#18.

  • The top-levelread_text() function has been removed. UsePackagePath.read_text() on instances returned by thefiles()function.This is a backward incompatible change.

  • Release dates are now automatically injected into the changelogbased on SCM tags.

0.7

27 Nov 2018

  • Fixed issue where packages with dashes in their names wouldnot be discovered. Closes#21.

  • Distribution lookup is now case-insensitive. Closes#20.

  • Wheel distributions can no longer be discovered by their modulename. Like Path distributions, they must be indicated by theirdistribution package name.

0.6

07 Oct 2018

  • Removedimportlib_metadata.distribution function. Nowthe public interface is primarily the utility functions exposedinimportlib_metadata.__all__. Closes#14.

  • Added two new utility functionsread_text andmetadata.

0.5

18 Sep 2018

  • Updated README and removed details about Distributionclass, now considered private. Closes#15.

  • Added test suite support for Python 3.4+.

  • Fixed SyntaxErrors on Python 3.4 and 3.5. !12

  • Fixed errors on Windows joining Path elements. !15

0.4

14 Sep 2018

  • Housekeeping.

0.3

14 Sep 2018

  • Added usage documentation. Closes#8

  • Add support for getting metadata from wheels onsys.path. Closes#9

0.2

11 Sep 2018

  • Addedimportlib_metadata.entry_points(). Closes#1

  • Addedimportlib_metadata.resolve(). Closes#12

  • Add support for Python 2.7. Closes#4

0.1

09 Sep 2018

  • Initial release.

On this page

[8]ページ先頭

©2009-2025 Movatter.jp