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:
Example of the Austin-based profiling in action:
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!) ⭐
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!
Created by Lee Skillen; I build other things, including Cloudsmith.