Skip to content
/ pyops Public

Python Project template designed for a cool variety of projects

License

Notifications You must be signed in to change notification settings

fpozoc/pyops

Repository files navigation

Python devops project template

Table of contents

Template features

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.

Get started

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

Features

  • Environment manager: conda and mamba (a reimplementation of conda in C++).
  • Project configuration: pyproject.toml, setup.cfg and minimal setup.py.
  • Testing with pytest.
  • Code formatting with black for as code formatter and pre-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.

Author information

Fernando Pozo (@fpozoca – fpozoc@gmx.com)

Release History

  • v0.0.1
    • Work in progress

Contributing

Instructions to contribute to this project:

Branching (internal collaboration)

Read CONTRIBUTING.md

Forking (external collaboration)

  1. Fork it (https://github.com/fpozoc/pyops)
  2. Create your feature branch (git checkout -b feature/fooBar)
  3. Commit your changes (git commit -am 'Add some fooBar')
  4. Push to the branch (git push origin feature/fooBar)
  5. Create a new Pull Request

License

Distributed under the GNU General Public License v3.0.

See LICENSE file.

About

Python Project template designed for a cool variety of projects

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published