Skip to content

matrig/cookiecutter-uv-lite

Repository files navigation

cookiecutter-uv-lite


Build status Supported Python versions Docs

A lightweight, modern Python project template for packages, CLIs, and notebooks — powered by uv.

Choose your project type:

  • 📦 Package: Python libraries and packages
  • 🚀 CLI: Command-line applications with Typer and Rich
  • 📊 Notebooks: Data science projects with JupyterLab, pandas, and visualization tools

Features:

  • uv for dependency management
  • Code quality with ruff, mypy, deptry and prettier
  • Testing with pytest and pytest-xdist for parallel execution
  • Documentation with MkDocs
  • Compatibility testing for multiple versions of Python with tox-uv
  • GitHub Actions CI/CD with automated testing, documentation deployment, and security scanning
  • Enterprise GitHub support with SSH-first authentication

Documentation


Quickstart

On your local machine, navigate to the directory in which you want to create a project directory, and run the following command:

uvx cookiecutter gh:matrig/cookiecutter-uv-lite

You'll be prompted to configure your project (12 questions):

  1. project_type: Choose between package (library), cli (command-line app), or notebooks (data science)
  2. project_name: Your project name (e.g., my-awesome-project)
  3. project_description: Short description of your project
  4. author: Your name
  5. author_email: Your email
  6. author_username: Your GitHub username
  7. git_repo [y/n]: Initialize git repository and optionally create remote on GitHub
  8. git_server: GitHub server (default: github.com, or your enterprise domain)
  9. private_repo [y/n]: Create private repository
  10. mkdocs [y/n]: Include MkDocs documentation
  11. github_actions [y/n]: Enable GitHub Actions CI/CD
  12. codecov [y/n]: Enable Codecov integration

Project Types

📦 Package - Python libraries and packages

  • Includes example module with function
  • Standard package structure
  • Ready for PyPI publishing

🚀 CLI - Command-line applications

  • Built with Typer (modern CLI framework)
  • Styled output with Rich
  • Executable entry point configured
  • make run command with argument support

📊 Notebooks - Data science and analysis projects

  • JupyterLab for interactive development
  • Data science stack: pandas, numpy, matplotlib, seaborn
  • Sample notebooks with exploratory analysis and visualization examples
  • notebooks/ directory for analysis, data/ directory for datasets
  • Notebook testing with nbval
  • Helper utilities module for reusable code
  • make jupyter to launch JupyterLab

GitHub Actions Features

When you enable GitHub Actions (github_actions: y), your generated project includes:

🚀 Continuous Integration (CI)

  • Multi-Python testing: Automatically tests your code on Python 3.9-3.13
  • Multi-OS testing: Tests on Ubuntu, macOS, and Windows
  • Code quality checks: Automated linting (ruff), formatting, and type checking (mypy)
  • Coverage reporting: Optional integration with Codecov

📚 Documentation Deployment

  • Auto-deploy to GitHub Pages: Documentation automatically updates when you push to main
  • MkDocs integration: Works seamlessly if you enable MkDocs

🔒 Security Scanning

  • CodeQL analysis: GitHub's native security scanning
  • Dependency scanning: Automated vulnerability detection with Safety
  • Scheduled security checks: Weekly automated scans

📈 Professional Setup

Your generated project gets enterprise-grade CI/CD that:

  • ✅ Prevents bad code from being merged
  • ✅ Automatically deploys documentation
  • ✅ Monitors for security vulnerabilities
  • ✅ Works with both GitHub.com and GitHub Enterprise

Acknowledgements

This project is based on https://github.com/patrickmineault/true-neutral-cookiecutter and https://github.com/fpgmaas/cookiecutter-uv.

About

A lightweight, modern Python project template for packages, CLIs, and notebooks — powered by uv

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors