comicbox.fields.metroninfo

[docs] module comicbox.fields.metroninfo

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
"""MetronInfo Fields."""

from comicbox.enums.maps.age_rating import METRON_AGE_RATING_MAP
from comicbox.enums.maps.formats import METRON_FORMAT_MAP
from comicbox.enums.metroninfo import (
    MetronAgeRatingEnum,
    MetronFormatEnum,
    MetronRoleEnum,
    MetronSourceEnum,
)
from comicbox.fields.fields import StringField
from comicbox.fields.xml_fields import XmlEnumField


class MetronAgeRatingField(XmlEnumField):
    """Metron Age Rating Field."""

    ENUM = MetronAgeRatingEnum  # pyright: ignore[reportIncompatibleUnannotatedOverride]
    ENUM_ALIAS_MAP = METRON_AGE_RATING_MAP


class MetronRoleEnumField(XmlEnumField):
    """Metron Role Enum Field."""

    ENUM = MetronRoleEnum  # pyright: ignore[reportIncompatibleUnannotatedOverride]


class MetronIDAttrField(StringField):
    """Metron ID Field."""


class MetronSourceField(XmlEnumField):
    """Metron Source Field."""

    ENUM = MetronSourceEnum  # pyright: ignore[reportIncompatibleUnannotatedOverride]


class MetronFormatField(XmlEnumField):
    """Metron Series Format Field."""

    ENUM = MetronFormatEnum  # pyright: ignore[reportIncompatibleUnannotatedOverride]
    ENUM_ALIAS_MAP = METRON_FORMAT_MAP