Switchbox Copier Template¶
This is a modern copier template you can use to create python and R data science projects, using modern tools, including devcontainers.
It supports the following features:
Python data science¶
- PyData packages: polars, seaborn
- Quarto notebooks
- uv for dependency management
- ruff for code linting and formatting
- ty for type checking
R data science¶
- Tidyverse packages: dplyr, ggplot2, etc.
- Quarto notebooks
- pak for dependency management
- air for code formatting
- radian for R console
- Fast install of binary packages via P3M
Python packages¶
- Modern python tooling: uv, ruff, ty, pytest, tox
- hatchling for package building
- twine for package publishing
- MkDocs documentation with Material theme
All projects¶
- just for task automation and project management
- devcontainers for consistent development environments in VSCode, Cursor, Positron, and other IDEs
- prek for fast pre-commit hooks that automate code quality checks
- AWS integration (Optional): (aws cli, boto3 for Python)
- GitHub Actions Workflows (Optional): to run code quality checks and tests via CI/CD
Quickstart¶
First, make sure you have copier installed. We recommend doing this with uv or pipx:
uv tool install copier # or: pipx install copier
On your local machine, navigate to the directory in which you want to create your project, and run the following command:
copier copy https://github.com/switchbox-data/switchbox-copier-template <my-project>
Where <my-project>
is the name you want to give your project. This will be used as the directory name, and as the name of your repo if you use GitHub.
Follow the prompts to configure your project. Once completed, a new directory containing your project will be created. Then navigate into your newly created project directory and follow the instructions in the README.md
to complete the setup of your project.
Acknowledgements¶
This project is inspired by the cookiecutter-uv package.