Skip to main content

pkginfo README

This package provides an API for querying the distutils metadata written in the PKG-INFO file inside a source distribution (an sdist) or a binary distribution (e.g., created by running bdist_egg). It can also query the EGG-INFO directory of an installed distribution, and the *.egg-info stored in a “development checkout” (e.g, created by running setup.py develop).

Please see the pkginfo docs for detailed documentation.

pkginfo Changelog

1.13.2 (2026-10-16)

  • Add Wheel support for exposing the PEP 427 tags encoded in the wheel filename (python_tag, abi_tag, platform_tag, build_tag), along with the Root-Is-Purelib setting read from the archive’s WHEEL file (purelib): the closest available signal for whether a wheel contains native code. LP #2015657. GH #11

  • Anchor candidate matching for installed distribution metadata at the <name>-<version> boundary, such that a package whose name is a strict prefix of another installed package’s name no longer has its metadata masked by that other package (e.g. ‘pyramid’ vs. ‘pyramid_chameleon’). LP #1974172. GH #9

  • Test installed distributions against the metadata version recorded in their own PKG-INFO / METADATA files, rather than against hardcoded literals which drift with the packaging toolchain. LP #2103804. GH #10

1.13.1 (2026-10-16)

  • Test Installed distributions against the fixture’s own PKG-INFO, rather than against the version of the installed pkginfo package; Develop tests now check the live project metadata against the installed package’s recorded version. Fixes failures of the released sdist’s test suite under other versions (namespaced.dodgy egg-info carries a snapshot stamped during development). GH #1

1.13.0 (2026-08-29)

  • Support ‘metadata_version’ == ‘2.5’ (PEP 794). LP #2165813

  • Add support for Python 3.14.

  • Drop support for Python 3.9.

  • Drop support for Python 3.8.

1.12.1.1 (2025-02-18)

  • Fix packaging error which prevents running tests from the released sdist.

1.12.1 (2025-02-18)

  • Disuse the metadata of the installed ‘pkginfo’ package for testing: during creation of the various ‘tox’ environments, different versions of ‘setuptools’ will overwrite that file with different metadata (version, ‘Dynamic’ headers, etc). LP #2098742

1.12.0 (2024-12-02)

  • Declare content type of long description explicitly as ‘text/x-rst’.

  • Support ‘metadata_version’ == ‘2.4’ (PEP 639).

1.11.3 (2024-12-02)

  • Add dependency ordering of tox environments FBO running tests in parallel.

  • Fix tests broken by bump of ‘metadata_version’ in ‘wheels’ >= ‘0.44.0’. LP #2090840.

1.11.2 (2024-10-10)

  • Swap order of zip/tarball checks to work around archives which fool ‘zipfile.is_zipfile’. LP #2084140.

1.11.1 (2024-06-08)

  • Update typing stubs, adding additional checks to ‘tox -e mypy’ to verify that they don’t drift in the future. LP #2068777.

1.11.0 (2024-05-31)

  • Add support for Python 3.13.

  • Drop support for Python 3.7.

  • Emit warnings for distributions parsed with unknown metadata versions, or metadata versions newer than highest supported version. LP #2058697.

  • Improve exception message when failing to find a valid ‘PKG-INFO’ file within an ‘sdist’ archive. LP #2064652.

1.10.0 (2024-03-03)

  • Add support for Python 3.11 and 3.12.

  • Drop support for Python 3.6.

  • Declare explicit testing dependency on ‘wheel’.

  • Add support for Metadata 2.3.

1.9.6 (2023-01-08)

  • Fix various typos in docs / docstrings. LP #2002232.

1.9.5 (2023-01-06)

  • Add stricter typing checks, matching those used in ‘twine’.

  • Fix typing errors / gaps reported from ‘twine’ CI failure. LP #2002104.

1.9.4 (2023-01-05)

  • Fix packaging of stub file for Python typing support.

1.9.3 (2023-01-03)

  • Added stub files for Python typing support; verify using ‘mypy’. LP #1876591.

1.9.2 (2022-11-29)

  • Drop “universal” wheel support (should be redundant with ‘python_requires >= 3.6’, but just in case). LP #1998258.

1.9.1 (2022-11-29)

  • Restore a deprecated alias for the ‘_must_decode’ helper function, moved from ‘pkginfo._compat.must_decode’ to ‘pkginfo.distribution._must_decode’ in 1.90.

  • Repair unit tests broken by dropping Python 2.7 classifier.

1.9.0 (2022-11-29)

  • Drop support for Python 2.7.

  • Switch to use ‘pytest’ vs. ‘nose’, which doesn’t support Python > 3.9.

1.8.3 (2022-06-08)

  • Specify supported Python versions in ‘setup.py’ using ‘python_requires’. LP #1977981.

1.8.2 (2021-12-01)

  • Add fix for installed distributions with ‘__package__’ set to an empty string. LP #1952946.

1.8.1 (2021-11-19)

  • Add ‘MANIFEST.in’ to ensure example files used by tests are included in source distributions. LP #1951553.

1.8.0 (2021-11-18)

  • Support new standard metadata location for installed dists. LP #1865286.

  • Don’t overwrite header-based ‘description’ with empty payload. LP #1885458.

  • Add support for Metadata-Version 2.2. LP #1928729.

  • Add support for uncompressed tarballs for sdists. LP #1951457.

  • Add support for Python 3.10.

1.7.1 (2021-07-09)

  • Use Python3 to build docs, and fix doctest examples to use Python3- compatible syntax. LP #1933322.

1.7.0 (2021-01-16)

  • Add support for Python 3.9.

  • Drop support for Python 3.5.

1.6.1 (2020-10-26)

  • Adjust test classifiers to match supported Python versions. LP #1901127.

1.6.0 (2020-10-20)

  • Add support for Python 3.8. LP #1869854.

  • Drop support for Python 3.4.

  • Update tests to match setuptools’ change, no longer reporting metadata version for installed packages w/o explicit metadata. LP #1870197.

1.5.0.1 (2019-01-08)

  • Fix broken ‘sdist’. LP #1639585.

1.5.0 (2019-01-07)

  • Fix ‘console_scripts’ entry point syntax. LP #1810734.

  • Add support for JSON output from the CLI. LP #1700580.

  • Add support for installed wheels. E.g., ‘dist-info/’ dirs. LP #1700200.

  • Harden metadata extraction against unexpected encodings. LP #1780454.

  • Update tests to match pip/setuptools’ use of new metadata version. LP #1772274.

  • Add support for Python 3.6 and 3.7.

  • Drop support for Python 3.3.

1.4.2 (2018-03-14)

  • Use relative imports in pkginfo modules. Supports vendoring of the package into setuptools.

  • Add support for Provides-Extra and Description-Content-Type fields. Per https://packaging.python.org/specifications/. See: PEP 566.

  • Remove support for old setuptools leaving PKG-INFO in the root of the project directory.

1.4.1 (2016-11-07)

  • Packaging only change (invalid sdist built for 1.4.0).

1.4.0 (2016-11-04)

  • Relicense under MIT license: the PSF license is not suitable for third-party libraries.

1.3.2 (2016-05-24)

  • Packaging-only change (automate fix for wheel built for 1.3.1).

1.3.1 (2016-05-24)

  • Packaging-only change (invalid wheel built for 1.3.0).

1.3.0 (2016-05-23)

  • Update homepage URL to point to Launchpad, rather than PyPI.

  • Add support for building wheels.

  • Add support for Python 3.5.

  • Drop support for Python 2.6 and 3.2.

1.2.1 (2014-01-02)

  • Add overlooked Trove classifier for Python 3.4.

1.2 (2014-01-02)

  • Add support for Python 3.4, PyPy3.

  • Add 100% coverage for pkginfo.commandline module.

1.2b1 (2013-12-05)

  • Add support for the “wheel” distribution format, along with minimal metadata 2.0 support (not including new PEP 426 JSON properties). Code (re-)borrowed from Donald Stuft’s twine package.

1.1 (2013-10-09)

  • Fix tests to pass with current PyPy releases.

1.1b1 (2013-05-05)

1.0 (2013-05-05)

  • No changes from 1.0b2.

1.0b2 (2012-12-28)

  • Suppress resource warning leaks reported against clients.

  • Fix ‘commandline’ module under Py3k.

1.0b1 (2012-12-28)

  • Add support for Python 3.2 and 3.3, including testing them under tox.

  • Add support for PyPy, including testing it under tox.

  • Test supported Python versions under tox.

  • Drop support for Python 2.5.

  • Add a setup.py dev alias: runs setup.py develop and installs testing extras (nose and coverage).

0.9.1 (2012-10-22)

  • Fix test failure under Python >= 2.7, which is enforcing ‘metadata_version == 1.1’ because we have classifiers.

0.9 (2012-04-25)

0.8 (2011-03-12)

0.7 (2010-11-04)

  • Preserve newlines in the description field. Thanks to Sridhar Ratnakumar for the patch.

  • 100% test coverage.

0.6 (2010-06-01)

  • Replace use of StringIO.StringIO with io.StringIO, where available (Python >= 2.6).

  • Replace use of rfc822 stdlib module with email.parser, when available (Python >= 2.5). Ensured that distributions “unfold” wrapped continuation lines, stripping any leading / trailing whitespace, no matter which module was used for parsing.

  • Remove bogus testing dependency on zope.testing.

  • Add tests that the “environment markers” spelled out in the approved PEP 345 are captured.

  • Add Project-URL for 1.2 PKG-INFO metadata (defined in the accepted version of PEP 345).

0.5 (2009-09-11)

  • Marked package as non-zip-safe.

  • Fix Trove metadata misspelling.

  • Restore compatibility with Python 2.4.

  • Note that the introspection of installed packages / modules works only in Python 2.6 or later.

  • Add Index class as an abstraction over a collection of distributions.

  • Add download_url_prefix argument to pkginfo script. If passed, the script will use the prefix to synthesize a download_url for distributions which do not supply that value directly.

0.4.1 (2009-05-07)

  • Fix bugs in handling of installed packages which lack __file__ or PKG-INFO.

0.4 (2009-05-07)

  • Extend the console script to allow output as CSV or INI. Also, added arguments to specify the metadata version and other parsing / output policies.

  • Add support for the different metadata versions specified in PEPs 241, 314, and 345. Distributions now parse and expose only the attributes corresponding to their metadata version, which defaults to the version parsed from the PKG-INFO file. The programmer can override that version when creating the distribution object.

0.3 (2009-05-07)

  • Add support for introspection of “development eggs” (checkouts with PKG-INFO, perhaps created via setup.py develop).

  • Add a console script, pkginfo, which takes one or more paths on the command line and writes out the associated information. Thanks to runeh for the patch!

  • Add get_metadata helper function, which dispatches a given path or module across the available distribution types, and returns a distribution object. Thanks to runeh for the patch!

  • Make distribution objects support iteration over the metadata fields. Thanks to runeh for the patch!

  • Make Distribution and subclasses new-style classes. Thanks to runeh for the patch!

0.2 (2009-04-14)

  • Add support for introspection of bdist_egg binary distributions.

0.1.1 (2009-04-10)

  • Fix packaging errors.

0.1 (2009-04-10)

  • Initial release.

Metadata

Release files for pkginfo 1.13.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pkginfo 1.13.2
File Size Uploaded
pkginfo-1.13.2.tar.gz 456.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pkginfo 1.13.2
File Interpreter ABI Platform
pkginfo-1.13.2-py3-none-any.whl Python 3 none any Details

Total release size: 491.8 kB

Release files / pkginfo-1.13.2.tar.gz

Download URL pkginfo-1.13.2.tar.gz
Size 456.2 kB
Tags Source
SHA-256 checksum
How to use checksums
3873e769a3e15b82d1ead03be73c2030a53533ecda42765095541ba8af988dcd
BLAKE2b-256 checksum
How to use checksums
346f06d26f2cf0c466fecf1bb4c393371469a9372f11260e8631afe3034c5d9b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.4

Release files / pkginfo-1.13.2-py3-none-any.whl

Download URL pkginfo-1.13.2-py3-none-any.whl
Size 35.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f61e2ba606dbfd79f5e5870157da5196bb1596f74e6b19efa40c6d88d904d40c
BLAKE2b-256 checksum
How to use checksums
891e9b51798addc534d5eaa13477039eb5abeb0143e14eb853b7176321dbfc27
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.4

Release history Release notifications | RSS feed

1.13.3

2 release files

This release

1.13.2 This release

2 release files

1.13.1

2 release files

1.13

2 release files

1.12.1

2 release files

1.11.2

2 release files

1.11.0

2 release files

1.9.6

2 release files

1.9.5

2 release files

1.9.4

2 release files

1.9.3

2 release files

1.9.2

2 release files

1.9.1

2 release files

1.9.0

2 release files

1.8.3

2 release files

1.8.2

2 release files

1.8.1

2 release files

1.8.0

2 release files

1.7.1

2 release files

1.7.0

2 release files

1.6.1

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.2

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

1 release file

1.2.1

1 release file

1.2

1 release file

1.1

1 release file

1.0

1 release file

0.9.1

1 release file

0.9

1 release file

0.8

1 release file

0.7

1 release file

0.6

1 release file

0.5

1 release file

0.4.1

1 release file

0.4

1 release file

0.3

1 release file

0.2

1 release file

0.1.1

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page