From d728eeddbce61e5b84d3f29efe4f4b9dc6fd6ce5 Mon Sep 17 00:00:00 2001 From: Matheus Felipe <50463866+matheusfelipeog@users.noreply.github.com> Date: Tue, 11 Jan 2022 20:58:05 -0300 Subject: [PATCH] Refactor duplicate link checker --- scripts/validate/links.py | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/scripts/validate/links.py b/scripts/validate/links.py index 45bd174e..bb84aac8 100644 --- a/scripts/validate/links.py +++ b/scripts/validate/links.py @@ -2,7 +2,7 @@ import sys import re -from typing import List +from typing import List, Tuple def find_links_in_text(text: str) -> List[str]: @@ -32,10 +32,11 @@ def find_links_in_file(filename: str) -> List[str]: return links -def check_duplicate_links(links: List[str]) -> bool: - """Check for duplicated links and return True or False.""" +def check_duplicate_links(links: List[str]) -> Tuple[bool, List]: + """Check for duplicated links. - print('Checking for duplicated links...') + Returns a tuple with True or False and duplicate list. + """ seen = {} duplicates = [] @@ -48,13 +49,10 @@ def check_duplicate_links(links: List[str]) -> bool: if seen[link] == 1: duplicates.append(link) - if not duplicates: - print(f'No duplicate links.') - else: - print(f'Found duplicate links: {duplicates}') + if duplicates: has_duplicate = True - - return has_duplicate + + return (has_duplicate, duplicates) if __name__ == '__main__': @@ -66,4 +64,11 @@ if __name__ == '__main__': links = find_links_in_file(sys.argv[1]) - has_duplicate = check_duplicate_links(links) + print('Checking for duplicate links...') + + has_duplicate_link, duplicates_links = check_duplicate_links(links) + + if has_duplicate_link: + print(f'Found duplicate links: {duplicates_links}') + else: + print('No duplicate links.')