A quick-start Python project template featuring:
- Useful functionality wrapped in a
Makefile
- Helpful default packages (details below)
- Nicely configured JupyterLab for experiments with example notebook loading external scripts
- Separated app and dev
requirements.txt
files - A Python
.gitignore
- A GitHub build action
- Example app showing logging and CLI arg parsing
make venv
- create an isolated virtual environment (using venv) and install common packagesmake run
- run the main app in venv with appropriate paths setmake jupyter
- launch jubyter lab with/notebooks
root folder but still retaining notebook access to the parent/src
and/log
foldersmake test
- run unit testsmake black
- format code andmake flake8
for lintingmake sync_data_to_s3
andmake sync_data_from_s3
- sync data with an s3 bucket
Type make
for all commands.
- Python-dotenv for environment variable management
- Sphinx to create documentation
- Typer for building CLI applications
- tqdm for smart progress bar support
- Loguru for pleasant and powerful logging
- pytest for writing your tests
- Black for code formatting
- Flake8 for code style linting
- JupyterLab for notebooks
- https://github.com/tedivm/robs_awesome_python_template
- https://github.com/TezRomacH/python-package-template
- https://github.com/drivendata/cookiecutter-data-science
- https://github.com/crmne/cookiecutter-modern-datascience
- https://github.com/xinntao/ProjectTemplate-Python
- More GitHub actions
- Replace requirements with Poetry
- Investigate adding static Typing checking, e.g. mypy
- Turn into a cookiecutter template
- Add more examples in
/src/examples