Pyprojecttoml

The following metadata fields can be extracted from a pyproject.toml file.
These fields are defined in the pyproject.toml specification, and are mapped according to the CodeMeta crosswalk for python.

Software metadata category SOMEF metadata JSON path PYPROJECT.TOML metadata file field
authors - value authors[i].result.value authors.name
authors - email authors[i].result.email authors.email
authors - name authors[i].result.name authors.name
authors - url authors[i].result.url authors.url
code_repository code_repository[i].result.value project.urls.repository or tool.poetry.repository
description description[i].result.value project.description or tool.poetry.description
documentation documentation[i].result.value project.urls.documentation or tool.poetry.documentation
download_url download_url[i].result.value project.urls.download or tool.poetry.download
license - value license[i].result.value license.file or license.type or license
license - name license[i].result.name license.name (1)
license - spdx id license[i].result.spdx_id license.identifier if "spdx.org/licenses/ (1)
has_package_file has_package_file[i].result.value URL of the pyproject.toml file
homepage homepage[i].result.value project.homepage or tool.poetry.homepage
issue_tracker issue_tracker[i].result.value projects.urls.issue or tool.poetry.issue
keywords keywords[i].result.value keywords
package_id package_id[i].result.value project.name or tool.poetry.name
readme_url readme_url[i].result.value projects.urls.readme or tool.poetry.readme
related_documentation download_url[i].result.value projects.urls or tool.poetry
requirements - value requirements[i].result.value dependencies(name=version) or build-system.requires[i] (2)
requirements - name requirements[i].result.name dependencies(name=version) -> dependencies.name or build-system.requires[i] parsing -> name (2)
requirements - version requirements[i].result.version dependenciesi -> dependencies.version or build-system.requires[i] parsing -> version (2)
runtime_platform - value runtime_platform[i].result.value depeendencies or requires-python -> version (3)
runtime_platform - name runtime_platform[i].result.name depeendencies or requires-python -> name (3)
version - value version[i].result.value project.version or tool.poetry.version
version - tag version[i].result.tag project.version or tool.poetry.version

(1)
- Look for the name and spdx_id in a local dictionary with all licenses

(2)
- Examples: allows formats

dependencies = [
    "astropy",
    "ctapipe",
    "ctaplot",
    "dl1_data_handler",
    "h5py",
........

[tool.poetry.dependencies]
    python = ">=3.9,<=3.13"
    bs4 = "^0.0.1"
........

[build-system]
    requires = ["poetry-core>=1.1.10"]
  • If it is possible we obtain name and version 'value' : 'python>=3.9,<=3.13' 'name' : 'python'
    'version' : '>=3.9,<=3.13'

(3) - Always "Python" and version if exists. - Examenple:

requires-python = ">=3.11"

or

[tool.poetry.dependencies]
    python = ">=3.9,<=3.13"

or

[dependencies]
    python = ">=3.9,<=3.13"