microsoft/qlib · error · NotImplementedError
Subclass of CalendarStorage must implement `__getitem__(i: i
Error message
Subclass of CalendarStorage must implement `__getitem__(i: int)`/`__getitem__(s: slice)` method
What it means
Error "Subclass of CalendarStorage must implement `__getitem__(i: int)`/`__getitem__(s: slice)` method" thrown in microsoft/qlib.
Source
Thrown at qlib/data/storage/storage.py:175
@overload
def __getitem__(self, s: slice) -> Iterable[CalVT]:
"""x.__getitem__(slice(start: int, stop: int, step: int)) <==> x[start:stop:step]"""
@overload
def __getitem__(self, i: int) -> CalVT:
"""x.__getitem__(i) <==> x[i]"""
def __getitem__(self, i) -> CalVT:
"""
Raises
------
ValueError
If the data(storage) does not exist, raise ValueError
"""
raise NotImplementedError(
"Subclass of CalendarStorage must implement `__getitem__(i: int)`/`__getitem__(s: slice)` method"
)
def __len__(self) -> int:
"""
Raises
------
ValueError
If the data(storage) does not exist, raise ValueError
"""
raise NotImplementedError("Subclass of CalendarStorage must implement `__len__` method")
class InstrumentStorage(BaseStorage):
def __init__(self, market: str, freq: str, **kwargs):
self.market = marketView on GitHub (pinned to 79633dd950)
Solutions
- Implement `__getitem__` (both int and slice forms) in your CalendarStorage subclass.
- Use the built-in FileCalendarStorage which implements `__getitem__`.
When it happens
Trigger: This error is raised at qlib/data/storage/storage.py:175 when the guard condition fails: "Subclass of CalendarStorage must implement `__getitem__` 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/afe5816f1a326387.
Report an issue: GitHub.