Python projects

This page describes Python projects I often use, on some of them being a maintainer.

Linters

graph LR; ansible-lint --> ansible pre-commit -.-> flake8 pre-commit -.-> doc8 pre-commit -.-> bandit pre-commit -.-> bashate pre-commit -.-> yamllint pre-commit -.-> ansible-lint pre-commit -.-> zuul-lint flake8 -.-> flake8-black flake8 -.-> flake8-mypy flake8 -.-> flake8-docstrings flake8 -.-> flake8-absolute-import flake8 -.-> mccabe flake8 -.-> pyflakes flake8-black --> black flake8-mypy --> mypy flake8-docstrings --> pycodestyle flake8 -.-> hacking yamllint --> pyyaml yamllint --> ruamel.yaml zuul-lint --> pyyaml classDef core fill:#f9f,stroke:#333,stroke-width:1px; class doc8 core; class ansible-lint core; class zuul-lint core;

Unit and functional testing

graph LR; tox --> pytest tox --> stestr tox --> sphinx molecule --> ansible molecule -.-> selinux molecule -.-> docker molecule -.-> libpod molecule --> cookiecutter molecule --> testinfra subgraph pytest* pytest -.-> pytest-molecule pytest -.-> pytest-html pytest -.-> pytest-sugar pytest -.-> pytest-cov pytest -.-> pytest-xdist end pytest-html -.-> ansi2html pytest-molecule --> molecule pytest-cov --> coverage sphinx stestr --> python-subunit stestr --> testtools stestr --> voluptuous classDef core fill:#f9f,stroke:#333,stroke-width:1px; class pytest-molecule core; class molecule core; class selinux core; class cookiecutter core; class testinfra core;

Packaging

graph LR; pip --> wheel pip --> setuptools twine --> wheel twine --> setuptools pbr --> setuptools virtualenv --> pip reno setuptools --> setuptools-scm

Other tools or libraries

graph LR; git-review jenkins-job-builder --> python-jenkins jira