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(str(pkg_info))) # 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.0b3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | cbf8b262a5d6dab4589c90d478b4d89ba5ecb484966910cd5cf8a72a18650017 |
|
MD5 | 6875b068e62d9681ed0bc864acd4c1d0 |
|
BLAKE2b-256 | dab4ba6c92112f6b2be4b900f0620b7abf23b57ce075569556893b2da7f8b572 |
Hashes for pyproject_metadata-0.9.0b3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b4a93c2a3893233067ddc7478ec57f751608814a96ed5894364a4290c2e9397 |
|
MD5 | 3a4b2b760662dd562e39604a97189e3b |
|
BLAKE2b-256 | dd5c4438431857c8f3663e52f70a0576212fe04bc9fe71c8ea7544425fbef98d |