Skip to main content

Small library to generate, encode and decode random base32 strings.

Project description

https://img.shields.io/travis/inveniosoftware/base32-lib.svg https://img.shields.io/coveralls/inveniosoftware/base32-lib.svg https://img.shields.io/github/tag/inveniosoftware/base32-lib.svg https://img.shields.io/pypi/dm/base32-lib.svg https://img.shields.io/github/license/inveniosoftware/base32-lib.svg

Small library to generate, encode and decode random base32 strings with nice properties.

Usage

import base32_lib as base32

# Generate
## Generate a random identifier
base32.generate()
# -> 'abcd1234'

# Generate a random identifier with bells and whistle
base32.generate(length=10, split_every=5, checksum=True)
# -> '3sbk2-5j060'

# Encode a pre-existing number
base32.encode(1234, split_every=3, checksum=True) == "16j-82"

# Decode an identifier
base32.decode("16j-82", checksum=True) == 1234

base32.decode("16i-82", checksum=True)
# raises ValueError

Features

  • Generation, encoding and decoding of base32 strings

  • Douglas Crockford base32 encoding

  • URL-safe strings with no problematic special characters

  • Decoding of any-case strings

  • Configurable length strings

  • Randomness through cryptographically secure random number generator

  • Optional ISO-7064 checksum

  • Optional hyphenation

Installation

The base32-lib package is on PyPI so all you need is:

pip install base32-lib

Development

pipenv run pip install -e .[docs,tests]

Tests

pipenv run ./run-tests.sh

Changes

Version 1.0.2 (2020-05-07)

  • Deprecate Python versions lower than 3.6.0. Now supporting 3.6.0 and 3.7.0.

Version 1.0.1 (2019-11-15)

  • Enforce appropriate length of the encoded base32 strings.

Version 1.0.0 (2019-11-06)

  • First public 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

base32-lib-1.0.2.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

base32_lib-1.0.2-py2.py3-none-any.whl (6.7 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file base32-lib-1.0.2.tar.gz.

File metadata

  • Download URL: base32-lib-1.0.2.tar.gz
  • Upload date:
  • Size: 13.0 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.1.3 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.6.7

File hashes

Hashes for base32-lib-1.0.2.tar.gz
Algorithm Hash digest
SHA256 09663df621bbc454079a54c92fa25d3bc33ea4a191053a09dd1e05ea4c0fe47c
MD5 19f035db8fcb57de7d0936bbd3817a55
BLAKE2b-256 04ed0752d75107d2ec3bb6a2f023f54fa81039f1062b913709b843205aee47ba

See more details on using hashes here.

File details

Details for the file base32_lib-1.0.2-py2.py3-none-any.whl.

File metadata

  • Download URL: base32_lib-1.0.2-py2.py3-none-any.whl
  • Upload date:
  • Size: 6.7 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.1.3 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.6.7

File hashes

Hashes for base32_lib-1.0.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 f3cbc1c4b3df7af844c9b7ffc1638a688423db2b1e51082b2c014b3959b756ae
MD5 ed54c561860597f3b805e4ee8f548426
BLAKE2b-256 c3c95a769cb6649f2fdf366e1c10db4cafd0e6c7f8b3575d6cb5917bb9298086

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