animedex.backends.ghibli.models

Rich Studio Ghibli API dataclasses.

The high-level Ghibli backend reads a vendored JSON snapshot from animedex/data/ghibli.json. The snapshot mirrors the public Studio Ghibli API’s five record families: films, people, locations, species, and vehicles. Every rich type inherits from BackendRichModel so a snapshot record round-trips with every upstream key preserved.

Films project naturally onto Anime and people project onto Character. Locations, vehicles, and species currently have no cross-source common type and render through the generic source-attributed rich-model path.

GhibliFilm

class animedex.backends.ghibli.models.GhibliFilm(*, id: str, title: str, original_title: str | None = None, original_title_romanised: str | None = None, image: str | None = None, movie_banner: str | None = None, description: str | None = None, director: str | None = None, producer: str | None = None, release_date: str | None = None, running_time: str | None = None, rt_score: str | None = None, people: List[str] = [], species: List[str] = [], locations: List[str] = [], vehicles: List[str] = [], url: str | None = None, source_tag: SourceTag | None = None, **extra_data: Any)[source]

Bases: BackendRichModel

One film record from the Studio Ghibli API snapshot.

id: str
title: str
original_title: str | None
original_title_romanised: str | None
image: str | None
movie_banner: str | None
description: str | None
director: str | None
producer: str | None
release_date: str | None
running_time: str | None
rt_score: str | None
people: List[str]
species: List[str]
locations: List[str]
vehicles: List[str]
url: str | None
source_tag: SourceTag | None
to_common() Anime[source]

Project this film onto the cross-source anime shape.

Returns:

Cross-source projection.

Return type:

animedex.models.anime.Anime

GhibliPerson

class animedex.backends.ghibli.models.GhibliPerson(*, id: str, name: str, gender: str | None = None, age: str | None = None, eye_color: str | None = None, hair_color: str | None = None, films: List[str] = [], species: str | None = None, url: str | None = None, source_tag: SourceTag | None = None, **extra_data: Any)[source]

Bases: BackendRichModel

One person / character record from the snapshot.

id: str
name: str
gender: str | None
age: str | None
eye_color: str | None
hair_color: str | None
films: List[str]
species: str | None
url: str | None
source_tag: SourceTag | None
to_common() Character[source]

Project this person onto the cross-source character shape.

Returns:

Cross-source projection.

Return type:

animedex.models.character.Character

GhibliLocation

class animedex.backends.ghibli.models.GhibliLocation(*, id: str, name: str, climate: str | None = None, terrain: str | None = None, surface_water: str | None = None, residents: List[str] = [], films: List[str] = [], url: str | None = None, source_tag: SourceTag | None = None, **extra_data: Any)[source]

Bases: BackendRichModel

One location record from the snapshot.

id: str
name: str
climate: str | None
terrain: str | None
surface_water: str | None
residents: List[str]
films: List[str]
url: str | None
source_tag: SourceTag | None

GhibliVehicle

class animedex.backends.ghibli.models.GhibliVehicle(*, id: str, name: str, description: str | None = None, vehicle_class: str | None = None, length: str | None = None, pilot: str | None = None, films: List[str] = [], url: str | None = None, source_tag: SourceTag | None = None, **extra_data: Any)[source]

Bases: BackendRichModel

One vehicle record from the snapshot.

id: str
name: str
description: str | None
vehicle_class: str | None
length: str | None
pilot: str | None
films: List[str]
url: str | None
source_tag: SourceTag | None

GhibliSpecies

class animedex.backends.ghibli.models.GhibliSpecies(*, id: str, name: str, classification: str | None = None, eye_colors: str | None = None, hair_colors: str | None = None, people: List[str] = [], films: List[str] = [], url: str | None = None, source_tag: SourceTag | None = None, **extra_data: Any)[source]

Bases: BackendRichModel

One species record from the snapshot.

id: str
name: str
classification: str | None
eye_colors: str | None
hair_colors: str | None
people: List[str]
films: List[str]
url: str | None
source_tag: SourceTag | None

selftest

animedex.backends.ghibli.models.selftest() bool[source]

Smoke-test the Ghibli rich models.

Validates representative film, person, location, vehicle, and species records; confirms film and person common projections carry Ghibli source attribution.

Returns:

True on success; raises on schema drift.

Return type:

bool