microsoft/qlib · error · NotImplementedError

Subclass of InstrumentStorage must implement `__delitem__` m

Error message

Subclass of InstrumentStorage must implement `__delitem__` method

What it means

Error "Subclass of InstrumentStorage must implement `__delitem__` method" thrown in microsoft/qlib.

Source

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

            In either case, this is followed by: for k, v in F.items(): D[k] = v

        """
        raise NotImplementedError("Subclass of InstrumentStorage must implement `update` method")

    def __setitem__(self, k: InstKT, v: InstVT) -> None:
        """Set self[key] to value."""
        raise NotImplementedError("Subclass of InstrumentStorage must implement `__setitem__` method")

    def __delitem__(self, k: InstKT) -> None:
        """Delete self[key].

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

    def __getitem__(self, k: InstKT) -> InstVT:
        """x.__getitem__(k) <==> x[k]"""
        raise NotImplementedError("Subclass of InstrumentStorage must implement `__getitem__` method")

    def __len__(self) -> int:
        """

        Raises
        ------
        ValueError
            If the data(storage) does not exist, raise ValueError

        """
        raise NotImplementedError("Subclass of InstrumentStorage must implement `__len__`  method")


class FeatureStorage(BaseStorage):

View on GitHub (pinned to 79633dd950)

Solutions

  1. Implement the `__delitem__` method in your InstrumentStorage subclass.
  2. Use the built-in FileInstrumentStorage which implements `__delitem__`.

When it happens

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