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