Source code for bittensor.core.chain_data.info_base

from dataclasses import dataclass
from typing import Any, TypeVar

from bittensor.core.errors import SubstrateRequestException

T = TypeVar("T", bound="InfoBase")


[docs] @dataclass class InfoBase: """Base dataclass for info objects."""
[docs] @classmethod def from_dict(cls, decoded: dict) -> T: try: return cls._from_dict(decoded) except KeyError as e: raise SubstrateRequestException( f"The {cls} structure is missing {e} from the chain.", )
[docs] @classmethod def list_from_dicts(cls, any_list: list[Any]) -> list[T]: return [cls.from_dict(any_) for any_ in any_list]
@classmethod def _from_dict(cls, decoded: dict) -> T: return cls(**decoded)