To build a modern python project, I use
- docker: for reproducible development environment
- docker compose: for managing development/production environment
- make: for using cli's shortcuts
- pip-tools: for managing package dependancies
- pytest: to unit tests
- black: to coding convention
- pydantic: data validation
- cloud.droin.io: ci