51 lines
998 B
Python
51 lines
998 B
Python
import typing
|
|
from typing import Required, TypedDict
|
|
|
|
Claims = dict[str, list[dict[str, typing.Any]]]
|
|
Sitelinks = dict[str, dict[str, typing.Any]]
|
|
|
|
|
|
class EmptyDict(TypedDict):
|
|
"""Empty dict."""
|
|
|
|
pass
|
|
|
|
|
|
class Entity(TypedDict, total=False):
|
|
"""Wikidata Entity."""
|
|
|
|
id: str
|
|
labels: dict[str, typing.Any]
|
|
descriptions: dict[str, typing.Any]
|
|
claims: Claims
|
|
lastrevid: int
|
|
sitelinks: Sitelinks
|
|
modified: str
|
|
redirects: dict[str, typing.Any]
|
|
aliases: dict[str, list[dict[str, typing.Any]]]
|
|
|
|
|
|
class CatalogDict(TypedDict, total=False):
|
|
"""Catalog record from institution web site."""
|
|
|
|
institution: str | None
|
|
url: str | None
|
|
ids: set[str]
|
|
detail: list[dict[str, str]]
|
|
description: str
|
|
keywords: list[str]
|
|
|
|
|
|
CallParams = dict[str, str | int]
|
|
|
|
|
|
class HumanDict(TypedDict, total=False):
|
|
"""Human."""
|
|
|
|
qid: Required[str]
|
|
year_of_birth: Required[int]
|
|
year_of_death: Required[int]
|
|
|
|
label: str
|
|
description: str
|