Source code for kgdata.wikidata.models.wdentitymetadata
from __future__ import annotations
import orjson
from dataclasses import dataclass
from typing import Dict, List, Literal, Optional
from kgdata.wikidata.models.multilingual import (
MultiLingualString,
MultiLingualStringList,
)
from kgdata.wikidata.models.wdstatement import WDStatement
from kgdata.wikidata.models.wdvalue import WDValue
# A stripped wikidata entity without its properties (except for instanceof, subclassof, subpropertyof)
[docs]@dataclass
class WDEntityMetadata:
__slots__ = (
"id",
"label",
"description",
"aliases",
"instanceof",
"subclassof",
"subpropertyof",
)
id: str
label: MultiLingualString
description: MultiLingualString
aliases: MultiLingualStringList
instanceof: List[str]
subclassof: List[str]
subpropertyof: List[str]
[docs] def to_tuple(self):
return (
self.id,
self.label.to_tuple(),
self.description.to_tuple(),
self.aliases.to_tuple(),
self.instanceof,
self.subclassof,
self.subpropertyof,
)
[docs] @staticmethod
def from_tuple(t):
t[1] = MultiLingualString(t[1][0], t[1][1])
t[2] = MultiLingualString(t[2][0], t[2][1])
t[3] = MultiLingualStringList(t[3][0], t[3][1])
return WDEntityMetadata(t[0], t[1], t[2], t[3], t[4], t[5], t[6])