This is a copier
template for building Python research software through the uv
environment manager.
Follow these steps to use this template:
- Install
copier
(e.g.pip install copier
). - 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
) - Follow the directions in your new repo's
README.md
and make sure to check each file for alignment with your project. - Enjoy!
- 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, CODE_OF_CONDUCT, 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
.
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.
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:
uv run pytest