Skip to content

Commit 6b6fe1f

Browse files
committed
Support regex in exclude patterns
1 parent af78333 commit 6b6fe1f

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

Scripts/find_dependencies.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
import hashlib
3535
import json
3636
import os
37+
import re
3738
import subprocess as sp # nosec B404
3839
import sys
3940

@@ -101,7 +102,9 @@ def get_inputs(specs_wf: dict, device=""):
101102
if device and dev["name"] != device:
102103
continue
103104
list_inputs += [
104-
format_table_name(i["description"], i["subspec"], i["origin"]) for i in dev["inputs"] if i["origin"].startswith("AOD")
105+
format_table_name(i["description"], i["subspec"], i["origin"])
106+
for i in dev["inputs"]
107+
if i["origin"].startswith("AOD")
105108
]
106109
return list(dict.fromkeys(list_inputs)) # Remove duplicities
107110

@@ -115,7 +118,9 @@ def get_outputs(specs_wf: dict, device=""):
115118
if device and dev["name"] != device:
116119
continue
117120
list_outputs += [
118-
format_table_name(i["description"], i["subspec"], i["origin"]) for i in dev["outputs"] if i["origin"].startswith("AOD")
121+
format_table_name(i["description"], i["subspec"], i["origin"])
122+
for i in dev["outputs"]
123+
if i["origin"].startswith("AOD")
119124
]
120125
return list(dict.fromkeys(list_outputs)) # Remove duplicities
121126

@@ -229,7 +234,7 @@ def get_tree_for_table(tab: str, dic_wf_all: dict, dic_wf_tree=None, case_sensit
229234
for p in producers:
230235
get_tree_for_workflow(p, dic_wf_all, dic_wf_tree, case_sensitive, 0, levels_max, reverse)
231236
else:
232-
print(f'No {"consumers" if reverse else "producers"} found')
237+
print(f"No {'consumers' if reverse else 'producers'} found")
233238
return dic_wf_tree
234239

235240

@@ -272,7 +277,7 @@ def main():
272277
dest="exclude",
273278
type=str,
274279
nargs="+",
275-
help="tables and workflows to exclude",
280+
help="name patterns of tables and workflows to exclude",
276281
)
277282
parser.add_argument(
278283
"-l",
@@ -299,7 +304,7 @@ def main():
299304
dic_wf_all_simple = {}
300305
for wf, dic_wf in dic_wf_all_full.items():
301306
# Skip excluded workflows
302-
if list_exclude and wf in list_exclude:
307+
if list_exclude and any(re.search(pattern, wf) for pattern in list_exclude):
303308
continue
304309
dic_wf_all_simple[wf] = {}
305310
list_dev = get_devices(dic_wf)
@@ -309,8 +314,8 @@ def main():
309314
list_outputs = get_outputs(dic_wf, dev)
310315
# Skip excluded tables
311316
if list_exclude:
312-
list_inputs = [i for i in list_inputs if i not in list_exclude]
313-
list_outputs = [o for o in list_outputs if o not in list_exclude]
317+
list_inputs = [i for i in list_inputs if not any(re.search(pattern, i) for pattern in list_exclude)]
318+
list_outputs = [o for o in list_outputs if not any(re.search(pattern, o) for pattern in list_exclude)]
314319
dic_wf_all_simple[wf][dev]["inputs"] = list_inputs
315320
dic_wf_all_simple[wf][dev]["outputs"] = list_outputs
316321
# print_workflows(dic_wf_all_simple)

0 commit comments

Comments
 (0)