From 477dbabed239a328c169630ddd7e9c5afcca3508 Mon Sep 17 00:00:00 2001 From: "iliya.saroukha" <iliya.saroukhanian@etu.hesge.ch> Date: Fri, 18 Apr 2025 19:28:40 +0200 Subject: [PATCH] feat: encoding or decoding --- dyn_huffman.py | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/dyn_huffman.py b/dyn_huffman.py index 84e383a..4ff9dc7 100644 --- a/dyn_huffman.py +++ b/dyn_huffman.py @@ -209,20 +209,28 @@ def decode(encoded: str) -> (str, str): def main() -> None: parser = argparse.ArgumentParser(prog='dyn_huffman.py') - parser.add_argument('input') + group = parser.add_mutually_exclusive_group(required=True) + group.add_argument('-e', '--encode', metavar='TEXT', + help='Encode given input string') + group.add_argument('-d', '--decode', metavar='BINARY', + help='Decode binary string') args = parser.parse_args() - print('=============== Encoding ===============') - encoded_input = encode(args.input) - print(f'Code final: {encoded_input}') - + print('============= Vitter params =============') + e, r = compute_vitter_params(len(LIST_ALPHABET)) + print(f'e = {e}\tr = {r}') print() - print('=============== Decoding ===============') - with_nyt, without_nyt = decode(encoded_input) - print(f'Message initial avec NYT : {with_nyt}') - print(f'Message initial sans NYT : {without_nyt}') + if args.encode: + print('=============== Encodage ===============') + encoded_input = encode(args.encode) + print(f'Code final: {encoded_input}') + elif args.decode: + print('=============== Décodage ===============') + with_nyt, without_nyt = decode(args.decode) + print(f'Message initial avec NYT : {with_nyt}') + print(f'Message initial sans NYT : {without_nyt}') if __name__ == "__main__": -- GitLab