fix(storage): Fix FileFeatureStorage path resolution on case-sensitive file systems #2082
+117
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #2053: FileFeatureStorage incorrectly lowercases instrument directory names, causing failures on case-sensitive file systems.
What I changed
qlib/data/storage/file_storage.pyto resolve instrument directories using the correct filesystem case when available.tests/storage_tests/test_issue_2053.pyto validate behavior on case-sensitive systems.How I tested
test_issue_2053.py) that reproduces the issue by creating an uppercase instrument directory.FileFeatureStorageresolves paths correctly after the fix.Before / After
Before
FileFeatureStorage(instrument="AAPL").uri→.../aapl/close.day.bin(fails if directory isAAPL)After
FileFeatureStorage(instrument="AAPL").uri→.../AAPL/close.day.binFixes #2053