From 72b2d71c755ce93ce387f7caf49d4aac71ce6bd0 Mon Sep 17 00:00:00 2001 From: Awen Lelu Date: Mon, 1 Dec 2025 17:46:26 +0100 Subject: [PATCH] monde de merde --- __pycache__/main.cpython-312.pyc | Bin 0 -> 4890 bytes ..._cryptarithme.cpython-312-pytest-8.4.2.pyc | Bin 0 -> 7333 bytes ..._of_log_files.cpython-312-pytest-8.4.2.pyc | Bin 0 -> 5813 bytes ...d_in_logfiles.cpython-312-pytest-8.4.2.pyc | Bin 0 -> 6579 bytes flake.lock | 27 +++++++++++ flake.nix | 31 +++++++++++++ main.py | 43 ++++++++++++++++-- test_list_ipv4_listed_in_logfiles.py | 2 +- 8 files changed, 97 insertions(+), 6 deletions(-) create mode 100644 __pycache__/main.cpython-312.pyc create mode 100644 __pycache__/test_cryptarithme.cpython-312-pytest-8.4.2.pyc create mode 100644 __pycache__/test_list_filenames_of_log_files.cpython-312-pytest-8.4.2.pyc create mode 100644 __pycache__/test_list_ipv4_listed_in_logfiles.cpython-312-pytest-8.4.2.pyc create mode 100644 flake.lock create mode 100644 flake.nix diff --git a/__pycache__/main.cpython-312.pyc b/__pycache__/main.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4af1f51ac4ee55c5baf844d7350ff175f10ece0b GIT binary patch literal 4890 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 OE9VDJ1{NuB&;S4oJSAQL literal 0 HcmV?d00001 diff --git a/__pycache__/test_cryptarithme.cpython-312-pytest-8.4.2.pyc b/__pycache__/test_cryptarithme.cpython-312-pytest-8.4.2.pyc new file mode 100644 index 0000000000000000000000000000000000000000..77a0d2ff9002c77578d3b1c507b4b969ee7a3b2f GIT binary patch literal 7333 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 q47{J%m>6Y0aWOM0e&S(fl={TO#+b list: """ List all the `*.log` files stored in the folders specified by foldernames. @@ -14,10 +19,21 @@ def list_filenames_of_log_files(*foldernames) -> list: :raises FileNotFoundError: If one of the speficied folders does not exist """ - return foldernames + def walk(folder): + if not folder.exists(): + raise FileNotFoundError(f"{folder} does not exist") + for subfold, childfolds, files in folder.walk(): + for f in files: + if ".log" in f: + yield subfold / f + + # final cast as list would generally be omited but due to the test expecting + # an indexable object, this cast is need. It would be more idiomatic to return + # a generator and iterate over it tho. + return list(chain(*[walk(Path(foldername)) for foldername in foldernames])) -def list_ipv4_listed_in_logfiles(*foldernames) -> list : +def list_ipv4_listed_in_logfiles(*foldernames) -> list: """ Parse all the `*.log` files stored in the folders specified by foldernames. This method returns a list of ip adresses stored in those files. @@ -30,10 +46,18 @@ def list_ipv4_listed_in_logfiles(*foldernames) -> list : :raises FileNotFoundError: If one of the speficied folders does not exist """ - return foldernames + def get_ip_from_file(file): + matcher = re.compile(r"(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})") + with open(file) as f: + for line in f: + if match := matcher.search(line): + yield match.group() + # cast to a set to delete duplicates + # cast to a list 'caus the test is hardcoded to get a list + return list(set(chain(*[get_ip_from_file(file) for file in list_filenames_of_log_files(*foldernames)]))) -def cryptarithme(message:str = "SEND + MORE = MONEY") -> list: +def cryptarithme(message: str = "SEND + MORE = MONEY") -> list: """ The `message` is a formatted mathematical operation. Each letter represents a number between 0 and 9. @@ -64,10 +88,19 @@ def cryptarithme(message:str = "SEND + MORE = MONEY") -> list: :raises ValueError: If the string cannot be parsed properly. :raises CryptarithmeError : If the string is not a possible Cryptarithme """ + + # check for syntax + for i, character in enumerate(message): + if character not in [*string.ascii_uppercase, "+", "=", " "]: + raise ValueError(f"illegal character {character} at {i}") + if len([i for i in message if i == "="]) >= 2 or len([i for i in message if i == "+"]) >= 2: + raise ValueError("too much =") return message +class CryptarithmeError(Exception): + pass -if __name__ == '__main__': +if __name__ == "__main__": # list_filenames_of_log_files('data') # list_ipv4_listed_in_logfiles('data') # cryptarithme('A + A +A= B') diff --git a/test_list_ipv4_listed_in_logfiles.py b/test_list_ipv4_listed_in_logfiles.py index c619470..7631fc7 100644 --- a/test_list_ipv4_listed_in_logfiles.py +++ b/test_list_ipv4_listed_in_logfiles.py @@ -43,4 +43,4 @@ def test_refactoring_has_brought_a_generator(): with open("main.py") as f: lines : str = f.read() found = re.search("yield", lines) - assert found, "No bonus linked to refactoring to a generator" \ No newline at end of file + assert found, "No bonus linked to refactoring to a generator"