Sample Python Project for creating a new Python Module
Project description
Python Project Template
This project follows the Python Standards declared in PEP 621. This uses a pyproject.yaml to configuration the project. In this example, flit is used to simplify the build process, and publish to pypi.
Project Organization
- .devcontainer - This directory contains required files for creating a Codespace.
- .github
- workflows - Contains GitHub Actions used for building, testing and publishing.
- publish-test.yml - Publish wheels to https://test.pypi.org/
- publish.yml - Publish wheels to https://pypi.org/
- pull-request.yml - Build and Test pull requests before commiting to main.
- template-sync.yml - Update GitHub Repo with enhancments to base template
- workflows - Contains GitHub Actions used for building, testing and publishing.
- docs - collect documents (default format .md)
- src - place new source code here
- python_package - sample package (this can be deleted when creating a new repository)
- tests - contains Python based test cases to validation src code
- .pre-commit-config.yaml - Contains various pre-check fixes for Python
- .templateversionrc - used to track template version usage.
- MANIFEST.in - Declares additional files to include in Python whl
- pyproject.toml - Python Project Declaration
- ws.code-workspace - Recommended configurations for Visual Studio Code
pyproject.toml
The following sections are defined in the configuration toml.
- build-system
- project
- optional-dependencies
- urls
- tool
- bandit
- coverage
- run
- report
- pyright
- pytest
- tox
- pylint
- MESSAGES CONTROL
- REPORTS
- REFACTORING
- BASIC
- FORMAT
- LOGGING
- MISCELLANEOUS
- SIMILARITIES
- SPELLING
- STRING
- TYPECHECK
- VARIABLES
- CLASSES
- DESIGN
- IMPORTS
- EXCEPTIONS
build-system
TODO: add info on flit configuration
project
This section defines the project metadata, which may have been previously contained in a setup.py file.
optional-dependencies
This are otpimal dependancey groups that can be installed via 'pip install .[tests]'. One group is included for dependancies required for testing. A second group is included for PySpark based dependancies.
tool
This section defines the configurations for additional tools used to format, lint, type-check, and analysis Python code.
bandit
Performs Security Static Analysis checks on code base.
black
Auto-formats code
coverage
Configures code coverage reports generatated during testing.
pyright
Performs static type checking on Python.
pytest
Configures various test markers used during testing.
pylint
Performs Linting and Static Analysis. Any modifictions made by the auto-formater (black) are always considered correct.
Publish to PyPi from GitHub
In order to publish to PyPi, a repostirory secret must be created, "PYPI_PASSWORD". In order to publish to the Test PyPi, a second secret must be added, "TEST_PYPI_PASSWORD".
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for sawtooth-0.1.0rc1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e725df2ae59577ddf96d85c8455766ec52b677a6b5e99df7c4a95834856e314 |
|
MD5 | f436b7be10d5e4f010a81096b423114f |
|
BLAKE2b-256 | e75bd98631eda18090dff648dd6d80ef26e6c1e42e7fb6248d88c1a4980938aa |