Skip to main content

Utilities to deal with pep440 versioning

Project description

Continuous Integration Coverage Status

pep440-version-utils

This package regroups utilities to deal with pep440 versioning. It is based on the PyPA's packaging project and extends it.

It makes it easier to handle version bumps and strictly follows PEP440 specification.

Release cycle

Installation

Use pip or poetry to install this package:

$ pip install pep440-version-utils

# or alternatively
$ poetry add pep440-version-utils

Usage

Since this package extends the packaging library, so it supports version parsing and ordering as described in this documentation.

To bump to a new release version:

from pep440_version_utils import Version

version = Version("1.10.2")
version.next_micro()  # 1.10.3
version.next_minor()  # 1.11.0
version.next_major()  # 2.0.0

To bump to a new prerelease version:

from pep440_version_utils import Version

version = Version("1.10.2")
version.next_alpha()  # 1.10.3a1
version.next_beta()  # 1.10.3b1
version.next_release_candidate()  # 1.10.3rc1

version.next_alpha("minor")  # 1.11.0a1
version.next_beta("mior")  # 1.11.0b1
version.next_release_candidate("major")  # 2.0.0rc1

And it implements the full release cycle:

from pep440_version_utils import Version

version = Version("1.10.2")
alpha1 = version.next_alpha()  # 1.10.3a1
alpha2 = alpha1.next_alpha()  # 1.10.3a2
beta1 = alpha2.next_beta()  # 1.10.3b1
rc1 = beta1.next_release_candidate()  # 1.10.3rc1
rc2 = rc1.next_release_candidate()  # 1.10.3rc2
new_version = rc2.next_micro()  # 1.10.3

Limitations

This package doesn't support post, dev and local versions yet. Contributions are welcome 😊

How to contribute

This package is fairly simple, here is how you can contribute:

  1. ⚙️ Install poetry
  2. 📦 In the repository folder, run poetry install
  3. ✍️ Implement the desired changes
  4. ✅ Run test, type checking and code quality checks:
$ poetry run black . --check
$ poetry run mypy */**.py --ignore-missing-imports
$ poetry run pytest --cov=pep440_version_utils
  1. ➡️ Submit a new pull request

Do not hesitate to contribue, even for very small changes!

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

pep440-version-utils-0.1.2.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

pep440_version_utils-0.1.2-py3-none-any.whl (5.0 kB view details)

Uploaded Python 3

File details

Details for the file pep440-version-utils-0.1.2.tar.gz.

File metadata

  • Download URL: pep440-version-utils-0.1.2.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.3 CPython/2.7.16 Darwin/19.4.0

File hashes

Hashes for pep440-version-utils-0.1.2.tar.gz
Algorithm Hash digest
SHA256 c1d77e9f8d519a6dc13cd8ee2b8f867f1b836bb19b8603865c0c803026593dd0
MD5 c7aed7aa4d923eba02eae9766d4f93a4
BLAKE2b-256 a1a3979110fd1114a5087d8b495cf3256c3a8e6c09af7033bd774b34616bd1e9

See more details on using hashes here.

File details

Details for the file pep440_version_utils-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for pep440_version_utils-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 4c2e416ca30e37e3fd25510eff9bc2e92832b207c19c3fa5d47f8ae0c2890e8e
MD5 7d38f2dc4611a13ce7b23af5fe5a4d5c
BLAKE2b-256 a6295397279121a06ed102b3d55c55dffdfe5dafc56e191fdea7669aac1b6b29

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