Skip to main content

Lexicographically Delimited Encoding

Project description

PY-LEXIMITED

by LCF NERD 218

LEX-ENCODING IN PYTHON

Lexicographically Delimited Encoding for python, why not ay...

See: https://github.com/elenasa/ULAM/wiki/Appendix-D:-Leximited-Format

Following on from: https://github.com/walpolea/leximitedjs

WHY? : https://twitter.com/walpolea/status/1260954256292458497

LIKE THIS? CHECK OUT => https://www.livingcomputation.org/


INSTALL

https://pypi.org/project/leximited/1.1.1/

pip install leximited


IMPORT

import leximited


USE

Call leximited.to_leximited() with numbers (int or str) or arbitrary strings to get their leximited version.

Call leximited.from_leximited() with lex-encoded numbers (int or str) or arbitrary lex-encoded strings to get their "normal" version.

Also supports lists and tuples and allows for mixed lists with lex-encoding on numbers only, see examples below.

print(f'INTEGERS: {leximited.to_leximited(1)}')
INTEGERS: 11
print(f"NUMBERS WITH LEADING 0s: {leximited.to_leximited('002')}")
NUMBERS WITH LEADING 0s: '12'
print(f'BIG NUMBERS: {leximited.to_leximited(2000000000)}')
BIG NUMBERS: 92102000000000
print(f"SHORT STRINGS: {leximited.to_leximited('Bh3!!!')}")
SHORT STRINGS: 6Bh3!!!
print(f'LONG STRINGS: {leximited.to_leximited("a man, a plan, a guy: eleets")}')
LONG STRINGS: 9228a man, a plan, a guy: eleets
print(f"EMPTY STRINGS: {leximited.to_leximited('')}")
EMPTY STRINGS: 0

Also takes lists or tuples, and optionally preserve non-number strings as their original form (convert_text defaults to True to lex-encode everything).


in_list = [1, '002', 2000000000, 'Bh3!!!', 'a man, a plan, a guy: eleets', '']
print(f'INPUT: {in_list}')
leximited_list = leximited.list_to_leximited(in_list, convert_text=True)
print(f'LEXIMITED: {leximited_list}')
back_again = leximited.list_from_leximited(leximited_list)
print(f'AND BACK AGAIN: {back_again}')

INPUT: [1, '002', 2000000000, 'Bh3!!!', 'a man, a plan, a guy: eleets', '']
LEXIMITED: [11, '12', 92102000000000, '6Bh3!!!', '9228a man, a plan, a guy: eleets', '0']
AND BACK AGAIN: [1, '2', 2000000000, 'Bh3!!!', 'a man, a plan, a guy: eleets', '']

Note that the leading zeros are lost when converting back again.

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

leximited-1.1.1.tar.gz (3.1 kB view details)

Uploaded Source

Built Distribution

leximited-1.1.1-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

File details

Details for the file leximited-1.1.1.tar.gz.

File metadata

  • Download URL: leximited-1.1.1.tar.gz
  • Upload date:
  • Size: 3.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.3.1 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.4

File hashes

Hashes for leximited-1.1.1.tar.gz
Algorithm Hash digest
SHA256 5332491604473b899576b4fbd05a41a2b9d72f40bbcc3076fb4d04b413d42f74
MD5 3976ba9c409e7a8f8933d952176c15ea
BLAKE2b-256 0634a85760ef2d0d8aac2b72cd041157b13cce94a140fcad2ee4735a6c47d466

See more details on using hashes here.

File details

Details for the file leximited-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: leximited-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 15.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.3.1 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.4

File hashes

Hashes for leximited-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0012d14a11967620bf8f51d84a1ca77ca99405823f4945fa6cc808155b26e6df
MD5 536f877483f52a46de7d90f0a2682f44
BLAKE2b-256 2b00ad571d75fd873f86eddfade0994f9837350f891b4dc2a5fb10f9eab40dc1

See more details on using hashes here.

Supported by

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