Skip to main content

package example

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fp-github-template-example-0.0.3.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file fp-github-template-example-0.0.3.tar.gz.

File metadata

File hashes

Hashes for fp-github-template-example-0.0.3.tar.gz
Algorithm Hash digest
SHA256 316c22d10a0d7f6ffcd4dc1b3fe932201f62d165f30c491793e53a25d7568ff6
MD5 40dd1a264482f84ab4474ff39e1d4884
BLAKE2b-256 53aad9b4480d2bff73815893970cbe057c2ed6b6407758d260621e27f15fb09a

See more details on using hashes here.

File details

Details for the file fp_github_template_example-0.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for fp_github_template_example-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 eece88083e81eb54d0b8b63dca96172c56882200abaee61f943480d76d9d6382
MD5 1116520b1684cbb5b4c92711d812f481
BLAKE2b-256 3250bba68357ba5914ea0b85e6d2d800ad4940f51013d1d8a4b655d92b864a85

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page