microsoft/qlib · error · NotImplementedError

Subclass of CalendarStorage must implement `clear` method

Error message

Subclass of CalendarStorage must implement `clear` method

What it means

Error "Subclass of CalendarStorage must implement `clear` method" thrown in microsoft/qlib.

Source

Thrown at qlib/data/storage/storage.py:106

    def __init__(self, freq: str, future: bool, **kwargs):
        self.freq = freq
        self.future = future
        self.kwargs = kwargs

    @property
    def data(self) -> Iterable[CalVT]:
        """get all data

        Raises
        ------
        ValueError
            If the data(storage) does not exist, raise ValueError
        """
        raise NotImplementedError("Subclass of CalendarStorage must implement `data` method")

    def clear(self) -> None:
        raise NotImplementedError("Subclass of CalendarStorage must implement `clear` method")

    def extend(self, iterable: Iterable[CalVT]) -> None:
        raise NotImplementedError("Subclass of CalendarStorage must implement `extend` method")

    def index(self, value: CalVT) -> int:
        """
        Raises
        ------
        ValueError
            If the data(storage) does not exist, raise ValueError
        """
        raise NotImplementedError("Subclass of CalendarStorage must implement `index` method")

    def insert(self, index: int, value: CalVT) -> None:
        raise NotImplementedError("Subclass of CalendarStorage must implement `insert` method")

    def remove(self, value: CalVT) -> None:
        raise NotImplementedError("Subclass of CalendarStorage must implement `remove` method")

View on GitHub (pinned to 79633dd950)

Solutions

  1. Implement the `clear` method in your CalendarStorage subclass.
  2. Use the built-in FileCalendarStorage which implements `clear`.

When it happens

Trigger: This error is raised at qlib/data/storage/storage.py:106 when the guard condition fails: "Subclass of CalendarStorage must implement `clear` 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/c0e24f3704f4ee7b. Report an issue: GitHub.