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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 |
5332491604473b899576b4fbd05a41a2b9d72f40bbcc3076fb4d04b413d42f74
|
|
MD5 |
3976ba9c409e7a8f8933d952176c15ea
|
|
BLAKE2b-256 |
0634a85760ef2d0d8aac2b72cd041157b13cce94a140fcad2ee4735a6c47d466
|
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
Algorithm | Hash digest | |
---|---|---|
SHA256 |
0012d14a11967620bf8f51d84a1ca77ca99405823f4945fa6cc808155b26e6df
|
|
MD5 |
536f877483f52a46de7d90f0a2682f44
|
|
BLAKE2b-256 |
2b00ad571d75fd873f86eddfade0994f9837350f891b4dc2a5fb10f9eab40dc1
|