Skip to main content

python package template

Content

  • pytest for tests: make test
  • ruff for linting/formatting: make lint (replaces both black and isort)
  • pyproject-pipenv to make sure dependencies in pyproject.toml and Pipfile are in sync
  • .github with actions ready to be used
    • test runs lint checks, unit tests and pyproject-pipenv
    • publish-dev publishes feature branches (dev/dev-*) to:
      • testpypi - more about this on Notes
      • docker image to ghcr.io - remove job if image makes no sense
    • publish-main publishes semver tags to:
      • pypi
      • docker image to ghcr.io

New project checklist

  • Replace folder example with the actual package
  • Replace LICENSE if MIT does not apply
  • Search the project for # TODO to find the (minimum list of) places that need to be changed.
  • Add PYPI credentials to secrets
    • PYPI_USERNAME and PYPI_TOKEN to publish tags to pypi
    • TESTPYPI_USERNAME and TESTPYPI_TOKEN to publish dev branches to testpypi
  • Add codecov token
    • CODECOV_TOKEN taken from link above
  • Replace this README.md - template below

Notes

Feature branch publishing

publish-dev workflow publishes dev/dev-* branches to testpypi.

Other common approach to publish dev branches is to use pre-release channels: version the package with a rc or beta suffix (such as 1.0.0-beta1) and pypi will consider pre-release. In order to install this, the user needs to do pip install PACKAGE --pre otherwise the latest stable is picked up.
However this will "pollute" your pypi index and it still requires you to bump the version (1.0.0-beta1 < 1.0.0) or to install the branch using specific version.

Yet another approach is to simply use an entirely different package name for the dev releases. Tensorflow does that, for example, with tf-nightly.

---

fp-github-template-example

ci test codecov PyPI pyversions Current version on PyPi Very popular Code style: black

CLI that echos whatever you tell it to.

Install

pip install fp-github-template-example

Usage

$ example-cli
Got nothing to say?

$ example-cli hello
HELLO right back at ya!
>>> from example import demo
>>> demo.echo('ehlo')
'EHLO right back at ya!'

Build

Check out CONTRIBUTING.md

Metadata

Release files for fp-github-template-example 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fp-github-template-example 0.0.3
File Size Uploaded
fp-github-template-example-0.0.3.tar.gz 4.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fp-github-template-example 0.0.3
File Interpreter ABI Platform
fp_github_template_example-0.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 9.3 kB

Release files / fp-github-template-example-0.0.3.tar.gz

Download URL fp-github-template-example-0.0.3.tar.gz
Size 4.5 kB
Tags Source
SHA-256 checksum
How to use checksums
316c22d10a0d7f6ffcd4dc1b3fe932201f62d165f30c491793e53a25d7568ff6
BLAKE2b-256 checksum
How to use checksums
53aad9b4480d2bff73815893970cbe057c2ed6b6407758d260621e27f15fb09a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.10.15

Release files / fp_github_template_example-0.0.3-py3-none-any.whl

Download URL fp_github_template_example-0.0.3-py3-none-any.whl
Size 4.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
eece88083e81eb54d0b8b63dca96172c56882200abaee61f943480d76d9d6382
BLAKE2b-256 checksum
How to use checksums
3250bba68357ba5914ea0b85e6d2d800ad4940f51013d1d8a4b655d92b864a85
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.10.15

Release history Release notifications | RSS feed

This release

0.0.3 This release

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page