PEP 621 metadata parsing
Reason this release was yanked:
https://github.com/pypa/pyproject-metadata/issues/149#issuecomment-2348933752
Project description
pyproject-metadata
Dataclass for PEP 621 metadata with support for core metadata generation
This project does not implement the parsing of pyproject.toml
containing PEP 621 metadata.
Instead, given a Python data structure representing PEP 621 metadata (already
parsed), it will validate this input and generate a PEP 643-compliant metadata
file (e.g. PKG-INFO
).
Usage
After installing pyproject-metadata
,
you can use it as a library in your scripts and programs:
from pyproject_metadata import StandardMetadata
parsed_pyproject = { ... } # you can use parsers like `tomli` to obtain this dict
metadata = StandardMetadata.from_pyproject(parsed_pyproject, allow_extra_keys = False)
print(metadata.entrypoints) # same fields as defined in PEP 621
pkg_info = metadata.as_rfc822()
print(bytes(pkg_info).decode("utf-8")) # core metadata
METADATA 2.4
If project.license
is a string or project.license-files
is present, then
METADATA 2.4+ will be used. A user is expected to validate and normalize
metadata.license
with an SPDX validation tool, such as the one being added to
packaging
. Add something like this:
if isinstance(metadata.license, str):
metadata.license = packaging.licenses.normalize_license_expression(metadata.license)
A backend is also expected to copy entries from project.licence_files
, which
are paths relative to the project directory, into the dist-info/licenses
folder, preserving the original source structure.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pyproject_metadata-0.9.0b1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 126614f9ebd38a0cfcd311928e3e6f62be21eb55c70e86cce3b83ea5adc5bf57 |
|
MD5 | 8562daa4761db4dfee68a27f39e99316 |
|
BLAKE2b-256 | 8c38c955e727ab79958f547fece9e080c1a529423b51c39b93416b6b19c99408 |
Hashes for pyproject_metadata-0.9.0b1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a362355eaf190e279c6f917dca09acb30f4b73059e2f65fbde47f406fdf65f13 |
|
MD5 | 127846675d0f7edc32fcb5cf41eaa697 |
|
BLAKE2b-256 | 5817e797dc5dc680735d6f5172bfa7d2118f926f54b166f34a036bb0fcb85288 |