fix: recursive basename search in data dir fallback

This commit is contained in:
Abdessamad Derraz
2026-03-29 11:18:03 +02:00
parent 44145d41cd
commit 5ac48ef703
+10 -6
View File
@@ -458,15 +458,19 @@ def resolve_local_file(
if not cache_dir or not os.path.isdir(cache_dir): if not cache_dir or not os.path.isdir(cache_dir):
continue continue
for try_name in names_to_try: for try_name in names_to_try:
# Exact relative path
candidate = os.path.join(cache_dir, try_name) candidate = os.path.join(cache_dir, try_name)
if os.path.isfile(candidate): if os.path.isfile(candidate):
return candidate, "data_dir" return candidate, "data_dir"
if "/" in try_name: # Basename walk: find file anywhere in cache tree
basename_candidate = os.path.join( basename_targets = {
cache_dir, try_name.rsplit("/", 1)[-1], (n.rsplit("/", 1)[-1] if "/" in n else n)
) for n in names_to_try
if os.path.isfile(basename_candidate): }
return basename_candidate, "data_dir" for root, _dirs, fnames in os.walk(cache_dir):
for fn in fnames:
if fn in basename_targets:
return os.path.join(root, fn), "data_dir"
return None, "not_found" return None, "not_found"