Downloaded the repository on Tue 07 Jun 2022 20∶36∶44 EEST.
The code looks pretty good and the user interface is pleasant to use. File management module is currently used as a singleton but I was thinking from testing point of view you could inject the dependency to the classes using this module.
I also checked the tests and you have a good test coverage for the code you are actually using. I noticed you have the function fetch_uncompressed_content and fetch_uncompressed_content in the classes FileManagement, HuffmanCoding and LempelZiv77. For clarity it might be good to have separate names for the functions.
For the if statements in collect_huffman_coded_values and couple of other functions I would probably use if else statements since you use them in other functions too.
Not exactly sure what happened when I tried to use LempelZiv77 to compress a natural-language-text document of 2000 paragraphs and didn't have enough time to find the reason. You might want to check if it's working as intended just to be sure.
In a nutshell after looking at your code it is quite hard for me to find fixes as you seem to know what you are doing. I just want to note I am grateful for the docstrings even when I don't usually like using them, since it would have been pretty hard to know whats going on without them, good job on the project so far!
thank you very much for the valuable feedback, good suggestions and observations! I will make the adjustments you suggested to my application before the deadline. Best of luck with your project!
Downloaded the repository on Tue 07 Jun 2022 20∶36∶44 EEST.
The code looks pretty good and the user interface is pleasant to use. File management module is currently used as a singleton but I was thinking from testing point of view you could inject the dependency to the classes using this module.
I also checked the tests and you have a good test coverage for the code you are actually using. I noticed you have the function fetch_uncompressed_content and fetch_uncompressed_content in the classes FileManagement, HuffmanCoding and LempelZiv77. For clarity it might be good to have separate names for the functions.
For the if statements in collect_huffman_coded_values and couple of other functions I would probably use if else statements since you use them in other functions too.
Not exactly sure what happened when I tried to use LempelZiv77 to compress a natural-language-text document of 2000 paragraphs and didn't have enough time to find the reason. You might want to check if it's working as intended just to be sure.
In a nutshell after looking at your code it is quite hard for me to find fixes as you seem to know what you are doing. I just want to note I am grateful for the docstrings even when I don't usually like using them, since it would have been pretty hard to know whats going on without them, good job on the project so far!