Skip to main content

Determine compatibility given a version and specifier

Project description

License Travis CI Build Status Latest Version

compatibleversion

compatibleversion takes two parameters, a version and a specifier (i.e., version constraints), and returns a Boolean value indicating compatibility.

NOTE: compatibleversion wraps packaging in order to simplify and test its use. Versions and specifiers provided to compatibleversion must conform to PEP 440 as required by packaging.

install

$ pip install compatibleversion

usage

Use compatibleversion in Python code:

from compatibleversion import check_version

check_version('1.3.0', '> 1.2, < 3.3')          # True
check_version('2.1', '~= 2.2')                  # False

check_version('1.1.dev0', '>=1.0')              # True
check_version('1.1.dev0', '>=1.0', False)       # False, not allowing pre/dev-final comparison

check_version('1.1.dev0', '>=1.0.dev0')         # True, dev-dev compare
check_version('1.1.dev0', '>=1.0.dev0', False)  # True, doesn't affect since dev-dev

version parameter

The version parameter must conform to PEP 440. These are examples of valid version parameters:

1.2.0
0.0.0
0.9
0.9.1
0.9.2
0.9.10
0.9.11
1.0
1.0.1
1.1
2.0
2.0.1
1.0a1
1.0a2
1.0b1
1.0rc1
1.0.dev1
1.0.dev2
1.0.dev3
1.0.dev4
1.0b2.post345.dev456
1.0b2.post345
1.0rc1.dev456

specifier parameter

The version specifier parameter must conform to PEP 440. The specifier consists of one or more version clauses separated by commas.

For example, these are valid version specifiers (the last two are approximately equivalent):

==1.0.1
< 1.2, > 1.3
~= 0.9, >= 1.0, != 1.3.4.*, < 2.0
~= 1.4.5.0
== 1.1.post1
~= 2.2
>= 2.2, == 2.*

Here are more helpful specifier examples from PEP 440 and an explanation of their meaning:

  • ~=3.1: version 3.1 or later, but not version 4.0 or later.
  • ~=3.1.2: version 3.1.2 or later, but not version 3.2.0 or later.
  • ~=3.1a1: version 3.1a1 or later, but not version 4.0 or later.
  • == 3.1: specifically version 3.1 (or 3.1.0), excludes all pre-releases, post releases, developmental releases and any 3.1.x maintenance releases.
  • == 3.1.*: any version that starts with 3.1. Equivalent to the ~=3.1.0 compatible release clause.
  • ~=3.1.0, != 3.1.3: version 3.1.0 or later, but not version 3.1.3 and not version 3.2.0 or later.

Changelog

0.2.0

Commit Delta: Change from 0.1.3 release

Released: 2020.03.04

Summary:

  • Allow comparison between prerelease and dev releases (e.g., 1.0.dev0) and final releases (e.g., 1.0)

0.1.3

Commit Delta: Change from 0.1.2 release

Released: 2020.01.28

Summary:

  • Update dependencies
  • Update Python compatibility versions in PyPI/wheel package

0.1.2

Commit Delta: Change from 0.1.1 release

Released: 2019.10.24

Summary:

  • Improve compatibility with Py2.6

0.1.1

Commit Delta: Change from 0.1.0 release

Released: 2019.10.24

Summary:

  • Minor CI changes
  • Add documentation

0.1.0

Commit Delta: Change from 0.0.0 release

Released: 2019.10.22

Summary:

  • Initial release

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

compatibleversion-0.2.3.tar.gz (8.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

compatibleversion-0.2.3-py2.py3-none-any.whl (4.4 kB view details)

Uploaded Python 2Python 3

File details

Details for the file compatibleversion-0.2.3.tar.gz.

File metadata

  • Download URL: compatibleversion-0.2.3.tar.gz
  • Upload date:
  • Size: 8.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.7

File hashes

Hashes for compatibleversion-0.2.3.tar.gz
Algorithm Hash digest
SHA256 fe00f41efc0ee452fbfa9d205a611ee60c586f49ca60b19f0a31829d77e09d80
MD5 c7a74adc9136e1af7e1329006931037e
BLAKE2b-256 0044cfc646b07107f17850fca3f37c2461dfc2aea73d8692d92ece95be01f7fe

See more details on using hashes here.

File details

Details for the file compatibleversion-0.2.3-py2.py3-none-any.whl.

File metadata

  • Download URL: compatibleversion-0.2.3-py2.py3-none-any.whl
  • Upload date:
  • Size: 4.4 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.6.7

File hashes

Hashes for compatibleversion-0.2.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 259e37035531cadb407fa3388eca418cacbfbb7407e6f55b48d67aab3989445b
MD5 1f80d97f49d1b4926e07b5957fb293a6
BLAKE2b-256 25bd376a1fb8c2074ad94484412abd1cf5237ddbffe507cf4c91682f4801e1d9

See more details on using hashes here.

Supported by

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