Python template with CI/CD ready for production
- main: For libraries and/or console applications
- typer: Command line interfaces implemented with Typer
- fastapi: For web applications implemented with FastAPI
- Management of dependencies with Poetry
- Generation of documentation based on Markdown with Material for Mkdocs
- Automatic check of the pythonic style with flake8, black and isort
- Automatic code checking with pytest
- Automatic code report with codecov
- Automatic code reviews with deepsource
- Automatic publish to GitHub Releases
- Automatic publish to PyPI
- Automatic dependency update check with dependabot
All of the above via GitHub Actions and GitHub Pages
Install cookiecutter
(Official Instructions)
At the command line:
python3 -m pip install --user cookiecutter
Or, if you do not have pip:
easy_install --user cookiecutter
Though, pip
is recommended.
Or, if you are using conda
, first add conda-forge
to your channels:
conda config --add channels conda-forge
Once the conda-forge
channel has been enabled, cookiecutter can be installed with:
conda install cookiecutter
Homebrew (Mac OS X only):
brew install cookiecutter
Pipx (Linux, OSX and Windows):
pipx install cookiecutter
Debian/Ubuntu:
sudo apt-get install cookiecutter
First, read History in detail. There are a lot of major changes. The big ones are:
Cookiecutter no longer deletes the cloned repo after generating a project.
Cloned repos are saved into ~/.cookiecutters/
.
You can optionally create a ~/.cookiecutterrc
config file.
Upgrade Cookiecutter either with easy_install
:
easy_install --upgrade cookiecutter
Or with pip:
python3 -m pip install --upgrade cookiecutter
Then, after you have installed cookiecutter
, execute the following command in the terminal of your choice:
cookiecutter gh:leynier/python-template --checkout <branch>
Where <branch>
can be main
, fastapi
, typer
, etc.
cookiecutter gh:leynier/python-template --checkout fastapi
This project is collaborative and open source under the MIT license. Contributions are super appreciated.