Skip to main content

rs-files-templates

This Python package generates standard research-software project files from typed Pydantic models and Jinja templates.

The documentation is available at lumc-dcc.github.io/rs-files-templates.

Included generators:

  • README.md
  • independent overview.md, usage.md, deployment.md, developer.md, reference.md, and legal.md documentation pages
  • CITATION.cff
  • codemeta.json
  • biotools.json
  • .zenodo.json
  • LICENSE
  • CHANGELOG.md
  • CODE_OF_CONDUCT.md
  • CONTRIBUTING.md
  • GOVERNANCE.md
  • SECURITY.md
  • SUPPORT.md
  • .github/pull_request_template.md
  • .github/ISSUE_TEMPLATE.zip (config, bug report, and feature request, bundled as one download)

Quick start

pip install rs-files-templates

Python 3.14 is required.

Example usage

from rs_files_templates import CitationModel, Contributor

citation = CitationModel(
    project_name="Example project",
    project_slug="example-project",
    versioning={"version": "1.0.0"},
    urls={"repository": "https://github.com/example/project"},
    contributors={
        "entries": [
            Contributor(
                name="Ada Lovelace",
                given_names="Ada",
                family_names="Lovelace",
                roles=["Original author"],
            )
        ]
    },
)

citation.render(".", validate_schema=True)

README content uses the same RSM contract. Installation, usage, citation, support, licensing, and development guidance are resolved from metadata in the model itself:

from rs_files_templates import ReadmeModel, render_readme

readme = ReadmeModel(
    project_name="Example project",
    project_slug="example-project",
    project_short_description="Analyze research data reproducibly.",
    audiences={"entries": ["Researcher"]},
    topics={"entries": [{"term": "Data analysis"}]},
    project_manager="uv",
    software_functions={"entries": [{"cmd": "example-project --help"}]},
)
render_readme(readme, ".")

Top-level EDAM topics are rendered as project research domains and mapped to CodeMeta applicationSubCategory. BiotoolsModel maps the same topics and the declared software functions to bio.tools registry metadata.

The package maps supported project managers, quality tools, and test frameworks to metadata-derived commands. Each documentation model renders one Markdown file. Repository generators supply documentation-builder configuration.

Each generated file has a model composed only of fields from rsm-schema, version 1.0.0.

Development

poetry install --with dev,docs
poetry run pre-commit install
poetry run pre-commit run --all-files
poetry run pytest -m "not network"
poetry run sphinx-build -W -b html docs docs/_build/html

License

This project is licensed under Apache 2.0. See the LICENSE file for details.

Metadata

Release files for rs-files-templates 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rs-files-templates 1.0.0
File Size Uploaded
rs_files_templates-1.0.0.tar.gz 43.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for rs-files-templates 1.0.0
File Interpreter ABI Platform
rs_files_templates-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 106.9 kB

Release files / rs_files_templates-1.0.0.tar.gz

Download URL rs_files_templates-1.0.0.tar.gz
Size 43.1 kB
Tags Source
SHA-256 checksum
How to use checksums
d9464a0b76514bb54cdabe9eb16f17aee1cdbbf711b5a57dd1f9c0e2a256afa6
BLAKE2b-256 checksum
How to use checksums
e1e12e30e4bdc3d1d620a4cce89279bce9796f894e2b8fe514ebcfa5c8a7aaae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / rs_files_templates-1.0.0-py3-none-any.whl

Download URL rs_files_templates-1.0.0-py3-none-any.whl
Size 63.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9112a49635d02398137cd2ee469b498da7b7bce327811ba9da760a9e809309f5
BLAKE2b-256 checksum
How to use checksums
c09ce8deb20a506288c0ec9ab38a1b810e6ef00aebac90a96dc5750f6b4c14e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page