Skip to main content

hashver is a python module to derive a unique numeric value from a version string and vice versa

Project description

hashver Build Status

Is a python module to derive a unique numeric value from a version string and vice versa, adhering to following constraints:

  • Resultant number must be unique for all possible values of a, b, c and d
  • Each of a, b, c and d needs to be below certain maximum unsigned int guided by max possible bits allotted to each version component
  • We should be able to derive unique a.b.c.d back from given number
  • If a.b.c.d => x and p.q.r.s => y then, a.b.c.d < p.q.r.s => x < y

Usage

After performing python -m pip install hashver, execute python code as mentioned below.

>>> from hashver import HashVer
>>> hob = HashVer()
>>> hob.get_num('1.0.6')
4294967302
>>> hob.get_version_str(8590000133)
2.1.5
>>> # if your version is of format a.b.c.d, each of which should be at most 2^16
>>> hob = HashVer(bits_per_component='16.16.16.16')
>>> hob.get_num('9.0.100.10')
2533274796949514
>>> hob.get_version_str(2533274796949514)
9.0.100.10

Or if you have curl,

curl -skL https://raw.githubusercontent.com/ashutoshkumr/python-hashver/master/hashver/hashver.py | python - 1.0.6 8590000133

1.0.6 : 4294967302
8590000133 : 2.1.5

Modification and Testing

If any modification is done to hashver source, use following to validate changes,

# ensure various combinations of version string or number can be derived from each other
python -B ${hashver-root}/hashver.py 9.0.100.10 2533274796949514 --bpc 16.16.16.16

9.0.100.10 : 2533274796949514
2533274796949514: 9.0.100.10

# or simply add them to the existing test suite in hashver/test_hashver.py and run pytest
cd ${hashver-root} && pytest

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

hashver-0.0.2.tar.gz (3.8 kB view details)

Uploaded Source

File details

Details for the file hashver-0.0.2.tar.gz.

File metadata

  • Download URL: hashver-0.0.2.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.33.0 CPython/2.7.15

File hashes

Hashes for hashver-0.0.2.tar.gz
Algorithm Hash digest
SHA256 5258de64b14556fee9c8aa05fcd759dd581939d13131515c62995f8f5f9aa885
MD5 e24521045fa808c5016c3fcd6cd00448
BLAKE2b-256 dc98f5ee72a374afaa832c0d7e4ed9b2b81530a18489af9a2a33a5e8bcf0ea54

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