X-Git-Url: https://wannabe.guru.org/gitweb/?a=blobdiff_plain;f=letter_compress.py;h=378ecbcbf433f02c006a21633110e7f0b397dea0;hb=986d5f7ada15e56019518db43d07b76f94468e1a;hp=4374edd352eab5e19e7c0a6a39345d63220d0d10;hpb=0bc6e4312cad0f997751739e750954ac39dfa6cc;p=python_utils.git diff --git a/letter_compress.py b/letter_compress.py index 4374edd..378ecbc 100644 --- a/letter_compress.py +++ b/letter_compress.py @@ -4,7 +4,6 @@ import bitstring from collect.bidict import bidict - special_characters = bidict( { ' ': 27, @@ -26,6 +25,12 @@ def compress(uncompressed: str) -> bytes: >>> binascii.hexlify(compress('this is a test')) b'a2133da67b0ee859d0' + >>> binascii.hexlify(compress('scot')) + b'98df40' + + >>> binascii.hexlify(compress('scott')) + b'98df4a00' + """ compressed = bitstring.BitArray() for (n, letter) in enumerate(uncompressed): @@ -50,11 +55,15 @@ def decompress(kompressed: bytes) -> str: >>> 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: