template-uv-python-research-software

A template for Pythonic research software with environment management through uv.

https://github.com/cu-dbmi/template-uv-python-research-software

Science Score: 75.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Academic email domains
  • Institutional organization owner
    Organization cu-dbmi has institutional domain (medschool.cuanschutz.edu)
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (17.0%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

A template for Pythonic research software with environment management through uv.

Basic Info
  • Host: GitHub
  • Owner: CU-DBMI
  • License: bsd-3-clause
  • Language: Jinja
  • Default Branch: main
  • Homepage:
  • Size: 144 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 1
  • Open Issues: 0
  • Releases: 3
Created 9 months ago · Last pushed 7 months ago
Metadata Files
Readme Contributing License Code of conduct Citation

README.md

template-uv-python-research-software

Copier Ruff uv Software DOI badge

This is a copier template for building Python research software through the uv environment manager.

Using this template

Follow these steps to use this template:

  1. Install copier (e.g. pip install copier).
  2. Reference this repository through the copier copy <source> <target> command. (e.g. copier copy https://github.com/cu-dbmi/template-uv-python-research-software destination_path)
  3. Follow the directions in your new repo's README.md and make sure to check each file for alignment with your project.
  4. Enjoy!

What's included in the template

  • Pre-configured pyproject.toml for Python project management
  • Support for the uv environment manager
  • Example source code and test structure
  • Example docs structure with the option to publish to GitHub Pages
  • Ready-to-use GitHub Actions CI workflow (including tests, docs, and deployment)
  • Community health files like LICENSE, CODEOFCONDUCT, and CONTRIBUTING with boilerplate language
  • Support for Jupyter notebook development alongside a local Python package
  • .pre-commit-config.yaml which can help with pre-commit checks for your project
  • Adds a CLI boilerplate to build from based on fire.

Post-copy guidance

Please reference the README.md checklist for suggested next steps after copying the template. When using the Jupyter notebook work, consider using uv run jupyter lab (or similar) to run notebooks which are invoked from the context of the virtual environment of the project. This helps the notebook gain dependencies and access to the packaged work outside the notebooks directory.

Development

This project is a Copier template repository, designed to scaffold new projects using customizable templates. The templates leverage Jinja for flexible variable substitution and logic within template files.

To ensure the template remains functional and testable, pytest is used. Tests are provided to verify that the template can be rendered and instantiated correctly, helping to catch issues early in the development process.

For example, use the following to test the work:

bash uv run pytest

Owner

  • Name: University of Colorado Department of Biomedical Informatics
  • Login: CU-DBMI
  • Kind: organization
  • Location: University of Colorado, School of Medicine, Anschutz Medical Campus

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
---
cff-version: 1.2.0
title: template-uv-python-research-software
message: >-
  If you use this software, please cite it using the
  metadata from the CITATION.cff file.
type: software
authors:
  - given-names: David
    family-names: Bunten
    orcid: "https://orcid.org/0000-0001-6041-3665"
repository-code: "https://github.com/CU-DBMI/template-uv-python-research-software"
abstract: >-
  A template for Pythonic research software with environment management through uv.
keywords:
  - python
  - uv
  - research-software
  - template
license: BSD-3-Clause
identifiers:
  - type: doi
    value: "10.5281/zenodo.15518401"

GitHub Events

Total
  • Release event: 1
  • Delete event: 1
  • Push event: 5
  • Pull request review event: 1
  • Pull request event: 6
  • Fork event: 1
  • Create event: 1
Last Year
  • Release event: 1
  • Delete event: 1
  • Push event: 5
  • Pull request review event: 1
  • Pull request event: 6
  • Fork event: 1
  • Create event: 1

Dependencies

.github/workflows/draft-release.yml.jinja actions
.github/workflows/publish-docs.yml.jinja actions
.github/workflows/publish-pypi.yml.jinja actions
.github/workflows/run-tests.yml.jinja actions
.github/workflows/test-template.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v5 composite
  • astral-sh/setup-uv v6 composite
  • pre-commit-ci/lite-action v1.1.0 composite
  • pre-commit/action v3.0.1 composite
  • pyvista/setup-headless-display-action v4 composite
pyproject.toml pypi
  • copier >=9.7.1
uv.lock pypi
  • annotated-types 0.7.0
  • colorama 0.4.6
  • copier 9.7.1
  • dunamai 1.24.1
  • funcy 2.0
  • iniconfig 2.1.0
  • jinja2 3.1.6
  • jinja2-ansible-filters 1.3.2
  • markupsafe 3.0.2
  • packaging 25.0
  • pathspec 0.12.1
  • platformdirs 4.3.8
  • pluggy 1.6.0
  • plumbum 1.9.0
  • prompt-toolkit 3.0.51
  • pydantic 2.11.5
  • pydantic-core 2.33.2
  • pygments 2.19.1
  • pytest 8.3.5
  • pywin32 310
  • pyyaml 6.0.2
  • questionary 2.1.0
  • template-uv-python-research-software 0.0.1
  • typing-extensions 4.13.2
  • typing-inspection 0.4.1
  • wcwidth 0.2.13