python-boilerplate
python-boilerplate copied to clipboard
This repository is a Python boilerplate to be used as a fast starter point
Python Boilerplate 
- This repository is meant to be used as a fast starter point.
- The Python version is the 3.12.
- The project has configured a Github Action which runs on every push to the
mainbranch.
Requirements
- You only need to have Poetry installed.
Folder structure
- There is a
testsfolder with the tests files.- In order to add new tests please follow the pytest recommendations.
- The production code goes inside the
srcfolder. - Inside the
scriptsfolder you can find the git hooks files.
Project commands
The project uses Makefiles to run the most common tasks:
add-package package=XXX: Installs the package XXX in the app, ex:make install package=requests.build: Builds the app.check-typing: Runs a static analyzer over the code in order to find issues.check-format: Checks the code format.check-style: Checks the code style.format: Formats the code.help: Shows this help.install: Installs the app packages.local-setup: Sets up the local environment (e.g. install git hooks).run: Runs the app.test: Run all the tests.update: Updates the app packages.watch: Run all the tests in watch mode.
Important: Please run the make local-setup command before starting with the code.
In order to create a commit you have to pass the pre-commit phase which runs the check and test commands.
Packages
This project uses Poetry as the package manager.
Testing
- pytest: Testing runner.
- pytest-xdist: Pytest plugin to run the tests in parallel.
- doublex: Powerful test doubles framework for Python.
- expects: An expressive and extensible TDD/BDD assertion library for Python..
- doublex-expects: A matchers library for the Expects assertion librar.
Code style
- mypy: A static type checker.
- black: A Python formatter.
- ruff: An extremely fast Python linter, written in Rust..
Contributors
Special thanks to: