This is a Python3 image based on codewaysa/python3
(GitHub, Docker Hub) with development tools included.
Tools included in this image:
- black, the uncompromising code formatter
- coverage to measure test coverage
- git to enable installing code from Git repositories
- httpx useful for unit testing HTTP/2 or async APIs
- isort to lint
import
s - mypy for static type checking
- pip to install packages
- poetry to manage packaging and dependencies
- PyLint for syntax and style checks
- pytest for code testing with pytest-cov extension
- Setuptools to manage and build python packages
- Sphinx for documentation auto generation
- tox for test automation
- wheel for packaging
This image is meant to be used as a base to manually test stuff during development or as part of a CI/CD pipeline.
Sources for this image are published on GitHub and builds are available from Docker Hub.
If your Python project uses setuptools you could use a .gitlab-ci.yml
like this to test and build it:
image: "codewaysa/python3-dev:3.8"
stages:
- test
- build
black:
stage: lint
script: "black --diff --check src $( ./setup.py --name )"
isort:
stage: test
script: "isort --check-only --diff --recursive"
pylint:
stage: test
script: "pylint -E $( ./setup.py --name )"
tox:
stage: test
script: "tox -e py38"
wheel:
stage: build
script: "python3 setup.py bdist_wheel"
artifacts:
paths:
- dist/*.whl