anime_list_apis.models package

Submodules

anime_list_apis.models.CacheAble module

class anime_list_apis.models.CacheAble.CacheAble

Bases: anime_list_apis.models.Serializable.Serializable

Class that defines methods needed to be implemented by a cache-able object

generate_tag(site_type: anime_list_apis.models.attributes.Id.IdType) → str

Generates a tag/identifier for storing in the cache :param site_type: The site type for which to generate the tag :return: The generated tag

get_id() → anime_list_apis.models.attributes.Id.Id

Retrieves the cache entry’s ID :return: The ID

get_media_type() → anime_list_apis.models.attributes.MediaType.MediaType

Retrieves the media type :return: The media type

get_model_type() → anime_list_apis.models.CacheAble.CacheModelType

Retrieves the cache model type :return: The model type

get_username() → Optional[str]

Retrieves the username, if applicable. Else None :return: The username or None if not applicable

class anime_list_apis.models.CacheAble.CacheModelType

Bases: enum.Enum

An enumeration that keeps track of different cache-able model types

DATA = 0
MEDIA_DATA = 1
MEDIA_LIST_ENTRY = 3
MEDIA_USER_DATA = 2

anime_list_apis.models.MediaData module

class anime_list_apis.models.MediaData.AnimeData(_format: anime_list_apis.models.attributes.MediaFormat.MediaFormat, _id: anime_list_apis.models.attributes.Id.Id, title: anime_list_apis.models.attributes.Title.Title, relations: List[anime_list_apis.models.attributes.Relation.Relation], releasing_status: anime_list_apis.models.attributes.ReleasingStatus.ReleasingStatus, releasing_start: Optional[anime_list_apis.models.attributes.Date.Date], releasing_end: Optional[anime_list_apis.models.attributes.Date.Date], cover_url: Optional[str], episode_count: Optional[int], episode_duration: Optional[int])

Bases: anime_list_apis.models.MediaData.MediaData

Class that models anime data

__init__(_format: anime_list_apis.models.attributes.MediaFormat.MediaFormat, _id: anime_list_apis.models.attributes.Id.Id, title: anime_list_apis.models.attributes.Title.Title, relations: List[anime_list_apis.models.attributes.Relation.Relation], releasing_status: anime_list_apis.models.attributes.ReleasingStatus.ReleasingStatus, releasing_start: Optional[anime_list_apis.models.attributes.Date.Date], releasing_end: Optional[anime_list_apis.models.attributes.Date.Date], cover_url: Optional[str], episode_count: Optional[int], episode_duration: Optional[int])

Initializes the Anime Data object and checks for type issues :param _format: The media format :param _id: The ID of the anime :param title: The title of the anime :param relations: The relations of the anime :param releasing_status: The airing status of the anime :param releasing_start: The day the anime started airing :param releasing_end: The day the last episode aired :param episode_count: The amount of episodes of the anime :param episode_duration: The duration of the episodes in minutes :param cover_url: An URL pointing to a cover image for the anime :raises TypeError: If any of the parameters has a wrong type

class anime_list_apis.models.MediaData.MangaData(_format: anime_list_apis.models.attributes.MediaFormat.MediaFormat, _id: anime_list_apis.models.attributes.Id.Id, title: anime_list_apis.models.attributes.Title.Title, relations: List[anime_list_apis.models.attributes.Relation.Relation], releasing_status: anime_list_apis.models.attributes.ReleasingStatus.ReleasingStatus, releasing_start: Optional[anime_list_apis.models.attributes.Date.Date], releasing_end: Optional[anime_list_apis.models.attributes.Date.Date], cover_url: Optional[str], chapter_count: Optional[int], volume_count: Optional[int])

Bases: anime_list_apis.models.MediaData.MediaData

Class that models manga data

__init__(_format: anime_list_apis.models.attributes.MediaFormat.MediaFormat, _id: anime_list_apis.models.attributes.Id.Id, title: anime_list_apis.models.attributes.Title.Title, relations: List[anime_list_apis.models.attributes.Relation.Relation], releasing_status: anime_list_apis.models.attributes.ReleasingStatus.ReleasingStatus, releasing_start: Optional[anime_list_apis.models.attributes.Date.Date], releasing_end: Optional[anime_list_apis.models.attributes.Date.Date], cover_url: Optional[str], chapter_count: Optional[int], volume_count: Optional[int])

Initializes the Manga Data object and checks for type issues :param _format: The media format :param _id: The ID of the manga :param title: The title of the manga :param relations: The relations of the manga :param releasing_status: The releasing status of the manga :param releasing_start: The day the manga started releasing :param releasing_end: The day the last chapter/volume released :param chapter_count: The total amount of chapters of this manga :param volume_count: The total amount of volumes of this manga :param cover_url: An URL pointing to a cover image for the manga :raises TypeError: If any of the parameters has a wrong type

class anime_list_apis.models.MediaData.MediaData(media_type: anime_list_apis.models.attributes.MediaType.MediaType, _format: anime_list_apis.models.attributes.MediaFormat.MediaFormat, _id: anime_list_apis.models.attributes.Id.Id, title: anime_list_apis.models.attributes.Title.Title, relations: List[anime_list_apis.models.attributes.Relation.Relation], releasing_status: anime_list_apis.models.attributes.ReleasingStatus.ReleasingStatus, releasing_start: Optional[anime_list_apis.models.attributes.Date.Date], releasing_end: Optional[anime_list_apis.models.attributes.Date.Date], cover_url: Optional[str])

Bases: anime_list_apis.models.Serializable.MediaSerializable, anime_list_apis.models.CacheAble.CacheAble

Class that models user-independent media data

__init__(media_type: anime_list_apis.models.attributes.MediaType.MediaType, _format: anime_list_apis.models.attributes.MediaFormat.MediaFormat, _id: anime_list_apis.models.attributes.Id.Id, title: anime_list_apis.models.attributes.Title.Title, relations: List[anime_list_apis.models.attributes.Relation.Relation], releasing_status: anime_list_apis.models.attributes.ReleasingStatus.ReleasingStatus, releasing_start: Optional[anime_list_apis.models.attributes.Date.Date], releasing_end: Optional[anime_list_apis.models.attributes.Date.Date], cover_url: Optional[str])

Initializes the Media Data object and checks for type issues Some values may be None, for example if a media has not completed releasing yet. This constructor initializes all common values of all media types. :param media_type: The type of media :param _format: The media format :param _id: The ID of the media :param title: The title of the media :param relations: The relations of the media to other media :param releasing_status: The releasing status of the media :param releasing_start: The day the media started releasing :param releasing_end: The day the last content was released :param cover_url: An URL pointing to a cover image for the anime :raises TypeError: If any of the parameters has a wrong type

classmethod get_class_for_media_type(media_type: anime_list_apis.models.attributes.MediaType.MediaType)

Maps a class to a media type :param media_type: The media type :return: The class mapped to that media type

get_id() → anime_list_apis.models.attributes.Id.Id

Retrieves the cache entry’s ID :return: The ID

get_media_type() → anime_list_apis.models.attributes.MediaType.MediaType

Retrieves the media type :return: The media type

get_model_type() → anime_list_apis.models.CacheAble.CacheModelType

Retrieves the cache model type :return: The model type

get_username() → Optional[str]

Retrieves the username, if applicable. Else None :return: The username or None if not applicable

anime_list_apis.models.MediaListEntry module

class anime_list_apis.models.MediaListEntry.AnimeListEntry(anime_data: anime_list_apis.models.MediaData.AnimeData, user_data: anime_list_apis.models.MediaUserData.AnimeUserData)

Bases: anime_list_apis.models.MediaListEntry.MediaListEntry

Class that models a user’s anime list entry

__init__(anime_data: anime_list_apis.models.MediaData.AnimeData, user_data: anime_list_apis.models.MediaUserData.AnimeUserData)

Initializes the anime list entry. :param anime_data: The anime data :param user_data: The user data :raises TypeError: If any of the parameters has a wrong type

get_media_data() → anime_list_apis.models.MediaData.AnimeData

Generates a new AnimeData object from the internal representation :return: The generated AnimeData object :raises TypeError: If any of the internal parameters has a wrong type

get_user_data() → anime_list_apis.models.MediaUserData.AnimeUserData

Generates a new AnimeUserData object from the internal representation :return: The generated AnimeUserData object :raises TypeError: If any of the internal parameters has a wrong type

class anime_list_apis.models.MediaListEntry.MangaListEntry(manga_data: anime_list_apis.models.MediaData.MangaData, user_data: anime_list_apis.models.MediaUserData.MangaUserData)

Bases: anime_list_apis.models.MediaListEntry.MediaListEntry

Class that models a user’s manga list entry

__init__(manga_data: anime_list_apis.models.MediaData.MangaData, user_data: anime_list_apis.models.MediaUserData.MangaUserData)

Initializes the manga list entry. :param manga_data: The manga data :param user_data: The user data :raises TypeError: If any of the parameters has a wrong type

get_media_data() → anime_list_apis.models.MediaData.MangaData

Generates a new MangaData object from the internal representation :return: The generated MangaData object :raises TypeError: If any of the internal parameters has a wrong type

get_user_data() → anime_list_apis.models.MediaUserData.MangaUserData

Generates a new MangaUserData object from the internal representation :return: The generated MangaUserData object :raises TypeError: If any of the internal parameters has a wrong type

class anime_list_apis.models.MediaListEntry.MediaListEntry(media_type: anime_list_apis.models.attributes.MediaType.MediaType, media_data: anime_list_apis.models.MediaData.MediaData, user_data: anime_list_apis.models.MediaUserData.MediaUserData)

Bases: anime_list_apis.models.Serializable.MediaSerializable, anime_list_apis.models.CacheAble.CacheAble

Class that models a user’s media list entry

__init__(media_type: anime_list_apis.models.attributes.MediaType.MediaType, media_data: anime_list_apis.models.MediaData.MediaData, user_data: anime_list_apis.models.MediaUserData.MediaUserData)

Initializes the media list entry. :param media_data: The media data :param user_data: The user data :raises TypeError: If any of the parameters has a wrong type :raises ValueError: If the media and user data do not match

classmethod get_class_for_media_type(media_type: anime_list_apis.models.attributes.MediaType.MediaType)

Maps a class to a media type :param media_type: The media type :return: The class mapped to that media type

get_id() → anime_list_apis.models.attributes.Id.Id

Retrieves the cache entry’s ID :return: The ID

get_media_data() → anime_list_apis.models.MediaData.MediaData

Generates a new MediaData object from the internal representation :return: The generated MediaData object :raises TypeError: If any of the internal parameters has a wrong type

get_media_type() → anime_list_apis.models.attributes.MediaType.MediaType

Retrieves the media type :return: The media type

get_model_type() → anime_list_apis.models.CacheAble.CacheModelType

Retrieves the cache model type :return: The model type

get_user_data() → anime_list_apis.models.MediaUserData.MediaUserData

Generates a new MediaUserData object from the internal representation :return: The generated MediaUserData object :raises TypeError: If any of the internal parameters has a wrong type

get_username() → Optional[str]

Retrieves the username, if applicable. Else None :return: The username or None if not applicable

is_valid_entry() → bool

Checks if the data has a valid combination of entry data :return: True, if all required attributes are valid and present

anime_list_apis.models.MediaUserData module

class anime_list_apis.models.MediaUserData.AnimeUserData(media_id: anime_list_apis.models.attributes.Id.Id, username: str, score: anime_list_apis.models.attributes.Score.Score, consuming_status: anime_list_apis.models.attributes.ConsumingStatus.ConsumingStatus, consuming_start: Optional[anime_list_apis.models.attributes.Date.Date], consuming_end: Optional[anime_list_apis.models.attributes.Date.Date], episode_progress: int)

Bases: anime_list_apis.models.MediaUserData.MediaUserData

Models a user’s entry data for an anime series

__init__(media_id: anime_list_apis.models.attributes.Id.Id, username: str, score: anime_list_apis.models.attributes.Score.Score, consuming_status: anime_list_apis.models.attributes.ConsumingStatus.ConsumingStatus, consuming_start: Optional[anime_list_apis.models.attributes.Date.Date], consuming_end: Optional[anime_list_apis.models.attributes.Date.Date], episode_progress: int)

Initializes the AnimeUserData object :param media_id: The ID of the corresponding AnimeData object :param username: The user’s username :param score: The user’s score for this anime :param consuming_status: The user’s current watching status :param consuming_start: The date on which the user started watching :param consuming_end: The date on which the user completed the show :param episode_progress: The user’s progress :raises TypeError: If any of the parameters has a wrong type

class anime_list_apis.models.MediaUserData.MangaUserData(media_id: anime_list_apis.models.attributes.Id.Id, username: str, score: anime_list_apis.models.attributes.Score.Score, consuming_status: anime_list_apis.models.attributes.ConsumingStatus.ConsumingStatus, consuming_start: Optional[anime_list_apis.models.attributes.Date.Date], consuming_end: Optional[anime_list_apis.models.attributes.Date.Date], chapter_progress: int, volume_progress: int)

Bases: anime_list_apis.models.MediaUserData.MediaUserData

Models a user’s entry data for a manga series

__init__(media_id: anime_list_apis.models.attributes.Id.Id, username: str, score: anime_list_apis.models.attributes.Score.Score, consuming_status: anime_list_apis.models.attributes.ConsumingStatus.ConsumingStatus, consuming_start: Optional[anime_list_apis.models.attributes.Date.Date], consuming_end: Optional[anime_list_apis.models.attributes.Date.Date], chapter_progress: int, volume_progress: int)

Initializes the MangaUserData object :param media_id: The ID of the corresponding MangaData object :param username: The user’s username :param score: The user’s score for this manga :param consuming_status: The user’s current reading status :param consuming_start: The date on which the user started reading :param consuming_end: The date on which the user completed the series :param chapter_progress: The user’s chapter progress :param volume_progress: The user’s volume progress :raises TypeError: If any of the parameters has a wrong type

class anime_list_apis.models.MediaUserData.MediaUserData(media_id: anime_list_apis.models.attributes.Id.Id, media_type: anime_list_apis.models.attributes.MediaType.MediaType, username: str, score: anime_list_apis.models.attributes.Score.Score, consuming_status: anime_list_apis.models.attributes.ConsumingStatus.ConsumingStatus, consuming_start: Optional[anime_list_apis.models.attributes.Date.Date], consuming_end: Optional[anime_list_apis.models.attributes.Date.Date])

Bases: anime_list_apis.models.Serializable.MediaSerializable, anime_list_apis.models.CacheAble.CacheAble

Models a user’s entry data for an anime series

__init__(media_id: anime_list_apis.models.attributes.Id.Id, media_type: anime_list_apis.models.attributes.MediaType.MediaType, username: str, score: anime_list_apis.models.attributes.Score.Score, consuming_status: anime_list_apis.models.attributes.ConsumingStatus.ConsumingStatus, consuming_start: Optional[anime_list_apis.models.attributes.Date.Date], consuming_end: Optional[anime_list_apis.models.attributes.Date.Date])

Initializes the MediaUserData object :param media_id: The ID of the corresponding MediaData object :param media_type: The type of media represented :param username: The user’s username :param score: The user’s score for this entry :param consuming_status: The user’s current consuming status :param consuming_start: The date on which the user started consuming :param consuming_end: The date on which the user completed the entry :raises TypeError: If any of the parameters has a wrong type

classmethod get_class_for_media_type(media_type: anime_list_apis.models.attributes.MediaType.MediaType)

Maps a class to a media type :param media_type: The media type :return: The class mapped to that media type

get_id() → anime_list_apis.models.attributes.Id.Id

Retrieves the cache entry’s ID :return: The ID

get_media_type() → anime_list_apis.models.attributes.MediaType.MediaType

Retrieves the media type :return: The media type

get_model_type() → anime_list_apis.models.CacheAble.CacheModelType

Retrieves the cache model type :return: The model type

get_username() → Optional[str]

Retrieves the username, if applicable. Else None :return: The username or None if not applicable

is_valid_entry() → bool

Checks if the data has a valid combination of entry data :return: True, if all required attributes are valid and present

anime_list_apis.models.Serializable module

class anime_list_apis.models.Serializable.MediaSerializable

Bases: anime_list_apis.models.Serializable.Serializable

Class that allows for easier subclassing of Media classes

classmethod get_class_for_media_type(media_type: anime_list_apis.models.attributes.MediaType.MediaType)

Maps a class to a media type :param media_type: The media type :return: The class mapped to that media type

class anime_list_apis.models.Serializable.Serializable

Bases: object

Abstract class that defines methods for subclasses to implement to make sure that they can be serialized

classmethod deserialize(data: Dict[str, Optional[str]])

Deserializes a dictionary into an object of this type :param data: The data to deserialize :return: The deserialized object :raises TypeError: If a type error occurred :raises ValueError: If the data could not be deserialized

classmethod ensure_type(obj: object, typ: type, none_allowed: bool = False)

Raises a TypeError if the object does not match the type :param obj: The object to check :param typ: The type the object should be :param none_allowed: If True, allows None values :return: None :raises TypeError: If the types do not match

serialize() → Dict[str, Optional[str]]

Serializes the object into a dictionary :return: The serialized form of this object

static type_check(obj: object, typ: type, none_allowed: bool = False) → bool

Checks if an object is an instance of a type :param obj: The object to check :param typ: The type it should be :param none_allowed: If True, allows None values :return: True if the object is of that type, else False

Module contents