This is my repo for AdventOfCode based off my python ML template repo. Each day's code is completely separate in it's own module.
The intent of the code is to explore and refine python best practices. Notable, the following concepts are explored in this repo are:
- Property-Based testing using
Hypothesislibrary (see./unittestsdirectory for test code.) - Auto-generated documentation from docstrings using
Sphinx. - Code coverage report is generated and included as part of the documentation here.
- Static analysis and type checking using
MyPy. - CD/CI using
github actions(see.github/workflowsdirectory for build pipeline)
To interact with the repo, a makefile is provided with some high-level commands:
make envwill create a conda python environmentmake depswill install the relevant dependencies fromdependencies\requirements.txt(remember to activate the environment before installing the dependencies)make testwill run the local unit testsmake runis a convinience command to run the current day's main scriptmake lintwill lint the code usingpre-commitmake docwill generate local documentation usingsphinx
Auto-generated documentation is available here.