Skip to content

A modern cookiecutter template for solving Advent of Code, using python+uv/ruff/mypy tooling.

License

Notifications You must be signed in to change notification settings

lskillen/cookiecutter-py-aoc

 
 

Repository files navigation

cookiecutter_py_aoc_logo


Build status Supported Python versions License

This is a modern cookiecutter project for generating a skeleton Python-based Advent of Code toolkit. Ready for you to fill out and solve the puzzles each year in Python. You bring the brains; I'll bring the brawny... templates. Features included:

  • A fully containerized + devcontainer setup with Python 3.10 ready to go.
  • Performance measuring CLI for executing your daily solutions in swagger-y style.
  • Delightful rich-based colour highlighting.
  • uv for dependency management.
  • Pre-commit hooks with pre-commit.
  • Formatting with ruff and prettier.
  • Type checking with mypy.
  • Testing with pytest.
  • Profiling with Austin and the Austin VSCode Extension.
  • Containerization with Docker.
  • Development environment with VSCode devcontainers.
  • Made with lurve. ❤️

Example of the CLI in action:

AoC Runner - In Action

Example of the Austin-based profiling in action:

Austin Profiling - In Action


Quickstart

Note: For the best experience, it's recommended to use a combination of Docker Desktop plus VSCode because with a devcontainer, you can do everything from within VSCode itself.

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

uvx cookiecutter https://github.com/lskillen/cookiecutter-py-aoc.git

or if you don't have uv installed yet:

pip install cookiecutter
cookiecutter https://github.com/lskillen/cookiecutter-py-aoc.git

Follow the prompts to configure your project. Once completed, a new directory containing your project will be created. Then, navigate your newly created project directory and follow the README.md instructions to complete your project setup. Happy Advent of Coding!

P.S. If you like what you use or use the project, send me some love with a star on GitHub (but it's optional!) ⭐

Acknowledgements

This project is partially based on Audrey Feldroy's great cookiecutter-pypackage repository.

It's also heavily based on Florian Maas' awesome cookiecutter-uv repository.

Thank you to both so that we may AoC with joy!

Author

Created by Lee Skillen; I build other things, including Cloudsmith.

About

A modern cookiecutter template for solving Advent of Code, using python+uv/ruff/mypy tooling.

Topics

Resources

License

Stars

Watchers

Forks

Languages

  • Python 83.3%
  • Makefile 12.1%
  • Shell 2.9%
  • Dockerfile 1.7%