X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=letter_compress.py;h=378ecbcbf433f02c006a21633110e7f0b397dea0;hb=986d5f7ada15e56019518db43d07b76f94468e1a;hp=01d40f9ed636275cb2c3727d79e4a61db67f941d;hpb=37d09d6ac30c8c66477149b7c73139c3e6782468;p=python_utils.git diff --git a/letter_compress.py b/letter_compress.py index 01d40f9..378ecbc 100644 --- a/letter_compress.py +++ b/letter_compress.py @@ -2,10 +2,9 @@ import bitstring -import bidict +from collect.bidict import bidict - -special_characters = bidict.bidict( +special_characters = bidict( { ' ': 27, '.': 28, @@ -24,7 +23,13 @@ def compress(uncompressed: str) -> bytes: >>> 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() @@ -47,14 +52,18 @@ def decompress(kompressed: bytes) -> str: its original form. >>> import binascii - >>> decompress(binascii.unhexlify(b'99d12d225a06a6494c')) + >>> decompress(binascii.unhexlify(b'a2133da67b0ee859d0')) 'this is a test' + >>> decompress(binascii.unhexlify(b'98df4a00')) + 'scott' + """ 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: