erdantic.examples.dataclasses¶
Example data model classes using standard library's
dataclasses module.
Classes¶
        
Adventurer        
  
      dataclass
  
¶
    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/dataclasses.py
          class Adventurer:
    """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            (str, Enum)
        
¶
    An enumeration.
Source code in erdantic/examples/dataclasses.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"
        
Party        
  
      dataclass
  
¶
    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/dataclasses.py
          class Party:
    """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: Optional[erdantic.examples.dataclasses.Quest]
  
      dataclass-field
  
¶
    
formed_datetime: datetime
  
      dataclass-field
  
¶
    
members: List[erdantic.examples.dataclasses.Adventurer]
  
      dataclass-field
  
¶
    
name: str
  
      dataclass-field
  
¶
    
__init__(self, name: str, formed_datetime: datetime, members: List[erdantic.examples.dataclasses.Adventurer], active_quest: Optional[erdantic.examples.dataclasses.Quest]) -> None
  
      special
  
¶
    
        
Quest        
  
      dataclass
  
¶
    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/dataclasses.py
          class Quest:
    """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
        
QuestGiver        
  
      dataclass
  
¶
    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/dataclasses.py
          class QuestGiver:
    """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