Source code for kgdata.wikidata.models.wdstatement

from dataclasses import dataclass
from typing import Dict, List, Literal

from kgdata.wikidata.models.wdvalue import WDValueKind, WDValue


[docs]@dataclass class WDStatement: __slots__ = ("value", "qualifiers", "qualifiers_order", "rank") value: WDValueKind # mapping from qualifier id into data value qualifiers: Dict[str, List[WDValueKind]] # list of qualifiers id that records the order (as dict lacks of order) qualifiers_order: List[str] # rank of a statement rank: Literal["normal", "deprecated", "preferred"]
[docs] @staticmethod def from_dict(o): o["qualifiers"] = { k: [WDValue(**v) for v in vals] for k, vals in o["qualifiers"].items() } o["value"] = WDValue(**o["value"]) return WDStatement(**o)
[docs] def to_dict(self): return { "value": self.value.to_dict(), "qualifiers": { k: [v.to_dict() for v in vals] for k, vals in self.qualifiers.items() }, "qualifiers_order": self.qualifiers_order, "rank": self.rank, }