A dummy package for quickly starting typical Python projects.
Features:
- Basic
.gitignore
; - GitHub actions for builds and checks;
- Acceptable directory structure at once;
- Regular automation based on a
Makefile
; - Templates for basic Python badges into
README.md
. - Single point of project specification -
pyproject.toml
; - Acceptable settings for:
black
,isort
,flake8
,mypy
,pydocstyle
andcoverage
;
- Clone repo:
$ git clone https://github.com/p3t3rbr0/py3-blank-project.git
- Rename project directory name on your choice:
$ mv py3-blank-project <py3-project-name>
- Run init.sh with your project name:
$ cd <py3-project-name>
$ NAME=<project-name> ./init.sh
- Remove init.sh
$ rm -f init.sh
-
Change
authors
,description
,keywords
andclassifiers
into pyproject.toml. -
Change
README.md
,CHANGELOG.md
andLICENSE
files. -
Change "dunders" (
author
,version
andlicense
) in<package>.__init__.py
.
A new blank Python project is ready, create gh-repo and go forward!
make deps-dev
- Install only development dependencies.make deps-build
- Install only build system dependencies.make deps
- Install all dependencies.
make build-sdist
- Build a source distrib.make build-wheel
- Build a pure Python wheel distrib.make build
- Build both distribs (source and wheel).make upload
- Upload built packages to PyPI.
make cleanup
- Clean up Python temporary files and caches.make format
- Fromat the code (by black and isort).make lint
- Check code style, docstring style and types (by flake8, pydocstyle and mypy).make tests
- Run tests with coverage measure (output to terminal).make tests-cov-json
- Run tests with coverage measure (output to json [coverage.json]).make tests-cov-html
- Run tests with coverage measure (output to html [coverage_report/]).