A modern Cookiecutter template for scaffolding Python packages and apps. This repository is intended for organizations and super-user individuals who want to install some sence of order and rigor in code development.
Starting development in My Package can be done with a single click by opening My Package in GitHub Codespaces, or opening My Package in a Dev Container.
- π§βπ» Quick and reproducible development environments with VS Code's Dev Containers, PyCharm's Docker Compose interpreter, and GitHub Codespaces
- π Cross-platform support for Linux, macOS (Apple silicon and Intel), and Windows
- π Modern shell prompt with Starship
- π¦ Packaging and dependency management with Poetry
- π Installing from and publishing to private package repositories and PyPI
- β‘οΈ Task running with Poe the Poet
- βοΈ Code formatting with Ruff
- β Code linting with Pre-commit, Mypy, and Ruff
- π· Optionally follows the Conventional Commits standard to automate Semantic Versioning and Keep A Changelog with Commitizen
- β»οΈ Continuous integration with GitHub Actions or GitLab CI/CD
- π§ͺ Test coverage with Coverage.py
- π Scaffolding updates with Cookiecutter and Cruft
- π§° Dependency updates with Dependabot
To create a new customization of this template, first press the big green button on the top right to clone this repository as your own. Then, create an issue by clicking on issues. You will be presented with a issue form template which will ask you to make one selection from a choice of 6 selections as follows:
No. | Category | Item | Jupyter | Additional Info |
---|---|---|---|---|
1 | Python | Package Repository | β | typer is enabled by default with ability to push to PyPi |
2 | Python | Pydantic Repository | β | mypy Pydantic model checking is enabled by default with ability to push to PyPi |
3 | Streamlit | Streamlit Repository | β | streamlit is enabled by default and ability to push to ECR is enabled |
4 | FastAPI | FastAPI | β | fastapi is enabled by default, with ability to push repo to ECR provided variables are supplied |
5 | FastAPI | FastAPI with ML | β | fastapi is enabled by default, with ability to deploy a novel model from a foundation repository like π€ to FastAPI endpoint from AWS API Gateway + AWS Ξ» |
6 | FastAPI | FastAPI with ML Training | β | fastapi is enabled by default, with ability to train the model. Data versioning is enabled via DVC and remote is configured. There is further ability to create FastAPI endpoint from AWS API Gateway + AWS Ξ» |
Once the workflow has finished running, you can review the anticipated changes to your new customized repository by reviewing the PR. Once you are satisfied with the changes, you can merge the PR.