animedex.models

Public dataclass / pydantic-model surface for animedex.

The submodules here define the source-attributed result types used throughout the library and the CLI. Per plans/05-python-api.md, these are the stability boundary: backends return them, the renderers consume them, the cache serialises them, and external Python users import them.

The types here are the cross-source common projection: each captures the fields that at least three of the upstreams we target populate (or that are uniquely valuable from one source, like AnimeStreamingLink from Kitsu).

Each backend additionally ships a richer per-backend dataclass under animedex.backends.<name>.models (e.g. AnilistAnime) that exposes the long tail of upstream-specific fields, plus a to_common() mapping into the projection types here. Single- backend commands (animedex anilist show) return the rich type; cross-source aggregate commands (animedex show) return the projection.

The submodules are:

__all__

animedex.models.__all__ = ['AnimedexModel', 'Anime', 'AnimeFormat', 'AnimeRating', 'AnimeSeason', 'AnimeStatus', 'AnimeStreamingLink', 'AnimeTitle', 'AiringScheduleRow', 'AggregateResult', 'AggregateSourceStatus', 'ApiError', 'ArtPost', 'ArtRating', 'AtHomeServer', 'Chapter', 'Character', 'Manga', 'MangaFormat', 'MangaStatus', 'MergedAnime', 'Pagination', 'Quote', 'RateLimit', 'ScheduleCalendarResult', 'SourceTag', 'Staff', 'Studio', 'TraceHit']

Built-in mutable sequence.

If no argument is given, the constructor creates a new empty list. The argument must be an iterable if specified.