Skip to main content

Generates metadata in the Citation File Format for Python projects from their PEP-621 compliant package definition. Includes a CLI.

Project description

cff-from-621

This tool derives a CITATION.cff file from a Python project's pyproject.toml contents that provide PEP-621 compliant package metadata.

Features

  • Additional and overriding values can be provided statically or via Python string templates.
  • Order of the resulting fields can be defined, has a non-arbitrary default.
  • Dynamic fields are resolved for the setuptools build backend.

Example

Given a pyproject.toml that includes these contents:

[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"

[project]
name = "cff-from-621"
description = "Generates metadata in the Citation File Format for Python projects from their PEP-621 compliant package definition. Includes a CLI."
keywords = ["PEP-621", "CFF", "conversion"]
authors = [
    {name = "Frank Sachsenheim"}
]
dynamic = ["version"]

[tool.cff-from-621]
order = ["message", "cff-version", "title", "abstract", "version", "date-released", "authors", "keywords"]

[tool.cff-from-621.static]
date-released = "2022-09-18"
message = "🔥🌍🔥"

[tool.setuptools.dynamic]
version = {attr = "cff_from_621.version.VERSION"}

cff-from-621 would derive this CITATION.cff:

---
message: 🔥🌍🔥
cff-version: 1.2.0
title: cff-from-621
abstract: Generates metadata in the Citation File Format for Python projects from
  their PEP-621 compliant package definition. Includes a CLI.
version: 0.0.1
date-released: '2022-09-18'
authors:
- name: Frank Sachsenheim
keywords:
- PEP-621
- CFF
- conversion
type: software
...

Installation

Add cff-from-621 with your environment management or install it globally with pipx:

$ pipx install cff-from-621

Usage

Change into your project's root folder and jump right in with:

$ cff-from-621

The usage details can be explored with:

$ cff-from-621 --help

Caveats

  1. Authors / maintainers are represented as entity type because their PEP-621 representation can't be parsed into the atomicity of the person type.

Development

This tool isn't supposed to cover each and every corner case that may exist. Its implementation shall be kept simple and may be used as library for custom extensions and alterations. All contributions within that frame are welcome.

In a virtual environment that you set up for development, install this package from source in editable mode and required development tools:

$ pip install .[development]

Make use of or refer to the accompanying justfile to run common development tasks.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cff_from_621-0.1.tar.gz (6.3 kB view details)

Uploaded Source

Built Distribution

cff_from_621-0.1-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

Details for the file cff_from_621-0.1.tar.gz.

File metadata

  • Download URL: cff_from_621-0.1.tar.gz
  • Upload date:
  • Size: 6.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for cff_from_621-0.1.tar.gz
Algorithm Hash digest
SHA256 f3de79f3ccd18ee16822e2117b2349c5269078efab2b7eb21e25e2bce3618009
MD5 17ac8cc53eafca93908b1f23e39032e6
BLAKE2b-256 838a1ff3e53d3b3495dabf9aa1d378b90ee563cd3244bd16f128eb189b5337b5

See more details on using hashes here.

File details

Details for the file cff_from_621-0.1-py3-none-any.whl.

File metadata

  • Download URL: cff_from_621-0.1-py3-none-any.whl
  • Upload date:
  • Size: 6.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for cff_from_621-0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 902ead16342ac6dffe615e2682c9c163295f09a0f1a6c9963c4635b29ede5a36
MD5 68e8b9b1044e3f6e06ec1047a09059f4
BLAKE2b-256 43df5b511f2b7efe579d6313cb33135a88d1fd494a9740b0206d5945e3792df5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page