This repository is a template to make the development of Python libraries easier. It includes a basic structure, dummy package, unit tests, and GitHub Actions workflows for testing and deployment. I'm sharing this template in case others find it useful.
- Poetry: for dependency and virtual environment management.
- Makefile: for managing common tasks like testing, linting, and formatting.
- GitHub Actions: for running tests, linting, and deploying to PyPI.
- Badges: for showing the status of tests, code quality, version, etc.
.github: GitHub Actions workflows.assets: Asset files (e.g., images, logos, etc.).docs: Documentation for the library.src: Library's source code.tests: Unit tests..editorconfig: Editor settings for consistent coding style..gitignore: Excludes files generated by Python and Poetry..gitattributes: Git LFS configuration.LICENSE: License file.Makefile: Manage tasks like testing, linting, and formatting.pyproject.toml: Poetry's configuration file.
Python>= 3.10Poetry(should work withuvas well)GNU Make
Tested on Ubuntu 24.04 LTS and Debian 12. But the template should work on other operating systems as well.
-
Clone the repository:
git clone https://github.com/habedi/template-python-library.git cd template-python-library -
Install dependencies:
make setup make install
# See the help for available commands
make help# Run the unit tests
make test# Lint the code
make lint# Format the code
make format# Perform type checking
make typecheck# Build the library
make build# Publish the library to PyPI
make publishNote
To publish the library to PyPI, make sure you have a PyPI account and a valid API token.
Set the PYPI_API_TOKEN secret in your GitHub repository settings, and PYPI_TOKEN environment variable in your
local environment.
For more information, refer to the Poetry documentation
and GitHub documentation.