From 801859d78a55a43c7fee8381ddb4307cec160d8f Mon Sep 17 00:00:00 2001 From: Marc Wrobel Date: Sat, 30 Dec 2023 11:47:28 +0100 Subject: [PATCH] Enable flake8-return linting rules (#267) See https://docs.astral.sh/ruff/rules/#flake8-raise-rse. --- .ruff.toml | 1 + src/common/dates.py | 3 +-- src/common/endoflife.py | 6 ++++-- src/common/http.py | 8 ++++---- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/.ruff.toml b/.ruff.toml index 7aea10b4..263b111e 100644 --- a/.ruff.toml +++ b/.ruff.toml @@ -17,6 +17,7 @@ select = [ "N", # pep8-naming "PIE", # flake8-pie "PGH", # pygrep-hooks + "RET", # flake8-return "RUF100", # unused noqa (yesqa) "T10", # flake8-debugger "UP", # pyupgrade diff --git a/src/common/dates.py b/src/common/dates.py index 47562703..ba84f095 100644 --- a/src/common/dates.py +++ b/src/common/dates.py @@ -45,8 +45,7 @@ def parse_datetime(text: str, formats: list[str] = frozenset([ for fmt in formats: try: date = datetime.strptime(text, fmt) # NOQA: DTZ007, timezone is handled below - date = date.astimezone(timezone.utc) if to_utc else date - return date + return date.astimezone(timezone.utc) if to_utc else date except ValueError: pass diff --git a/src/common/endoflife.py b/src/common/endoflife.py index c2181368..9346f428 100644 --- a/src/common/endoflife.py +++ b/src/common/endoflife.py @@ -30,11 +30,12 @@ class AutoConfig: regexes = regexes if isinstance(regexes, list) else [regexes] self.version_patterns = [re.compile(regex) for regex in regexes] - def first_match(self, version: str) -> re.Match: + def first_match(self, version: str) -> re.Match | None: for pattern in self.version_patterns: match = pattern.match(version) if match: return match + return None def render(self, match: re.Match) -> str: return self.version_template.render(**match.groupdict()) @@ -65,10 +66,11 @@ class ProductFrontmatter: return configs - def get_release_date(self, release_cycle: str) -> datetime: + def get_release_date(self, release_cycle: str) -> datetime | None: for release in self.data["releases"]: if release["releaseCycle"] == release_cycle: return release["releaseDate"] + return None class Product: diff --git a/src/common/http.py b/src/common/http.py index 411d2433..d58d6224 100644 --- a/src/common/http.py +++ b/src/common/http.py @@ -32,10 +32,10 @@ def fetch_urls(urls: list[str], data: any = None, headers: dict[str, str] = None if next_max_retries == 0: logging.error(f"Got ChunkedEncodingError while fetching {urls} ({e}), giving up") raise e # So that the function does not get stuck in an infinite loop. - else: - # We could wait a bit before retrying, but it's not clear if it would help. - logging.warning(f"Got ChunkedEncodingError while fetching {urls} ({e}), retrying (remaining retries = {next_max_retries}).") - return fetch_urls(urls, data, headers, next_max_retries, backoff_factor, timeout) + + # We could wait a bit before retrying, but it's not clear if it would help. + logging.warning(f"Got ChunkedEncodingError while fetching {urls} ({e}), retrying (remaining retries = {next_max_retries}).") + return fetch_urls(urls, data, headers, next_max_retries, backoff_factor, timeout) def fetch_url(url: str, data: any = None, headers: dict[str, str] = None,