Table of contents
Using this template will help you with
- Providing a starting point for Python-based projects.
- Generating a common project structure easy to maintain.
- Following best practices in terms of code quality, documentation, testing, and deployment.
This template has been designed to be:
- Simple: Everybody within the team should be able to understand and use it.
- Flexible: From this starting point, the user can add or remove features as needed. For example, to create a web app, or to develop a data science project, this template can be used as a starting point.
- Colaborative: Propose new features, report bugs, and contribute to the template from the Issues section will be highly valuable for the team.
If you already know cookiecutter, just generate your project with:
cookiecutter https://github.com/fpozoc/pyops
Otherwise
Cookiecutter manages the setup stages and delivers to you a personalized ready to run project. To install cookiecutter, you can use pip:python -m pip install cookiecutter
- Environment manager:
conda
andmamba
(a reimplementation of conda in C++). - Project configuration:
pyproject.toml
,setup.cfg
and minimalsetup.py
. - Testing with
pytest
. - Code formatting with
black
for as code formatter andpre-commit
for managing and maintaining pre-commit hooks. - Import sorting with
isort
sorts imports alphabetically, and automatically separated into sections and by type. - Linting with
pylint
checks coding style (PEP8), programming errors and cyclomatic complexity. - Typing with
mypy
. - CI/CD with
GitHub Actions
. - Automatization with
Makefile
. - Documentation and site generation with
mkdocs
and Material for MkDocs, a fast, simple and downright gorgeous static site generator. - Containerize some parts of the project with
Dockerfile
. - Ready to use
.editorconfig
to maintain consistent coding styles for multiple developers,.dockerignore
and.gitignore
for exclude large or sensitive files.
Fernando Pozo (@fpozoca – fpozoc@gmx.com)
- v0.0.1
- Work in progress
Instructions to contribute to this project:
Read CONTRIBUTING.md
- Fork it (https://github.com/fpozoc/pyops)
- Create your feature branch (
git checkout -b feature/fooBar
) - Commit your changes (
git commit -am 'Add some fooBar'
) - Push to the branch (
git push origin feature/fooBar
) - Create a new Pull Request
Distributed under the GNU General Public License v3.0.
See LICENSE
file.