INNER CODE UNIT · Python
matches
libriscv/godot-sandbox · scripts/demo_compat.py:157
def matches(relative: str, pattern: str) -> bool:
return fnmatch.fnmatch(relative, pattern) or fnmatch.fnmatch(relative, f"*{pattern}*")
def discover_projects(
root: Path, patterns: Sequence[str], excludes: Sequence[str] = ()
) -> list[Path]:
if not root.is_dir():
raise HarnessError(f"demo root does not exist: {root}")
projects = sorted(path.parent for path in root.rglob("project.godot"))
if patterns:
projects = [
project
for project in projects
if any(matches(project.relative_to(root).as_posix(), pattern) for pattern in patterns)
]
if excludes:
projects = [