INNER CODE UNIT · Python
resolve_ext
keiyoushi/extensions-source · .github/scripts/generate-build-matrices.py:117
def resolve_ext(multisrcs: set[str], libs: set[str]) -> set[tuple[str, str]]:
"""
returns all extensions which depend on any of the
passed multisrcs or libs
"""
if not multisrcs and not libs:
return set()
multisrc_pattern = '|'.join(map(re.escape, multisrcs)) if multisrcs else None
lib_pattern = '|'.join(map(re.escape, libs)) if libs else None
patterns = []
if multisrc_pattern:
patterns.append(rf"theme\s*=\s*['\"]({multisrc_pattern})['\"]")
if lib_pattern:
patterns.append(rf"project\([\"']:(?:lib):({lib_pattern})[\"']\)")
regex = re.compile('|'.join(patterns))