Skip to content

erdantic.examples.pydantic

Example data model classes using Pydantic.

Classes

Adventurer (BaseModel) pydantic-model

A person often late for dinner but with a tale or two to tell.

Attributes:

Name Type Description
name str

Name of this adventurer

profession str

Profession of this adventurer

level int

Level of this adventurer

alignment Alignment

Alignment of this adventurer

Source code in erdantic/examples/pydantic.py
class Adventurer(BaseModel):
    """A person often late for dinner but with a tale or two to tell.

    Attributes:
        name (str): Name of this adventurer
        profession (str): Profession of this adventurer
        level (int): Level of this adventurer
        alignment (Alignment): Alignment of this adventurer
    """

    name: str
    profession: str
    level: int
    alignment: Alignment
alignment: Alignment pydantic-field required
level: int pydantic-field required
name: str pydantic-field required
profession: str pydantic-field required

Alignment (str, Enum)

An enumeration.

Source code in erdantic/examples/pydantic.py
class Alignment(str, Enum):
    LAWFUL_GOOD = "lawful_good"
    NEUTRAL_GOOD = "neutral_good"
    CHAOTIC_GOOD = "chaotic_good"
    LAWFUL_NEUTRAL = "lawful_neutral"
    TRUE_NEUTRAL = "true_neutral"
    CHAOTIC_NEUTRAL = "chaotic_neutral"
    LAWFUL_EVIL = "lawful_evil"
    NEUTRAL_EVIL = "neutral_evil"
    CHAOTIC_EVIL = "chaotic_evil"
CHAOTIC_EVIL
CHAOTIC_GOOD
CHAOTIC_NEUTRAL
LAWFUL_EVIL
LAWFUL_GOOD
LAWFUL_NEUTRAL
NEUTRAL_EVIL
NEUTRAL_GOOD
TRUE_NEUTRAL

Party (BaseModel) pydantic-model

A group of adventurers finding themselves doing and saying things altogether unexpected.

Attributes:

Name Type Description
name str

Name that party is known by

formed_datetime datetime

Timestamp of when the party was formed

members List[Adventurer]

Adventurers that belong to this party

active_quest Optional[Quest]

Current quest that party is actively tackling

Source code in erdantic/examples/pydantic.py
class Party(BaseModel):
    """A group of adventurers finding themselves doing and saying things altogether unexpected.

    Attributes:
        name (str): Name that party is known by
        formed_datetime (datetime): Timestamp of when the party was formed
        members (List[Adventurer]): Adventurers that belong to this party
        active_quest (Optional[Quest]): Current quest that party is actively tackling
    """

    name: str
    formed_datetime: datetime
    members: List[Adventurer]
    active_quest: Optional[Quest]
active_quest: Quest pydantic-field
formed_datetime: datetime pydantic-field required
members: List[erdantic.examples.pydantic.Adventurer] pydantic-field required
name: str pydantic-field required

Quest (BaseModel) pydantic-model

A task to complete, with some monetary reward.

Attributes:

Name Type Description
name str

Name by which this quest is referred to

giver QuestGiver

Person who offered the quest

reward_gold int

Amount of gold to be rewarded for quest completion

Source code in erdantic/examples/pydantic.py
class Quest(BaseModel):
    """A task to complete, with some monetary reward.

    Attributes:
        name (str): Name by which this quest is referred to
        giver (QuestGiver): Person who offered the quest
        reward_gold (int): Amount of gold to be rewarded for quest completion
    """

    name: str
    giver: QuestGiver
    reward_gold: int
giver: QuestGiver pydantic-field required
name: str pydantic-field required
reward_gold: int pydantic-field required

QuestGiver (BaseModel) pydantic-model

A person who offers a task that needs completing.

Attributes:

Name Type Description
name str

Name of this quest giver

faction str

Faction that this quest giver belongs to

location str

Location this quest giver can be found

Source code in erdantic/examples/pydantic.py
class QuestGiver(BaseModel):
    """A person who offers a task that needs completing.

    Attributes:
        name (str): Name of this quest giver
        faction (str): Faction that this quest giver belongs to
        location (str): Location this quest giver can be found
    """

    name: str
    faction: Optional[str]
    location: str
faction: str pydantic-field
location: str pydantic-field required
name: str pydantic-field required
Back to top