this repo has no description
1ALPHABET = "234567abcdefghijklmnopqrstuvwxyz"
2DECODING_MAP = {v: k for k, v in enumerate(ALPHABET)}
3
4
5def encode_int(data: int, length: int) -> str:
6 encoded = ""
7 for i in range(0, length, 5):
8 c = data & 0b11111
9 data >>= 5
10 encoded += ALPHABET[c]
11 return "".join(reversed(encoded))
12
13
14def decode_int(data: str) -> int:
15 decoded = 0
16 for letter in data:
17 if letter not in DECODING_MAP:
18 raise ValueError("Non-base32-sortable digit found")
19
20 decoded <<= 5
21 decoded += DECODING_MAP[letter]
22 return decoded