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.txtfiles - 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/notebooksroot folder but still retaining notebook access to the parent/srcand/logfoldersmake test- run unit testsmake black- format code andmake flake8for lintingmake sync_data_to_s3andmake 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