diff --git a/linter/lint.py b/linter/lint.py index 7facf83..d461fbd 100644 --- a/linter/lint.py +++ b/linter/lint.py @@ -1,13 +1,33 @@ -# from rules.content_about import content_about +# Last "as" keyword is in the form ab_cd, where "a" and +# "b" are the first letters of the two words of the module +# and "c" and "d" are the first letters of the two words +# of the function of the module. + +from rules.content_about import trailing_slash as ca_ts +from rules.featured_playlists import trailing_slash as fp_ts +from rules.youtubers_names import trailing_slash as yn_ts -def main(): +def main() -> None: """ Main function. Used specifically to call print results by calling functions into rules/. + + Functions: + content_about: trailing_slash, comma_separated + featured_playlists: trailing_slash, closed_backsticks + youtubers_names: trailing_slash, youtube_link """ - pass + # "youtubers_names" + print("YouTubers names:") + print(yn_ts()) + # "content_about" + print("Content about:") + print(ca_ts()) + # "featured_playlists" + print("Featured playlists:") + print(fp_ts()) if __name__ == '__main__': diff --git a/linter/rules/content_about.py b/linter/rules/content_about.py index 2411eb2..0438427 100644 --- a/linter/rules/content_about.py +++ b/linter/rules/content_about.py @@ -5,59 +5,32 @@ file_readme = here / '../../test.md' with open(file_readme, 'r') as read_readme: content = read_readme.readlines() +CHECKER = "Content about:" -class ContentAbout(): + +def trailing_slash() -> str: """ - Contains methods for the detection of various - rules asigned to the "Content about:" sections. - These methods edit the readme.md file (the awe- - some list) in-place if any of the rules isn't - met. - - Attributes: - checker (str): matches the "Content about:" string. - result (str): result of the operation. + Looks for backslash and the end of all the matching + lines ("Content about:" lines). """ - checker = "Content about:" + result = ["🟢 0: perfect."] - def __init__(self): - self.result = "🟢 0: perfect." + for line, value in enumerate(content): + if CHECKER in value: + last = value[-2] + if last != "\\": + if last == " ": + content[line] = f"{value[:-1]}\\\n" + else: + content[line] = f"{value[:-1]} \\\n" - def trailing_slash(self) -> str: - """ - Looks for backslash and the end of all the matching - lines ("Content about:" lines). - """ + with open(file_readme, 'w') as write_readme: + write_readme.writelines(content) - for line, value in enumerate(content): - if self.checker in value: - last = value[-2] - if last != "\\": - if last == " ": - content[line] = f"{value[:-1]}\\\n" - else: - content[line] = f"{value[:-1]} \\\n" + result.append(f"🔴 {line}: backslash. Fixed.") - with open(file_readme, 'w') as write_readme: - write_readme.writelines(content) - - self.result = f"🔴 {line}: backslash.\nFixed." - - return self.result - - def comma_separated(self) -> str: - """ - Looks through all words in the section to check - if they're separated by a comma and a space - ", ". - """ - - # for line, value in enumerate(content): - # if self.checker in value: - - return self.result - - -content_about = ContentAbout() -print(content_about.trailing_slash()) + if len(result) > 1: + return '\n'.join(result[1:]) + else: + return ''.join(result) diff --git a/linter/rules/featured_playlists.py b/linter/rules/featured_playlists.py index 17ac1cc..3d2f546 100644 --- a/linter/rules/featured_playlists.py +++ b/linter/rules/featured_playlists.py @@ -5,76 +5,52 @@ file_readme = here / '../../test.md' with open(file_readme, 'r') as read_readme: content = read_readme.readlines() +CHECKER = "Featured playlists:" +LENGTH = 124 -class FeaturedPlaylists(): + +def trailing_slash() -> str: """ - Contains methods for the detection of various - rules asigned to the "Featured playlists:" sections. - These methods edit the readme.md file (the awe- - some list) in-place if any of the rules isn't - met. - - Attributes: - checker (str): matches the "Featured playlists:" string. - length (int): minimum length of the line to break line. - result (str): result of the operation. + Looks for backslash and the end of all the matching + lines ("Featured playlists:" lines) and a line + break tag "
" at the next line. """ - checker = "Featured playlists:" - length = 124 + result = ["🟢 0: perfect."] - def __init__(self): - self.result = "🟢 0: perfect." + for line, value in enumerate(content): + if CHECKER in value: + last = value[-2] + if len(value) < LENGTH: + if last != "\\" and "
" not in content[line+1]: + if last == " ": + content[line] = f"{value[:-1]}\\\n
\n" + else: + content[line] = f"{value[:-1]} \\\n
\n" - def trailing_slash(self): - """ - Looks for backslash and the end of all the matching - lines ("Featured playlists:" lines) and a line - break tag "
" at the next line. - """ + with open(file_readme, 'w') as write_readme: + write_readme.writelines(content) - for line, value in enumerate(content): - if self.checker in value: - last = value[-2] - if len(value) < self.length: - if last != "\\" and "
" not in content[line+1]: - if last == " ": - content[line] = f"{value[:-1]}\\\n
\n" - else: - content[line] = f"{value[:-1]} \\\n
\n" + result.append(f"🔴 {line}: backslash | line break. Fixed.") + elif last != "\\" and "
" in content[line+1]: + if last == " ": + content[line] = f"{value[:-1]}\\\n" + else: + content[line] = f"{value[:-1]} \\\n" - with open(file_readme, 'w') as write_readme: - write_readme.writelines(content) + with open(file_readme, 'w') as write_readme: + write_readme.writelines(content) - self.result = f"🔴 {line}: backslash | line break.\nFixed." - elif last != "\\" and "
" in content[line+1]: - if last == " ": - content[line] = f"{value[:-1]}\\\n" - else: - content[line] = f"{value[:-1]} \\\n" + result.append(f"🔴 {line}: backslash. Fixed.") + elif last == "\\" and "
" not in content[line+1]: + content[line+1] = "
\n\n" - with open(file_readme, 'w') as write_readme: - write_readme.writelines(content) + with open(file_readme, 'w') as write_readme: + write_readme.writelines(content) - self.result = f"🔴 {line}: backslash.\nFixed." - elif last == "\\" and "
" not in content[line+1]: - content[line+1] = "
\n\n" + result.append(f"🔴 {line}: line break. Fixed.") - with open(file_readme, 'w') as write_readme: - write_readme.writelines(content) - - self.result = f"🔴 {line}: line break.\nFixed." - - return self.result - - def closed_backsticks(self): - """ - Looks that all backsticks of every word are co- - rrectly opened and subsequent closed. - """ - - return self.result - - -featured_playlists = FeaturedPlaylists() -print(featured_playlists.trailing_slash()) + if len(result) > 1: + return '\n'.join(result[1:]) + else: + return ''.join(result) diff --git a/linter/rules/youtubers_names.py b/linter/rules/youtubers_names.py index 9d41852..6b065c6 100644 --- a/linter/rules/youtubers_names.py +++ b/linter/rules/youtubers_names.py @@ -5,61 +5,32 @@ file_readme = here / '../../test.md' with open(file_readme, 'r') as read_readme: content = read_readme.readlines() +CHECKER = "[**" -class YoutubersNames(): + +def trailing_slash() -> str: """ - Contains methods for the detection of various - rules asigned to the YouTubers names lines. - These methods edit the readme.md file (the awe- - some list) in-place if any of the rules isn't - met. - - Attributes: - checker (str): matches the YouTuber names - "[**" string. - result (str): result of the operation. + Looks for backslash and the end of all the matching + lines (YouTubers names lines). """ - checker = "[**" + result = ["🟢 0: perfect."] - def __init__(self): - self.result = "🟢 0: perfect." + for line, value in enumerate(content): + if CHECKER in value: + last = value[-2] + if last != "\\": + if last == " ": + content[line] = f"{value[:-1]}\\\n" + else: + content[line] = f"{value[:-1]} \\\n" - def trailing_slash(self): - """ - Looks for backslash and the end of all the matching - lines (YouTubers names lines). - """ + with open(file_readme, 'w') as write_readme: + write_readme.writelines(content) - for line, value in enumerate(content): - if self.checker in value: - last = value[-2] - if last != "\\": - if last == " ": - content[line] = f"{value[:-1]}\\\n" - else: - content[line] = f"{value[:-1]} \\\n" + result.append(f"🔴 {line}: backslash. Fixed.") - with open(file_readme, 'w') as write_readme: - write_readme.writelines(content) - - self.result = f"🔴 {line}: backslash.\nFixed." - - return self.result - - def youtube_link(self): - """ - Checks whether the link typed is from youtube.com. - """ - - link = "youtube.com" - for line, value in enumerate(content): - if self.checker in value: - if link not in value: - self.result = f"🔴 {line}: YouTube link." - - return self.result - - -youtubers_names = YoutubersNames() -print(youtubers_names.trailing_slash()) + if len(result) > 1: + return '\n'.join(result[1:]) + else: + return ''.join(result)