PEP 621 metadata parsing
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.0b2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8309cb544ab16a9209a605a7c1f732c32dbbb1c54ae0a5dbde1f0c763d6f6b86 |
|
MD5 | ed56ab72a79c724c8740c02887f70a19 |
|
BLAKE2b-256 | 7ff981752a856f2e4f6a5af9a50b971b3548419068c468888054c5fb8dd7780b |
Hashes for pyproject_metadata-0.9.0b2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5a8d9be85e2ae9c972f84681bf802ec702e00be60af332db9b5756e1e9399d18 |
|
MD5 | a26c7679bd1ea770fa766648c3658881 |
|
BLAKE2b-256 | be2f0a085cecfd2d9f497fff8c3f18b84794215611271e15f2028325e5580aeb |