Skip to content

Commit 4385e06

Browse files
committed
Fix(storage): port uppercase fallback from #2053 to resolve macOS CI failure
1 parent fc88614 commit 4385e06

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

qlib/data/storage/file_storage.py

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,29 @@ class FileFeatureStorage(FileStorageMixin, FeatureStorage):
286286
def __init__(self, instrument: str, field: str, freq: str, provider_uri: dict = None, **kwargs):
287287
super(FileFeatureStorage, self).__init__(instrument, field, freq, **kwargs)
288288
self._provider_uri = None if provider_uri is None else C.DataPathManager.format_provider_uri(provider_uri)
289-
self.file_name = f"{instrument.lower()}/{field.lower()}.{freq.lower()}.bin"
289+
290+
base_uri = self.dpm.get_data_uri(self.freq) # Assuming dpm is available and get_data_uri provides the base path
291+
292+
# Candidate 1: Original Case (Preferred for correct behavior on Linux)
293+
name_orig = f"{instrument}/{field.lower()}.{freq.lower()}.bin"
294+
if (base_uri / name_orig).exists():
295+
self.file_name = name_orig
296+
return
297+
298+
# Candidate 2: Uppercase (Fix for lowercase input finding uppercase folder on case-sensitive OS)
299+
name_upper = f"{instrument.upper()}/{field.lower()}.{freq.lower()}.bin"
300+
if (base_uri / name_upper).exists():
301+
self.file_name = name_upper
302+
return
303+
304+
# Candidate 3: Lowercase (Backward Compatibility)
305+
name_lower = f"{instrument.lower()}/{field.lower()}.{freq.lower()}.bin"
306+
if (base_uri / name_lower).exists():
307+
self.file_name = name_lower
308+
return
309+
310+
# Default: Original Case (For new files)
311+
self.file_name = name_orig
290312

291313
def clear(self):
292314
with self.uri.open("wb") as _:

0 commit comments

Comments
 (0)