microsoft/qlib · error · NotImplementedError
Subclass of InstrumentStorage must implement `data` method
Error message
Subclass of InstrumentStorage must implement `data` method
What it means
Error "Subclass of InstrumentStorage must implement `data` method" thrown in microsoft/qlib.
Source
Thrown at qlib/data/storage/storage.py:49
------
ValueError
If the data(storage) does not exist, raise ValueError
'''
raise NotImplementedError("Subclass of CalendarStorage must implement `data` method")
class UserInstrumentStorage(InstrumentStorage):
@property
def data(self) -> Dict[InstKT, InstVT]:
'''get all data
Raises
------
ValueError
If the data(storage) does not exist, raise ValueError
'''
raise NotImplementedError("Subclass of InstrumentStorage must implement `data` method")
class UserFeatureStorage(FeatureStorage):
def __getitem__(self, s: slice) -> pd.Series:
'''x.__getitem__(slice(start: int, stop: int, step: int)) <==> x[start:stop:step]
Returns
-------
pd.Series(values, index=pd.RangeIndex(start, len(values))
Notes
-------
if data(storage) does not exist:
if isinstance(i, int):
return (None, None)
if isinstance(i, slice):
# return empty pd.SeriesView on GitHub (pinned to 79633dd950)
Solutions
- Implement the `data` method in your InstrumentStorage subclass.
- Use the built-in FileInstrumentStorage which implements `data`.
When it happens
Trigger: This error is raised at qlib/data/storage/storage.py:49 when the guard condition fails: "Subclass of InstrumentStorage must implement `data` method". It triggers when the code path receives input or a state that violates the precondition checked at this point — e.g. an unimplemented abstract method being called, an unsupported argument type/value, or an invalid configuration. To avoid it, satisfy the documented precondition before this call: implement the required method in your subclass, or pass a supported value of the expected type as described by the message.
Common situations: See trigger scenarios.
AI-assisted analysis of microsoft/qlib@79633dd950 (2026-08-15).
Data as JSON: /api/errors/b1fba786ad715909.
Report an issue: GitHub.