This is an automated email from the ASF dual-hosted git repository.
potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/main by this push:
new a1fe77bc82 Refactor: Simplify string generation (#34118)
a1fe77bc82 is described below
commit a1fe77bc820a0dccf170fc123ec7e7280747e145
Author: Miroslav Šedivý <[email protected]>
AuthorDate: Mon Sep 11 13:21:07 2023 +0000
Refactor: Simplify string generation (#34118)
---
.../pre_7_4_0_compatibility/pod_generator.py | 4 +--
scripts/ci/testing/summarize_junit_failures.py | 30 +++++++++-------------
scripts/in_container/run_migration_reference.py | 12 +++------
scripts/in_container/verify_providers.py | 2 +-
.../cncf/kubernetes/test_pod_generator.py | 5 ++--
5 files changed, 22 insertions(+), 31 deletions(-)
diff --git a/airflow/kubernetes/pre_7_4_0_compatibility/pod_generator.py
b/airflow/kubernetes/pre_7_4_0_compatibility/pod_generator.py
index d61a3bc6ce..73671fd25a 100644
--- a/airflow/kubernetes/pre_7_4_0_compatibility/pod_generator.py
+++ b/airflow/kubernetes/pre_7_4_0_compatibility/pod_generator.py
@@ -495,9 +495,9 @@ class PodGenerator:
airflow_worker=airflow_worker,
)
label_strings = [f"{label_id}={label}" for label_id, label in
sorted(labels.items())]
- selector = ",".join(label_strings)
if not airflow_worker: # this filters out KPO pods even when we don't
know the scheduler job id
- selector += ",airflow-worker"
+ label_strings.append("airflow-worker")
+ selector = ",".join(label_strings)
return selector
@classmethod
diff --git a/scripts/ci/testing/summarize_junit_failures.py
b/scripts/ci/testing/summarize_junit_failures.py
index fe5f12f41d..541a27a4f9 100755
--- a/scripts/ci/testing/summarize_junit_failures.py
+++ b/scripts/ci/testing/summarize_junit_failures.py
@@ -81,25 +81,19 @@ def summarize_file(input, test_type, backend):
testsuite = root.find(".//testsuite")
- fail_message = ""
-
- num = int(testsuite.get("failures"))
- if num:
- fail_message = f"{num} failure"
- if num != 1:
- fail_message += "s"
-
- num = int(testsuite.get("errors"))
- if num:
- if fail_message:
- fail_message += ", "
- fail_message += f"{num} error"
- if num != 1:
- fail_message += "s"
-
- if not fail_message:
+ fail_message_parts = []
+
+ num_failures = int(testsuite.get("failures"))
+ if num_failures:
+ fail_message_parts.append(f"{num_failures} failure{'' if num_failures
== 1 else 's'}")
+
+ num_errors = int(testsuite.get("errors"))
+ if num_errors:
+ fail_message_parts.append(f"{num_errors} error{'' if num_errors == 1
else 's'}")
+
+ if not fail_message_parts:
return
- print(f"\n{TEXT_RED}==== {test_type} {backend}: {fail_message}
===={TEXT_RESET}\n")
+ print(f"\n{TEXT_RED}==== {test_type} {backend}: {',
'.join(fail_message_parts)} ===={TEXT_RESET}\n")
for testcase in testsuite.findall(".//testcase[error]"):
case_name = translate_name(testcase)
diff --git a/scripts/in_container/run_migration_reference.py
b/scripts/in_container/run_migration_reference.py
index 6e79b629ed..52c4a5c4d7 100755
--- a/scripts/in_container/run_migration_reference.py
+++ b/scripts/in_container/run_migration_reference.py
@@ -135,22 +135,18 @@ def update_docs(revisions: Iterable[Script]):
)
-def num_to_prefix(idx: int) -> str:
- return f"000{idx+1}"[-4:] + "_"
-
-
def ensure_mod_prefix(mod_name, idx, version):
- prefix = num_to_prefix(idx) + "_".join(version) + "_"
+ parts = [f"{idx + 1:04}", *version]
match = re.match(r"([0-9]+)_([0-9]+)_([0-9]+)_([0-9]+)_(.+)", mod_name)
if match:
# previously standardized file, rebuild the name
- mod_name = match.group(5)
+ parts.append(match.group(5))
else:
# new migration file, standard format
match = re.match(r"([a-z0-9]+)_(.+)", mod_name)
if match:
- mod_name = match.group(2)
- return prefix + mod_name
+ parts.append(match.group(2))
+ return "_".join(parts)
def ensure_filenames_are_sorted(revisions):
diff --git a/scripts/in_container/verify_providers.py
b/scripts/in_container/verify_providers.py
index e51c417991..4675fafb81 100755
--- a/scripts/in_container/verify_providers.py
+++ b/scripts/in_container/verify_providers.py
@@ -575,7 +575,7 @@ def is_camel_case_with_acronyms(s: str):
s = s[1:]
if not s:
return True
- return s != s.lower() and s != s.upper() and "_" not in s and s[0].upper()
== s[0]
+ return s[0].isupper() and not (s.islower() or s.isupper() or "_" in s)
def check_if_classes_are_properly_named(
diff --git a/tests/providers/cncf/kubernetes/test_pod_generator.py
b/tests/providers/cncf/kubernetes/test_pod_generator.py
index b8209cd671..b2c16177cb 100644
--- a/tests/providers/cncf/kubernetes/test_pod_generator.py
+++ b/tests/providers/cncf/kubernetes/test_pod_generator.py
@@ -818,7 +818,8 @@ class TestPodGenerator:
)
labels = PodGenerator.build_labels_for_k8s_executor_pod(**kwargs,
**extra)
assert labels == {**expected, **extra_expected}
- exp_selector = ",".join([f"{k}={v}" for k, v in
sorted(labels.items())])
+ items = [f"{k}={v}" for k, v in sorted(labels.items())]
if "airflow_worker" not in extra:
- exp_selector += ",airflow-worker"
+ items.append("airflow-worker")
+ exp_selector = ",".join(items)
assert PodGenerator.build_selector_for_k8s_executor_pod(**kwargs,
**extra) == exp_selector