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

Reply via email to