From 780d1e05606a54bc455edd9525b2887f6876288a Mon Sep 17 00:00:00 2001 From: Christian Zentgraf Date: Mon, 3 Nov 2025 15:13:30 -0500 Subject: [PATCH] fix(ci): License check on yml files --- .../scripts/license-header.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/presto-native-execution/scripts/license-header.py b/presto-native-execution/scripts/license-header.py index 14c34075ceed1..6c5a71d06004a 100755 --- a/presto-native-execution/scripts/license-header.py +++ b/presto-native-execution/scripts/license-header.py @@ -109,10 +109,6 @@ def wrapper_hash(header, args): } ) -file_pattern = regex.compile( - "|".join(["^" + fnmatch.translate(type) + "$" for type in file_types.keys()]) -) - def get_filename(filename): return os.path.basename(filename) @@ -155,14 +151,25 @@ def main(): header_text = file_lines(args.header) + # fnmatch.translate can generate "\z" in the regex pattern + # which causes an error when compiled by regex: + # regex._regex_core.error: bad escape \z at position 23 + # Usually, the pattern is generated with "\Z" which works fine. + raw_pattern = "|".join( + ["^" + fnmatch.translate(type) + "$" for type in file_types.keys()] + ) + pattern = raw_pattern.replace(r"\z", "\\Z") + message(log_to, "File pattern : " + pattern) + file_pattern = regex.compile(pattern) + if len(args.files) == 1 and args.files[0] == "-": files = [file.strip() for file in sys.stdin.readlines()] else: files = args.files - for filepath in files: filename = get_filename(filepath) + message(log_to, "File processed : " + filename) matched = file_pattern.match(filename) if not matched: