# kerykeion.kr_types.kr_models

This is part of Kerykeion (C) 2025 Giacomo Battaglia

View Source

      1# -*- coding: utf-8 -*-
      2"""
      3    This is part of Kerykeion (C) 2025 Giacomo Battaglia
      4"""
      5
      6
      7from typing import Union, Optional
      8from typing_extensions import TypedDict
      9from pydantic import BaseModel
     10from kerykeion.kr_types.kr_literals import AspectName
     11
     12from kerykeion.kr_types import (
     13    AxialCusps,
     14    LunarPhaseEmoji,
     15    LunarPhaseName,
     16    Planet,
     17    Houses,
     18    Quality,
     19    Element,
     20    Sign,
     21    ZodiacType,
     22    SignNumbers,
     23    PointType,
     24    SiderealMode,
     25    HousesSystemIdentifier,
     26    Houses,
     27    SignsEmoji,
     28    RelationshipScoreDescription,
     29    PerspectiveType
     30)
     31
     32
     33class SubscriptableBaseModel(BaseModel):
     34    """
     35    Pydantic BaseModel with subscriptable support, so you can access the fields as if they were a dictionary.
     36    """
     37
     38    def __getitem__(self, key):
     39        return getattr(self, key)
     40
     41    def __setitem__(self, key, value):
     42        setattr(self, key, value)
     43
     44    def __delitem__(self, key):
     45        delattr(self, key)
     46
     47    def get(self, key, default = None):
     48        return getattr(self, key, default)
     49
     50
     51class LunarPhaseModel(SubscriptableBaseModel):
     52    degrees_between_s_m: Union[float, int]
     53    moon_phase: int
     54    sun_phase: int
     55    moon_emoji: LunarPhaseEmoji
     56    moon_phase_name: LunarPhaseName
     57
     58
     59class KerykeionPointModel(SubscriptableBaseModel):
     60    """
     61    Kerykeion Point Model
     62    """
     63
     64    name: Union[Planet, Houses, AxialCusps]
     65    quality: Quality
     66    element: Element
     67    sign: Sign
     68    sign_num: SignNumbers
     69    position: float
     70    abs_pos: float
     71    emoji: str
     72    point_type: PointType
     73    house: Optional[Houses] = None
     74    retrograde: Optional[bool] = None
     75
     76
     77class AstrologicalSubjectModel(SubscriptableBaseModel):
     78    """
     79    Pydantic Model for Astrological Subject
     80    """
     81
     82    # Data
     83    name: str
     84    year: int
     85    month: int
     86    day: int
     87    hour: int
     88    minute: int
     89    city: str
     90    nation: str
     91    lng: float
     92    lat: float
     93    tz_str: str
     94    zodiac_type: ZodiacType
     95    sidereal_mode: Union[SiderealMode, None]
     96    houses_system_identifier: HousesSystemIdentifier
     97    houses_system_name: str
     98    perspective_type: PerspectiveType
     99    iso_formatted_local_datetime: str
    100    iso_formatted_utc_datetime: str
    101    julian_day: float
    102
    103    # Deprecated properties -->
    104    utc_time: float
    105    local_time: float
    106    # <-- Deprecated properties
    107
    108
    109    # Planets
    110    sun: KerykeionPointModel
    111    moon: KerykeionPointModel
    112    mercury: KerykeionPointModel
    113    venus: KerykeionPointModel
    114    mars: KerykeionPointModel
    115    jupiter: KerykeionPointModel
    116    saturn: KerykeionPointModel
    117    uranus: KerykeionPointModel
    118    neptune: KerykeionPointModel
    119    pluto: KerykeionPointModel
    120
    121    # Axes
    122    ascendant: KerykeionPointModel
    123    descendant: KerykeionPointModel
    124    medium_coeli: KerykeionPointModel
    125    imum_coeli: KerykeionPointModel
    126
    127    # Optional Planets:
    128    chiron: Union[KerykeionPointModel, None]
    129    mean_lilith: Union[KerykeionPointModel, None]
    130
    131    # Houses
    132    first_house: KerykeionPointModel
    133    second_house: KerykeionPointModel
    134    third_house: KerykeionPointModel
    135    fourth_house: KerykeionPointModel
    136    fifth_house: KerykeionPointModel
    137    sixth_house: KerykeionPointModel
    138    seventh_house: KerykeionPointModel
    139    eighth_house: KerykeionPointModel
    140    ninth_house: KerykeionPointModel
    141    tenth_house: KerykeionPointModel
    142    eleventh_house: KerykeionPointModel
    143    twelfth_house: KerykeionPointModel
    144
    145    # Nodes
    146    mean_node: KerykeionPointModel
    147    true_node: KerykeionPointModel
    148    mean_south_node: KerykeionPointModel
    149    true_south_node: KerykeionPointModel
    150
    151    planets_names_list: list[Planet]
    152    """Ordered list of available planets names"""
    153
    154    axial_cusps_names_list: list[AxialCusps]
    155    """Ordered list of available axes names"""
    156
    157    houses_names_list: list[Houses]
    158    """Ordered list of houses names"""
    159
    160    lunar_phase: LunarPhaseModel
    161    """Lunar phase model"""
    162
    163
    164class EphemerisDictModel(SubscriptableBaseModel):
    165    date: str
    166    planets: list[KerykeionPointModel]
    167    houses: list[KerykeionPointModel]
    168
    169
    170class AspectModel(SubscriptableBaseModel):
    171    p1_name: str
    172    p1_owner: str
    173    p1_abs_pos: float
    174    p2_name: str
    175    p2_owner: str
    176    p2_abs_pos: float
    177    aspect: str
    178    orbit: float
    179    aspect_degrees: int
    180    diff: float
    181    p1: int
    182    p2: int
    183
    184
    185class ZodiacSignModel(SubscriptableBaseModel):
    186    sign: Sign
    187    quality: Quality
    188    element: Element
    189    emoji: SignsEmoji
    190    sign_num: SignNumbers
    191
    192
    193class RelationshipScoreAspectModel(SubscriptableBaseModel):
    194    p1_name: str
    195    p2_name: str
    196    aspect: str
    197    orbit: float
    198
    199
    200class RelationshipScoreModel(SubscriptableBaseModel):
    201    score_value: int
    202    score_description: RelationshipScoreDescription
    203    is_destiny_sign: bool
    204    aspects: list[RelationshipScoreAspectModel]
    205    subjects: list[AstrologicalSubjectModel]
    206
    207
    208class CompositeSubjectModel(SubscriptableBaseModel):
    209    """
    210    Pydantic Model for Composite Subject
    211    """
    212
    213    # Data
    214    name: str
    215    first_subject: AstrologicalSubjectModel
    216    second_subject: AstrologicalSubjectModel
    217    composite_chart_type: str
    218
    219    zodiac_type: ZodiacType
    220    sidereal_mode: Union[SiderealMode, None]
    221    houses_system_identifier: HousesSystemIdentifier
    222    houses_system_name: str
    223    perspective_type: PerspectiveType
    224
    225    # Planets
    226    sun: KerykeionPointModel
    227    moon: KerykeionPointModel
    228    mercury: KerykeionPointModel
    229    venus: KerykeionPointModel
    230    mars: KerykeionPointModel
    231    jupiter: KerykeionPointModel
    232    saturn: KerykeionPointModel
    233    uranus: KerykeionPointModel
    234    neptune: KerykeionPointModel
    235    pluto: KerykeionPointModel
    236
    237    # Axes
    238    ascendant: KerykeionPointModel
    239    descendant: KerykeionPointModel
    240    medium_coeli: KerykeionPointModel
    241    imum_coeli: KerykeionPointModel
    242
    243    # Optional Planets:
    244    chiron: Union[KerykeionPointModel, None]
    245    mean_lilith: Union[KerykeionPointModel, None]
    246
    247    # Houses
    248    first_house: KerykeionPointModel
    249    second_house: KerykeionPointModel
    250    third_house: KerykeionPointModel
    251    fourth_house: KerykeionPointModel
    252    fifth_house: KerykeionPointModel
    253    sixth_house: KerykeionPointModel
    254    seventh_house: KerykeionPointModel
    255    eighth_house: KerykeionPointModel
    256    ninth_house: KerykeionPointModel
    257    tenth_house: KerykeionPointModel
    258    eleventh_house: KerykeionPointModel
    259    twelfth_house: KerykeionPointModel
    260
    261    # Nodes
    262    mean_node: KerykeionPointModel
    263    true_node: KerykeionPointModel
    264    mean_south_node: KerykeionPointModel
    265    true_south_node: KerykeionPointModel
    266
    267    planets_names_list: list[Planet]
    268    """Ordered list of available planets names"""
    269
    270    axial_cusps_names_list: list[AxialCusps]
    271    """Ordered list of available axes names"""
    272
    273    houses_names_list: list[Houses]
    274    """Ordered list of houses names"""
    275
    276    lunar_phase: LunarPhaseModel
    277    """Lunar phase model"""
    278
    279
    280class ActiveAspect(TypedDict):
    281    name: AspectName
    282    orb: int
    283
    284
    285class TransitMomentModel(SubscriptableBaseModel):
    286    """
    287    Model representing a snapshot of astrological transits at a specific moment in time.
    288
    289    Captures all active aspects between moving celestial bodies and
    290    the fixed positions in a person's natal chart at a specific date and time.
    291
    292    Attributes:
    293        date: ISO 8601 formatted date and time of the transit moment.
    294        aspects: List of astrological aspects active at this specific moment.
    295    """
    296
    297    date: str
    298    """ISO 8601 formatted date and time of the transit moment."""
    299
    300    aspects: list[AspectModel]
    301    """List of aspects active at this specific moment."""
    302
    303
    304class TransitsTimeRangeModel(SubscriptableBaseModel):
    305    """
    306    Model representing a collection of transit moments for an astrological subject.
    307
    308    This model holds a time series of transit snapshots, allowing analysis of
    309    planetary movements and their aspects to a natal chart over a period of time.
    310
    311    Attributes:
    312        transits: List of transit moments occurring during the specified time period.
    313        subject: The astrological subject model for whom the transits are calculated.
    314        dates: List of all dates in ISO 8601 format for which transits were calculated.
    315    """
    316
    317    transits: list[TransitMomentModel]
    318    """List of transit moments."""
    319
    320    subject: Optional[AstrologicalSubjectModel]
    321    """Astrological subject data."""
    322
    323    dates: Optional[list[str]]
    324    """ISO 8601 formatted dates of all transit moments."""

class SubscriptableBaseModel(pydantic.main.BaseModel): View Source

    34class SubscriptableBaseModel(BaseModel):
    35    """
    36    Pydantic BaseModel with subscriptable support, so you can access the fields as if they were a dictionary.
    37    """
    38
    39    def __getitem__(self, key):
    40        return getattr(self, key)
    41
    42    def __setitem__(self, key, value):
    43        setattr(self, key, value)
    44
    45    def __delitem__(self, key):
    46        delattr(self, key)
    47
    48    def get(self, key, default = None):
    49        return getattr(self, key, default)

Pydantic BaseModel with subscriptable support, so you can access the fields as if they were a dictionary.

def get(self, key, default=None): View Source

    48    def get(self, key, default = None):
    49        return getattr(self, key, default)

model_config: ClassVar[pydantic.config.ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

##### Inherited Members

pydantic.main.BaseModel
  BaseModel
  model_extra
  model_fields_set
  model_construct
  model_copy
  model_dump
  model_dump_json
  model_json_schema
  model_parametrized_name
  model_post_init
  model_rebuild
  model_validate
  model_validate_json
  model_validate_strings
  dict
  json
  parse_obj
  parse_raw
  parse_file
  from_orm
  construct
  copy
  schema
  schema_json
  validate
  update_forward_refs
  model_fields
  model_computed_fields

class LunarPhaseModel(SubscriptableBaseModel): View Source

    52class LunarPhaseModel(SubscriptableBaseModel):
    53    degrees_between_s_m: Union[float, int]
    54    moon_phase: int
    55    sun_phase: int
    56    moon_emoji: LunarPhaseEmoji
    57    moon_phase_name: LunarPhaseName

Pydantic BaseModel with subscriptable support, so you can access the fields as if they were a dictionary.

degrees_between_s_m: Union[float, int]
moon_phase: int
sun_phase: int
moon_emoji: Literal['🌑', '🌒', '🌓', '🌔', '🌕', '🌖', '🌗', '🌘']
moon_phase_name: Literal['New Moon', 'Waxing Crescent', 'First Quarter', 'Waxing Gibbous', 'Full Moon', 'Waning Gibbous', 'Last Quarter', 'Waning Crescent']
model_config: ClassVar[pydantic.config.ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

##### Inherited Members

pydantic.main.BaseModel
  BaseModel
  model_extra
  model_fields_set
  model_construct
  model_copy
  model_dump
  model_dump_json
  model_json_schema
  model_parametrized_name
  model_post_init
  model_rebuild
  model_validate
  model_validate_json
  model_validate_strings
  dict
  json
  parse_obj
  parse_raw
  parse_file
  from_orm
  construct
  copy
  schema
  schema_json
  validate
  update_forward_refs
  model_fields
  model_computed_fields
SubscriptableBaseModel
  get

class KerykeionPointModel(SubscriptableBaseModel): View Source

    60class KerykeionPointModel(SubscriptableBaseModel):
    61    """
    62    Kerykeion Point Model
    63    """
    64
    65    name: Union[Planet, Houses, AxialCusps]
    66    quality: Quality
    67    element: Element
    68    sign: Sign
    69    sign_num: SignNumbers
    70    position: float
    71    abs_pos: float
    72    emoji: str
    73    point_type: PointType
    74    house: Optional[Houses] = None
    75    retrograde: Optional[bool] = None

Kerykeion Point Model

name: Union[Literal['Sun', 'Moon', 'Mercury', 'Venus', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Pluto', 'Mean_Node', 'True_Node', 'Mean_South_Node', 'True_South_Node', 'Chiron', 'Mean_Lilith'], Literal['First_House', 'Second_House', 'Third_House', 'Fourth_House', 'Fifth_House', 'Sixth_House', 'Seventh_House', 'Eighth_House', 'Ninth_House', 'Tenth_House', 'Eleventh_House', 'Twelfth_House'], Literal['Ascendant', 'Medium_Coeli', 'Descendant', 'Imum_Coeli']]
quality: Literal['Cardinal', 'Fixed', 'Mutable']
element: Literal['Air', 'Fire', 'Earth', 'Water']
sign: Literal['Ari', 'Tau', 'Gem', 'Can', 'Leo', 'Vir', 'Lib', 'Sco', 'Sag', 'Cap', 'Aqu', 'Pis']
sign_num: Literal[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
position: float
abs_pos: float
emoji: str
point_type: Literal['Planet', 'House', 'AxialCusps']
house: Optional[Literal['First_House', 'Second_House', 'Third_House', 'Fourth_House', 'Fifth_House', 'Sixth_House', 'Seventh_House', 'Eighth_House', 'Ninth_House', 'Tenth_House', 'Eleventh_House', 'Twelfth_House']]
retrograde: Optional[bool]
model_config: ClassVar[pydantic.config.ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

##### Inherited Members

pydantic.main.BaseModel
  BaseModel
  model_extra
  model_fields_set
  model_construct
  model_copy
  model_dump
  model_dump_json
  model_json_schema
  model_parametrized_name
  model_post_init
  model_rebuild
  model_validate
  model_validate_json
  model_validate_strings
  dict
  json
  parse_obj
  parse_raw
  parse_file
  from_orm
  construct
  copy
  schema
  schema_json
  validate
  update_forward_refs
  model_fields
  model_computed_fields
SubscriptableBaseModel
  get

class AstrologicalSubjectModel(SubscriptableBaseModel): View Source

     78class AstrologicalSubjectModel(SubscriptableBaseModel):
     79    """
     80    Pydantic Model for Astrological Subject
     81    """
     82
     83    # Data
     84    name: str
     85    year: int
     86    month: int
     87    day: int
     88    hour: int
     89    minute: int
     90    city: str
     91    nation: str
     92    lng: float
     93    lat: float
     94    tz_str: str
     95    zodiac_type: ZodiacType
     96    sidereal_mode: Union[SiderealMode, None]
     97    houses_system_identifier: HousesSystemIdentifier
     98    houses_system_name: str
     99    perspective_type: PerspectiveType
    100    iso_formatted_local_datetime: str
    101    iso_formatted_utc_datetime: str
    102    julian_day: float
    103
    104    # Deprecated properties -->
    105    utc_time: float
    106    local_time: float
    107    # <-- Deprecated properties
    108
    109
    110    # Planets
    111    sun: KerykeionPointModel
    112    moon: KerykeionPointModel
    113    mercury: KerykeionPointModel
    114    venus: KerykeionPointModel
    115    mars: KerykeionPointModel
    116    jupiter: KerykeionPointModel
    117    saturn: KerykeionPointModel
    118    uranus: KerykeionPointModel
    119    neptune: KerykeionPointModel
    120    pluto: KerykeionPointModel
    121
    122    # Axes
    123    ascendant: KerykeionPointModel
    124    descendant: KerykeionPointModel
    125    medium_coeli: KerykeionPointModel
    126    imum_coeli: KerykeionPointModel
    127
    128    # Optional Planets:
    129    chiron: Union[KerykeionPointModel, None]
    130    mean_lilith: Union[KerykeionPointModel, None]
    131
    132    # Houses
    133    first_house: KerykeionPointModel
    134    second_house: KerykeionPointModel
    135    third_house: KerykeionPointModel
    136    fourth_house: KerykeionPointModel
    137    fifth_house: KerykeionPointModel
    138    sixth_house: KerykeionPointModel
    139    seventh_house: KerykeionPointModel
    140    eighth_house: KerykeionPointModel
    141    ninth_house: KerykeionPointModel
    142    tenth_house: KerykeionPointModel
    143    eleventh_house: KerykeionPointModel
    144    twelfth_house: KerykeionPointModel
    145
    146    # Nodes
    147    mean_node: KerykeionPointModel
    148    true_node: KerykeionPointModel
    149    mean_south_node: KerykeionPointModel
    150    true_south_node: KerykeionPointModel
    151
    152    planets_names_list: list[Planet]
    153    """Ordered list of available planets names"""
    154
    155    axial_cusps_names_list: list[AxialCusps]
    156    """Ordered list of available axes names"""
    157
    158    houses_names_list: list[Houses]
    159    """Ordered list of houses names"""
    160
    161    lunar_phase: LunarPhaseModel
    162    """Lunar phase model"""

Pydantic Model for Astrological Subject

name: str
year: int
month: int
day: int
hour: int
minute: int
city: str
nation: str
lng: float
lat: float
tz_str: str
zodiac_type: Literal['Tropic', 'Sidereal']
sidereal_mode: Optional[Literal['FAGAN_BRADLEY', 'LAHIRI', 'DELUCE', 'RAMAN', 'USHASHASHI', 'KRISHNAMURTI', 'DJWHAL_KHUL', 'YUKTESHWAR', 'JN_BHASIN', 'BABYL_KUGLER1', 'BABYL_KUGLER2', 'BABYL_KUGLER3', 'BABYL_HUBER', 'BABYL_ETPSC', 'ALDEBARAN_15TAU', 'HIPPARCHOS', 'SASSANIAN', 'J2000', 'J1900', 'B1950']]
houses_system_identifier: Literal['A', 'B', 'C', 'D', 'F', 'H', 'I', 'i', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y']
houses_system_name: str
perspective_type: Literal['Apparent Geocentric', 'Heliocentric', 'Topocentric', 'True Geocentric']
iso_formatted_local_datetime: str
iso_formatted_utc_datetime: str
julian_day: float
utc_time: float
local_time: float
sun: KerykeionPointModel
moon: KerykeionPointModel
mercury: KerykeionPointModel
venus: KerykeionPointModel
mars: KerykeionPointModel
jupiter: KerykeionPointModel
saturn: KerykeionPointModel
uranus: KerykeionPointModel
neptune: KerykeionPointModel
pluto: KerykeionPointModel
ascendant: KerykeionPointModel
descendant: KerykeionPointModel
medium_coeli: KerykeionPointModel
imum_coeli: KerykeionPointModel
chiron: Optional[KerykeionPointModel]
mean_lilith: Optional[KerykeionPointModel]
first_house: KerykeionPointModel
second_house: KerykeionPointModel
third_house: KerykeionPointModel
fourth_house: KerykeionPointModel
fifth_house: KerykeionPointModel
sixth_house: KerykeionPointModel
seventh_house: KerykeionPointModel
eighth_house: KerykeionPointModel
ninth_house: KerykeionPointModel
tenth_house: KerykeionPointModel
eleventh_house: KerykeionPointModel
twelfth_house: KerykeionPointModel
mean_node: KerykeionPointModel
true_node: KerykeionPointModel
mean_south_node: KerykeionPointModel
true_south_node: KerykeionPointModel
planets_names_list: list[typing.Literal['Sun', 'Moon', 'Mercury', 'Venus', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Pluto', 'Mean_Node', 'True_Node', 'Mean_South_Node', 'True_South_Node', 'Chiron', 'Mean_Lilith']]

Ordered list of available planets names

axial_cusps_names_list: list[typing.Literal['Ascendant', 'Medium_Coeli', 'Descendant', 'Imum_Coeli']]

Ordered list of available axes names

houses_names_list: list[typing.Literal['First_House', 'Second_House', 'Third_House', 'Fourth_House', 'Fifth_House', 'Sixth_House', 'Seventh_House', 'Eighth_House', 'Ninth_House', 'Tenth_House', 'Eleventh_House', 'Twelfth_House']]

Ordered list of houses names

lunar_phase: LunarPhaseModel

Lunar phase model

model_config: ClassVar[pydantic.config.ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

##### Inherited Members

pydantic.main.BaseModel
  BaseModel
  model_extra
  model_fields_set
  model_construct
  model_copy
  model_dump
  model_dump_json
  model_json_schema
  model_parametrized_name
  model_post_init
  model_rebuild
  model_validate
  model_validate_json
  model_validate_strings
  dict
  json
  parse_obj
  parse_raw
  parse_file
  from_orm
  construct
  copy
  schema
  schema_json
  validate
  update_forward_refs
  model_fields
  model_computed_fields
SubscriptableBaseModel
  get

class EphemerisDictModel(SubscriptableBaseModel): View Source

    165class EphemerisDictModel(SubscriptableBaseModel):
    166    date: str
    167    planets: list[KerykeionPointModel]
    168    houses: list[KerykeionPointModel]

Pydantic BaseModel with subscriptable support, so you can access the fields as if they were a dictionary.

date: str
planets: list[KerykeionPointModel]
houses: list[KerykeionPointModel]
model_config: ClassVar[pydantic.config.ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

##### Inherited Members

pydantic.main.BaseModel
  BaseModel
  model_extra
  model_fields_set
  model_construct
  model_copy
  model_dump
  model_dump_json
  model_json_schema
  model_parametrized_name
  model_post_init
  model_rebuild
  model_validate
  model_validate_json
  model_validate_strings
  dict
  json
  parse_obj
  parse_raw
  parse_file
  from_orm
  construct
  copy
  schema
  schema_json
  validate
  update_forward_refs
  model_fields
  model_computed_fields
SubscriptableBaseModel
  get

class AspectModel(SubscriptableBaseModel): View Source

    171class AspectModel(SubscriptableBaseModel):
    172    p1_name: str
    173    p1_owner: str
    174    p1_abs_pos: float
    175    p2_name: str
    176    p2_owner: str
    177    p2_abs_pos: float
    178    aspect: str
    179    orbit: float
    180    aspect_degrees: int
    181    diff: float
    182    p1: int
    183    p2: int

Pydantic BaseModel with subscriptable support, so you can access the fields as if they were a dictionary.

p1_name: str
p1_owner: str
p1_abs_pos: float
p2_name: str
p2_owner: str
p2_abs_pos: float
aspect: str
orbit: float
aspect_degrees: int
diff: float
p1: int
p2: int
model_config: ClassVar[pydantic.config.ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

##### Inherited Members

pydantic.main.BaseModel
  BaseModel
  model_extra
  model_fields_set
  model_construct
  model_copy
  model_dump
  model_dump_json
  model_json_schema
  model_parametrized_name
  model_post_init
  model_rebuild
  model_validate
  model_validate_json
  model_validate_strings
  dict
  json
  parse_obj
  parse_raw
  parse_file
  from_orm
  construct
  copy
  schema
  schema_json
  validate
  update_forward_refs
  model_fields
  model_computed_fields
SubscriptableBaseModel
  get

class ZodiacSignModel(SubscriptableBaseModel): View Source

    186class ZodiacSignModel(SubscriptableBaseModel):
    187    sign: Sign
    188    quality: Quality
    189    element: Element
    190    emoji: SignsEmoji
    191    sign_num: SignNumbers

Pydantic BaseModel with subscriptable support, so you can access the fields as if they were a dictionary.

sign: Literal['Ari', 'Tau', 'Gem', 'Can', 'Leo', 'Vir', 'Lib', 'Sco', 'Sag', 'Cap', 'Aqu', 'Pis']
quality: Literal['Cardinal', 'Fixed', 'Mutable']
element: Literal['Air', 'Fire', 'Earth', 'Water']
emoji: Literal['♈️', '♉️', '♊️', '♋️', '♌️', '♍️', '♎️', '♏️', '♐️', '♑️', '♒️', '♓️']
sign_num: Literal[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
model_config: ClassVar[pydantic.config.ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

##### Inherited Members

pydantic.main.BaseModel
  BaseModel
  model_extra
  model_fields_set
  model_construct
  model_copy
  model_dump
  model_dump_json
  model_json_schema
  model_parametrized_name
  model_post_init
  model_rebuild
  model_validate
  model_validate_json
  model_validate_strings
  dict
  json
  parse_obj
  parse_raw
  parse_file
  from_orm
  construct
  copy
  schema
  schema_json
  validate
  update_forward_refs
  model_fields
  model_computed_fields
SubscriptableBaseModel
  get

class RelationshipScoreAspectModel(SubscriptableBaseModel): View Source

    194class RelationshipScoreAspectModel(SubscriptableBaseModel):
    195    p1_name: str
    196    p2_name: str
    197    aspect: str
    198    orbit: float

Pydantic BaseModel with subscriptable support, so you can access the fields as if they were a dictionary.

p1_name: str
p2_name: str
aspect: str
orbit: float
model_config: ClassVar[pydantic.config.ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

##### Inherited Members

pydantic.main.BaseModel
  BaseModel
  model_extra
  model_fields_set
  model_construct
  model_copy
  model_dump
  model_dump_json
  model_json_schema
  model_parametrized_name
  model_post_init
  model_rebuild
  model_validate
  model_validate_json
  model_validate_strings
  dict
  json
  parse_obj
  parse_raw
  parse_file
  from_orm
  construct
  copy
  schema
  schema_json
  validate
  update_forward_refs
  model_fields
  model_computed_fields
SubscriptableBaseModel
  get

class RelationshipScoreModel(SubscriptableBaseModel): View Source

    201class RelationshipScoreModel(SubscriptableBaseModel):
    202    score_value: int
    203    score_description: RelationshipScoreDescription
    204    is_destiny_sign: bool
    205    aspects: list[RelationshipScoreAspectModel]
    206    subjects: list[AstrologicalSubjectModel]

Pydantic BaseModel with subscriptable support, so you can access the fields as if they were a dictionary.

score_value: int
score_description: Literal['Minimal', 'Medium', 'Important', 'Very Important', 'Exceptional', 'Rare Exceptional']
is_destiny_sign: bool
aspects: list[RelationshipScoreAspectModel]
subjects: list[AstrologicalSubjectModel]
model_config: ClassVar[pydantic.config.ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

##### Inherited Members

pydantic.main.BaseModel
  BaseModel
  model_extra
  model_fields_set
  model_construct
  model_copy
  model_dump
  model_dump_json
  model_json_schema
  model_parametrized_name
  model_post_init
  model_rebuild
  model_validate
  model_validate_json
  model_validate_strings
  dict
  json
  parse_obj
  parse_raw
  parse_file
  from_orm
  construct
  copy
  schema
  schema_json
  validate
  update_forward_refs
  model_fields
  model_computed_fields
SubscriptableBaseModel
  get

class CompositeSubjectModel(SubscriptableBaseModel): View Source

    209class CompositeSubjectModel(SubscriptableBaseModel):
    210    """
    211    Pydantic Model for Composite Subject
    212    """
    213
    214    # Data
    215    name: str
    216    first_subject: AstrologicalSubjectModel
    217    second_subject: AstrologicalSubjectModel
    218    composite_chart_type: str
    219
    220    zodiac_type: ZodiacType
    221    sidereal_mode: Union[SiderealMode, None]
    222    houses_system_identifier: HousesSystemIdentifier
    223    houses_system_name: str
    224    perspective_type: PerspectiveType
    225
    226    # Planets
    227    sun: KerykeionPointModel
    228    moon: KerykeionPointModel
    229    mercury: KerykeionPointModel
    230    venus: KerykeionPointModel
    231    mars: KerykeionPointModel
    232    jupiter: KerykeionPointModel
    233    saturn: KerykeionPointModel
    234    uranus: KerykeionPointModel
    235    neptune: KerykeionPointModel
    236    pluto: KerykeionPointModel
    237
    238    # Axes
    239    ascendant: KerykeionPointModel
    240    descendant: KerykeionPointModel
    241    medium_coeli: KerykeionPointModel
    242    imum_coeli: KerykeionPointModel
    243
    244    # Optional Planets:
    245    chiron: Union[KerykeionPointModel, None]
    246    mean_lilith: Union[KerykeionPointModel, None]
    247
    248    # Houses
    249    first_house: KerykeionPointModel
    250    second_house: KerykeionPointModel
    251    third_house: KerykeionPointModel
    252    fourth_house: KerykeionPointModel
    253    fifth_house: KerykeionPointModel
    254    sixth_house: KerykeionPointModel
    255    seventh_house: KerykeionPointModel
    256    eighth_house: KerykeionPointModel
    257    ninth_house: KerykeionPointModel
    258    tenth_house: KerykeionPointModel
    259    eleventh_house: KerykeionPointModel
    260    twelfth_house: KerykeionPointModel
    261
    262    # Nodes
    263    mean_node: KerykeionPointModel
    264    true_node: KerykeionPointModel
    265    mean_south_node: KerykeionPointModel
    266    true_south_node: KerykeionPointModel
    267
    268    planets_names_list: list[Planet]
    269    """Ordered list of available planets names"""
    270
    271    axial_cusps_names_list: list[AxialCusps]
    272    """Ordered list of available axes names"""
    273
    274    houses_names_list: list[Houses]
    275    """Ordered list of houses names"""
    276
    277    lunar_phase: LunarPhaseModel
    278    """Lunar phase model"""

Pydantic Model for Composite Subject

name: str
first_subject: AstrologicalSubjectModel
second_subject: AstrologicalSubjectModel
composite_chart_type: str
zodiac_type: Literal['Tropic', 'Sidereal']
sidereal_mode: Optional[Literal['FAGAN_BRADLEY', 'LAHIRI', 'DELUCE', 'RAMAN', 'USHASHASHI', 'KRISHNAMURTI', 'DJWHAL_KHUL', 'YUKTESHWAR', 'JN_BHASIN', 'BABYL_KUGLER1', 'BABYL_KUGLER2', 'BABYL_KUGLER3', 'BABYL_HUBER', 'BABYL_ETPSC', 'ALDEBARAN_15TAU', 'HIPPARCHOS', 'SASSANIAN', 'J2000', 'J1900', 'B1950']]
houses_system_identifier: Literal['A', 'B', 'C', 'D', 'F', 'H', 'I', 'i', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y']
houses_system_name: str
perspective_type: Literal['Apparent Geocentric', 'Heliocentric', 'Topocentric', 'True Geocentric']
sun: KerykeionPointModel
moon: KerykeionPointModel
mercury: KerykeionPointModel
venus: KerykeionPointModel
mars: KerykeionPointModel
jupiter: KerykeionPointModel
saturn: KerykeionPointModel
uranus: KerykeionPointModel
neptune: KerykeionPointModel
pluto: KerykeionPointModel
ascendant: KerykeionPointModel
descendant: KerykeionPointModel
medium_coeli: KerykeionPointModel
imum_coeli: KerykeionPointModel
chiron: Optional[KerykeionPointModel]
mean_lilith: Optional[KerykeionPointModel]
first_house: KerykeionPointModel
second_house: KerykeionPointModel
third_house: KerykeionPointModel
fourth_house: KerykeionPointModel
fifth_house: KerykeionPointModel
sixth_house: KerykeionPointModel
seventh_house: KerykeionPointModel
eighth_house: KerykeionPointModel
ninth_house: KerykeionPointModel
tenth_house: KerykeionPointModel
eleventh_house: KerykeionPointModel
twelfth_house: KerykeionPointModel
mean_node: KerykeionPointModel
true_node: KerykeionPointModel
mean_south_node: KerykeionPointModel
true_south_node: KerykeionPointModel
planets_names_list: list[typing.Literal['Sun', 'Moon', 'Mercury', 'Venus', 'Mars', 'Jupiter', 'Saturn', 'Uranus', 'Neptune', 'Pluto', 'Mean_Node', 'True_Node', 'Mean_South_Node', 'True_South_Node', 'Chiron', 'Mean_Lilith']]

Ordered list of available planets names

axial_cusps_names_list: list[typing.Literal['Ascendant', 'Medium_Coeli', 'Descendant', 'Imum_Coeli']]

Ordered list of available axes names

houses_names_list: list[typing.Literal['First_House', 'Second_House', 'Third_House', 'Fourth_House', 'Fifth_House', 'Sixth_House', 'Seventh_House', 'Eighth_House', 'Ninth_House', 'Tenth_House', 'Eleventh_House', 'Twelfth_House']]

Ordered list of houses names

lunar_phase: LunarPhaseModel

Lunar phase model

model_config: ClassVar[pydantic.config.ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

##### Inherited Members

pydantic.main.BaseModel
  BaseModel
  model_extra
  model_fields_set
  model_construct
  model_copy
  model_dump
  model_dump_json
  model_json_schema
  model_parametrized_name
  model_post_init
  model_rebuild
  model_validate
  model_validate_json
  model_validate_strings
  dict
  json
  parse_obj
  parse_raw
  parse_file
  from_orm
  construct
  copy
  schema
  schema_json
  validate
  update_forward_refs
  model_fields
  model_computed_fields
SubscriptableBaseModel
  get

class ActiveAspect(typing_extensions.TypedDict): View Source

    281class ActiveAspect(TypedDict):
    282    name: AspectName
    283    orb: int

name: Literal['conjunction', 'semi-sextile', 'semi-square', 'sextile', 'quintile', 'square', 'trine', 'sesquiquadrate', 'biquintile', 'quincunx', 'opposition']
orb: int

##### Inherited Members

builtins.dict
  get
  setdefault
  pop
  popitem
  keys
  items
  values
  update
  fromkeys
  clear
  copy

class TransitMomentModel(SubscriptableBaseModel): View Source

    286class TransitMomentModel(SubscriptableBaseModel):
    287    """
    288    Model representing a snapshot of astrological transits at a specific moment in time.
    289
    290    Captures all active aspects between moving celestial bodies and
    291    the fixed positions in a person's natal chart at a specific date and time.
    292
    293    Attributes:
    294        date: ISO 8601 formatted date and time of the transit moment.
    295        aspects: List of astrological aspects active at this specific moment.
    296    """
    297
    298    date: str
    299    """ISO 8601 formatted date and time of the transit moment."""
    300
    301    aspects: list[AspectModel]
    302    """List of aspects active at this specific moment."""

Model representing a snapshot of astrological transits at a specific moment in time.

Captures all active aspects between moving celestial bodies and the fixed positions in a person's natal chart at a specific date and time.

Attributes: date: ISO 8601 formatted date and time of the transit moment. aspects: List of astrological aspects active at this specific moment.

date: str

ISO 8601 formatted date and time of the transit moment.

aspects: list[AspectModel]

List of aspects active at this specific moment.

model_config: ClassVar[pydantic.config.ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

##### Inherited Members

pydantic.main.BaseModel
  BaseModel
  model_extra
  model_fields_set
  model_construct
  model_copy
  model_dump
  model_dump_json
  model_json_schema
  model_parametrized_name
  model_post_init
  model_rebuild
  model_validate
  model_validate_json
  model_validate_strings
  dict
  json
  parse_obj
  parse_raw
  parse_file
  from_orm
  construct
  copy
  schema
  schema_json
  validate
  update_forward_refs
  model_fields
  model_computed_fields
SubscriptableBaseModel
  get

class TransitsTimeRangeModel(SubscriptableBaseModel): View Source

    305class TransitsTimeRangeModel(SubscriptableBaseModel):
    306    """
    307    Model representing a collection of transit moments for an astrological subject.
    308
    309    This model holds a time series of transit snapshots, allowing analysis of
    310    planetary movements and their aspects to a natal chart over a period of time.
    311
    312    Attributes:
    313        transits: List of transit moments occurring during the specified time period.
    314        subject: The astrological subject model for whom the transits are calculated.
    315        dates: List of all dates in ISO 8601 format for which transits were calculated.
    316    """
    317
    318    transits: list[TransitMomentModel]
    319    """List of transit moments."""
    320
    321    subject: Optional[AstrologicalSubjectModel]
    322    """Astrological subject data."""
    323
    324    dates: Optional[list[str]]
    325    """ISO 8601 formatted dates of all transit moments."""

Model representing a collection of transit moments for an astrological subject.

This model holds a time series of transit snapshots, allowing analysis of planetary movements and their aspects to a natal chart over a period of time.

Attributes: transits: List of transit moments occurring during the specified time period. subject: The astrological subject model for whom the transits are calculated. dates: List of all dates in ISO 8601 format for which transits were calculated.

transits: list[TransitMomentModel]

List of transit moments.

subject: Optional[AstrologicalSubjectModel]

Astrological subject data.

dates: Optional[list[str]]

ISO 8601 formatted dates of all transit moments.

model_config: ClassVar[pydantic.config.ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [`ConfigDict`][pydantic.config.ConfigDict].

##### Inherited Members

pydantic.main.BaseModel
  BaseModel
  model_extra
  model_fields_set
  model_construct
  model_copy
  model_dump
  model_dump_json
  model_json_schema
  model_parametrized_name
  model_post_init
  model_rebuild
  model_validate
  model_validate_json
  model_validate_strings
  dict
  json
  parse_obj
  parse_raw
  parse_file
  from_orm
  construct
  copy
  schema
  schema_json
  validate
  update_forward_refs
  model_fields
  model_computed_fields
SubscriptableBaseModel
  get