projects
/
python_utils.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Various changes
[python_utils.git]
/
letter_compress.py
diff --git
a/letter_compress.py
b/letter_compress.py
index 01d40f9ed636275cb2c3727d79e4a61db67f941d..378ecbcbf433f02c006a21633110e7f0b397dea0 100644
(file)
--- a/
letter_compress.py
+++ b/
letter_compress.py
@@
-2,10
+2,9
@@
import bitstring
import bitstring
-import bidict
+
from collect.bidict
import bidict
-
-special_characters = bidict.bidict(
+special_characters = bidict(
{
' ': 27,
'.': 28,
{
' ': 27,
'.': 28,
@@
-24,7
+23,13
@@
def compress(uncompressed: str) -> bytes:
>>> import binascii
>>> binascii.hexlify(compress('this is a test'))
>>> import binascii
>>> binascii.hexlify(compress('this is a test'))
- b'99d12d225a06a6494c'
+ b'a2133da67b0ee859d0'
+
+ >>> binascii.hexlify(compress('scot'))
+ b'98df40'
+
+ >>> binascii.hexlify(compress('scott'))
+ b'98df4a00'
"""
compressed = bitstring.BitArray()
"""
compressed = bitstring.BitArray()
@@
-47,14
+52,18
@@
def decompress(kompressed: bytes) -> str:
its original form.
>>> import binascii
its original form.
>>> import binascii
- >>> decompress(binascii.unhexlify(b'
99d12d225a06a6494c
'))
+ >>> decompress(binascii.unhexlify(b'
a2133da67b0ee859d0
'))
'this is a test'
'this is a test'
+ >>> decompress(binascii.unhexlify(b'98df4a00'))
+ 'scott'
+
"""
decompressed = ''
compressed = bitstring.BitArray(kompressed)
for chunk in compressed.cut(5):
chunk = chunk.uint
"""
decompressed = ''
compressed = bitstring.BitArray(kompressed)
for chunk in compressed.cut(5):
chunk = chunk.uint
+ print(f'0x{chunk:x}')
if chunk == 0:
break
elif 1 <= chunk <= 26:
if chunk == 0:
break
elif 1 <= chunk <= 26: