distinfo
is a tool for extracting metadata, including full dependencies, from
Python source distributions.
Dump json metadata to stdout:
$ distinfo /path/to/package/source
Print requirements and metadata:
>>> from distinfo import Distribution, dump
>>>
>>> dist = Distribution("/path/to/package/source")
>>> dump(dist.requires)
{
"build": [
"setuptools-scm"
],
"dev": [
"pycmd",
],
"run": [
"click",
"requests",
],
"test": [
"pytest",
]
}
>>> dump(dist.metadata)
{
"author": "A N Other",
"author_email": "a@example.org",
"extensions": {
"distinfo": {
"imports": {
"distinfo": [
"click",
"requests"
],
"tests": [
"pytest",
]
},
"tests": [
"tests",
],
}
},
"license": "GPL-3.0-or-later",
"metadata_version": "2.1",
"name": "example",
"provides_extra": [
"build",
"dev",
"test"
],
"requires_dist": [
"click",
"pycmd; extra == 'dev'",
"pytest; extra == 'test'",
"requests"
"setuptools-scm; extra == 'build'",
],
"summary": "Example package",
"version": "0.0.0"
}
https://packaging.python.org/specifications/
- PEP 241 - Metadata for Python Software Packages 1.0
- PEP 314 - Metadata for Python Software Packages 1.1
- PEP 345 - Metadata for Python Software Packages 1.2
- PEP 426 - Metadata for Python Software Packages 2.0
- PEP 566 - Metadata for Python Software Packages 2.1
- PEP 459 -- Standard Metadata Extensions for Python Software Packages