animedex.backends.ann.models
Rich ANN Encyclopedia dataclasses.
ANN’s public encyclopedia API is XML-only. The high-level backend
parses XML into a generic node tree first, then validates the
backend-specific rich models below. A 200 response carrying
<warning>... is an empty-result signal and is preserved on the
rich response models instead of being raised as an error.
AnnXmlNode
- class animedex.backends.ann.models.AnnXmlNode(*, _tag: str, _attrs: ~typing.Dict[str, str] = <factory>, _text: str | None = None, _tail: str | None = None, _children: ~typing.List[~animedex.backends.ann.models.AnnXmlNode] = <factory>, _children_by_tag: ~typing.Dict[str, ~typing.List[~animedex.backends.ann.models.AnnXmlNode]] = <factory>, **extra_data: ~typing.Any)[source]
Bases:
BackendRichModelA lossless XML node produced by
animedex.render.xml.- children: List['AnnXmlNode']
- classmethod from_adapter(node: Dict[str, Any]) AnnXmlNode[source]
Build an
AnnXmlNodefrom the generic XML adapter shape.
- by_tag(tag: str) List[AnnXmlNode][source]
Return child nodes with
tagfrom the grouped index.
AnnInfo
- class animedex.backends.ann.models.AnnInfo(*, attrs: Dict[str, str] = {}, text: str | None = None, children: List[AnnXmlNode] = [], **extra_data: Any)[source]
Bases:
BackendRichModelOne ANN
<info>node.- children: List[AnnXmlNode]
AnnPersonRef
AnnCompanyRef
AnnStaff
- class animedex.backends.ann.models.AnnStaff(*, attrs: Dict[str, str] = {}, task: str | None = None, person: AnnPersonRef | None = None, **extra_data: Any)[source]
Bases:
BackendRichModelOne ANN
<staff>row.- person: AnnPersonRef | None
AnnCast
- class animedex.backends.ann.models.AnnCast(*, attrs: Dict[str, str] = {}, role: str | None = None, person: AnnPersonRef | None = None, **extra_data: Any)[source]
Bases:
BackendRichModelOne ANN
<cast>row.- person: AnnPersonRef | None
AnnCredit
AnnLink
AnnEpisode
AnnRelation
AnnAnime
- class animedex.backends.ann.models.AnnAnime(*, id: str, gid: str | None = None, type: str | None = None, name: str | None = None, precision: str | None = None, generated_on: str | None = None, info: List[AnnInfo] = [], staff: List[AnnStaff] = [], cast: List[AnnCast] = [], credits: List[AnnCredit] = [], episodes: List[AnnEpisode] = [], reviews: List[AnnLink] = [], releases: List[AnnLink] = [], news: List[AnnLink] = [], relations: List[AnnRelation] = [], raw: AnnXmlNode, source_tag: SourceTag | None = None, **extra_data: Any)[source]
Bases:
BackendRichModelOne ANN
<anime>encyclopedia entry.- episodes: List[AnnEpisode]
- relations: List[AnnRelation]
- raw: AnnXmlNode
AnnAnimeResponse
- class animedex.backends.ann.models.AnnAnimeResponse(*, warnings: List[str] = [], anime: List[AnnAnime] = [], raw: AnnXmlNode, source_tag: SourceTag | None = None, **extra_data: Any)[source]
Bases:
BackendRichModelANN
api.xmlresponse containing anime entries and warnings.- raw: AnnXmlNode
AnnReportItem
AnnReport
- class animedex.backends.ann.models.AnnReport(*, attrs: Dict[str, str] = {}, args: Dict[str, str] = {}, items: List[AnnReportItem] = [], warnings: List[str] = [], raw: AnnXmlNode, source_tag: SourceTag | None = None, **extra_data: Any)[source]
Bases:
BackendRichModelANN
reports.xmlresponse.- items: List[AnnReportItem]
- raw: AnnXmlNode
anime_from_node
anime_response_from_root
- animedex.backends.ann.models.anime_response_from_root(root: AnnXmlNode, source_tag: SourceTag) AnnAnimeResponse[source]
Build an
AnnAnimeResponsefrom an ANN<ann>root.