diff options
Diffstat (limited to 'gitlab')
| -rwxr-xr-x | gitlab/description_parser.py | 20 | ||||
| -rwxr-xr-x | gitlab/downloader.py | 6 | ||||
| -rwxr-xr-x | gitlab/output.py | 8 |
3 files changed, 17 insertions, 17 deletions
diff --git a/gitlab/description_parser.py b/gitlab/description_parser.py index 2615b636..36b450bd 100755 --- a/gitlab/description_parser.py +++ b/gitlab/description_parser.py @@ -1,29 +1,29 @@ -import re +from re import sub, search, DOTALL from tomlkit import string -def remove_comments(description): - return re.sub(r'<!--(.|\n)*?-->', '', description) +def remove_comments(description : str) -> str: + return sub(r'<!--(.|\n)*?-->', '', description) -def get_headline_content(description, headline): +def get_headline_content(description : str, headline : str) -> str: pattern = rf'## {headline}\s+(.*?)(?=##\s|\Z)' - match = re.search(pattern, description, re.DOTALL) + match = search(pattern, description, DOTALL) if match: - return string(match.group(1).strip(), multiline=True) + return string(match.group(1).strip(), multiline = True) else: return "n/a" -def get_bullet_point(description, headline, category): +def get_bullet_point(description : str, headline : str, category : str) -> str: pattern = rf'{headline}(?:(?:.|\n)+?){category}:\s+(?:`)?(.+?)(?:`)?(?=\s)(?:\n|$)' - match = re.search(pattern, description) + match = search(pattern, description) if match: return match.group(1).strip() else: return "n/a" -def parse_description(desc): - desc = remove_comments(desc) +def parse_description(description : str) -> dict: + desc = remove_comments(description) result = { "host-os": get_bullet_point(desc, "Host", "Operating system"), diff --git a/gitlab/downloader.py b/gitlab/downloader.py index 2b73f1cf..89c37d46 100755 --- a/gitlab/downloader.py +++ b/gitlab/downloader.py @@ -1,4 +1,4 @@ -from requests import get +from requests import get, Response from description_parser import parse_description from output import output_issue @@ -6,7 +6,7 @@ project_id = 11167699 per_page = 100 url = f"https://gitlab.com/api/v4/projects/{project_id}/issues?per_page={per_page}" -def pages_iterator(first): +def pages_iterator(first : Response): current = first while current.links.get('next'): current.raise_for_status() @@ -16,7 +16,7 @@ def pages_iterator(first): yield current def main(): - for response in pages_iterator(get(url = url)): + for response in pages_iterator(get(url)): print(f"Current page: {response.headers['x-page']}") data = response.json() diff --git a/gitlab/output.py b/gitlab/output.py index 745081ae..07293147 100755 --- a/gitlab/output.py +++ b/gitlab/output.py @@ -1,18 +1,18 @@ from tomlkit import dumps from os import path, makedirs -def find_label(labels, keyword): +def find_label(labels : list, keyword : str) -> str: match = next((s for s in labels if f"{keyword}:" in s), None) if not match: return f"{keyword}_missing" return match.replace(": ", "_") -def write_file(file_path, string): - makedirs(path.dirname(file_path), exist_ok=True) +def write_file(file_path : str, string : str) -> None: + makedirs(path.dirname(file_path), exist_ok = True) with open(file_path, "w") as file: file.write(string) -def output_issue(issue): +def output_issue(issue : dict) -> None: labels = issue['labels'] issue_id = issue['id'] toml_string = dumps(issue) |