This is a modern Cookiecutter template that can be used to initiate a Python project with all the necessary tools for development, testing, and deployment. We have taken inspiration from the following project: fpgmaas/cookiecutter-poetry
It supports the following features:
- Poetry for dependency management
- CI/CD with GitHub Actions
- TODO: REPLACE with Space Automation
- Pre-commit hooks with:
- Code quality with:
- black
- TODO: Initial formatting of code with black
- ruff Ruff is an extremely fast Python linter, written in Rust.
- โก๏ธ 10-100x faster than existing linters
- ๐ ๏ธ
pyproject.toml
support - ๐ค Python 3.11 compatibility
- ๐ฆ Built-in caching, to avoid re-analyzing unchanged files
- ๐ง Autofix support, for automatic error correction (e.g., automatically remove unused imports)
- ๐ Over 500 built-in rules
- โ๏ธ Near-parity with the built-in Flake8 rule set
- ๐ Native re-implementations of dozens of Flake8 plugins, like flake8-bugbear
- โจ๏ธ First-party editor integrations for VS Code and more
- ๐ Monorepo-friendly, with hierarchical and cascading configuration
- mypy
- deptry
- black
- TODO: Publishing to Biolexis Space Package Repo
- Publishing to Pypi or Artifactory by creating a new release on GitHub
- Testing and coverage with:
- Documentation with
- Compatibility testing for multiple versions of Python with:
- Containerization with:
Documentation \ - Example - Biolexis Space Python Package
On your local machine, navigate to the directory in which you want to create a project directory, and run the following two commands:
# pip install blx-cookiecutter-poetry
# ccp
Install cookiecutter
and directly pass the URL to this
Space repository to the cookiecutter
command:
pip install cookiecutter
cookiecutter https://biolexistx.jetbrains.space/p/blx-cc/repositories/blx-cookiecutter-poetry
Create a repository on GitHub, and then run the following commands, replacing <project-name>
, with the name that you gave the Github repository and
<github_author_handle>
with your Github username.
cd <project_name>
git init -b main
git add .
git commit -m "Init commit"
git remote add origin [email protected]/biolexistx/blx-cc/<project_name>.git
git push -u origin main
Finally, install the environment and the pre-commit hooks with
make install
Check out what you can do with the Makefile
make help
You are now ready to start development on your project! The CI/CD pipeline will be triggered when you open a pull request, merge to main, or when you create a new release.
To finalize the set-up for publishing to PyPi or Artifactory, see here. For activating the automatic documentation with MkDocs, see here. To enable the code coverage reports, see here.
This project is partially based on FPgmaas cookiecutter project which acknowledges - Audrey Feldroy's's great cookiecutter-pypackage repository.