Template project for a python application:
- dependencies managed by peotry
- delivered as a container
Visual Studio Code
is the recommended IDE for this project. It was chosen for the Remote - Containers
extension that guarantees the same development environment for every developer. The project is configured so that everything works out of the box.
bin
: binaries for the projectsrc
: the source code of the application, and nothing more.tools
: anything else that's required to make the project work but is not a part of the application. This may include source code, shell scripts, configuration files, etc.tools/tooling
is used to explicitely link the various configuration files to the software that requires it.tests
: holds tests that can be run withpytest
.
- python: pylint.
- shell scripts: shellcheck.
- python: pytest, with pytest-cov to handle coverage and pytest-xdist to handle parallelization.
- python: mypy
The project uses a Makefile
as a way to provide quick access to common commands. It should not be used to write complex scripts. It was chosen over poetry
scripts because make
is shorter to type than poetry run
, despite the shortfall of make
it is everywhere and many developers are used to make target
commands, and finally the Makefile
syntax should be awful enough that you would want to write a shell
or python
script if you wanted to do something complicated and call that from the Makefile
.