pyproject-metadata

PEP 621 metadata parsing.

API Reference

class pyproject_metadata.StandardMetadata(name, version=None, description=None, license=None, readme=None, requires_python=None, dependencies=<factory>, optional_dependencies=<factory>, entrypoints=<factory>, authors=<factory>, maintainers=<factory>, urls=<factory>, classifiers=<factory>, keywords=<factory>, scripts=<factory>, gui_scripts=<factory>, dynamic=<factory>)[source]
as_rfc822()[source]
Return type

RFC822Message

authors: list[tuple[str, str]]
classifiers: list[str]
dependencies: list[packaging.requirements.Requirement]
description: str | None = None
dynamic: list[str]
entrypoints: dict[str, dict[str, str]]
classmethod from_pyproject(data, project_dir='.')[source]
gui_scripts: dict[str, str]
keywords: list[str]
license: License | None = None
maintainers: list[tuple[str, str]]
name: str
optional_dependencies: dict[str, list[packaging.requirements.Requirement]]
readme: Readme | None = None
requires_python: packaging.specifiers.SpecifierSet | None = None
scripts: dict[str, str]
urls: dict[str, str]
version: packaging.version.Version | None = None
write_to_rfc822(message)[source]
Return type

None

class pyproject_metadata.ConfigurationError(msg, *, key=None)[source]

Error in the backend metadata.

property key
class pyproject_metadata.License(text, file)[source]

Create new instance of License(text, file)

file: pathlib.Path | None

Alias for field number 1

text: str

Alias for field number 0

class pyproject_metadata.Readme(text, file, content_type)[source]

Create new instance of Readme(text, file, content_type)

content_type: str

Alias for field number 2

file: pathlib.Path | None

Alias for field number 1

text: str

Alias for field number 0

class pyproject_metadata.RFC822Message[source]

Python-flavored RFC 822 message implementation.

class pyproject_metadata.DataFetcher(data)[source]
get(key)[source]
Return type

Any

get_dict(key)[source]
get_list(key)[source]
get_people(key)[source]
get_str(key)[source]