You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tooling.apache.org by sb...@apache.org on 2025/03/21 14:04:19 UTC

(tooling-trusted-release) branch main updated: Add separate submatches for archive and metadata extensions

This is an automated email from the ASF dual-hosted git repository.

sbp pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tooling-trusted-release.git


The following commit(s) were added to refs/heads/main by this push:
     new f855f29  Add separate submatches for archive and metadata extensions
f855f29 is described below

commit f855f29d3445e95dc5423e24d84fd48811d4db07
Author: Sean B. Palmer <se...@miscoranda.com>
AuthorDate: Fri Mar 21 16:04:09 2025 +0200

    Add separate submatches for archive and metadata extensions
---
 atr/analysis.py | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/atr/analysis.py b/atr/analysis.py
index 97ae070..082585e 100755
--- a/atr/analysis.py
+++ b/atr/analysis.py
@@ -226,14 +226,12 @@ def extension_pattern() -> str:
     # https://learn.microsoft.com/en-us/visualstudio/extensibility/anatomy-of-a-vsix-package?view=vs-2022
     # What's the status of "pom"?
     # We've included "sh", so perhaps we should include "patch"
+    archive_pattern = r"(?P<archive>" + "|".join(["[.]" + re.escape(a) for a in ARCHIVE_SUFFIXES]) + r")"
+    metadata_pattern = r"(?P<metadata>" + "|".join(["[.]" + re.escape(m) for m in METADATA_SUFFIXES]) + r")"
+    archiveonly_pattern = r"(?P<archiveonly>" + "|".join(["[.]" + re.escape(a) for a in ARCHIVE_SUFFIXES]) + r")"
 
-    patterns = []
-    for archive in ARCHIVE_SUFFIXES:
-        for metadatum in METADATA_SUFFIXES:
-            patterns.append(f"[.]{archive}[.]{metadatum}")
-        # This must come after the metadata patterns
-        patterns.append(f"[.]{archive}")
-    return "(" + "|".join(patterns) + ")$"
+    pattern = rf"((?:{archive_pattern}{metadata_pattern})|{archiveonly_pattern})$"
+    return pattern
 
 
 def filename_parse(filename: str, elements: dict[str, str | None]) -> tuple[str, dict[str, list[str]]]:
@@ -250,7 +248,10 @@ def filename_parse(filename: str, elements: dict[str, str | None]) -> tuple[str,
 
     def sub(pattern: str, name: str, replacement: str, filename: str) -> str:
         matches = re.findall(pattern, filename)
-        substitutions[name] = matches
+        if matches:
+            substitutions[name] = matches if isinstance(matches[0], str) else [m[0] for m in matches]
+        else:
+            substitutions[name] = []
         return re.sub(pattern, replacement, filename)
 
     filename = sub(r"apache(?=[_.-])", "core", "α", filename)


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@tooling.apache.org
For additional commands, e-mail: commits-help@tooling.apache.org