Types & Schemas #
This section documents the core data structures, Pydantic models, and type definitions used throughout the Kerykeion library to ensure type safety and data consistency.
Overview #
The kerykeion.schemas package contains all the data definitions:
models: Pydantic models for astrological subjects, charts, and points.literals: String literals for strict type hinting (Zodiac signs, Planets, Houses, etc.).settings_models: Configuration models for library settings.chart_template_model: Models for SVG chart generation.exceptions: Standard exception class for the library.
Subscriptable Models #
All Kerykeion models inherit from SubscriptableBaseModel, allowing dictionary-like access to fields in addition to dot notation.
subject = AstrologicalSubjectFactory.from_birth_data(
"Alice", 1990, 6, 15, 12, 0,
lng=-0.1276, lat=51.5074, tz_str="Europe/London", online=False
)
# Access as object
print(subject.name)
# Access as dict
print(subject["name"])
Core Models (models) #
Import from: kerykeion.schemas.models
AstrologicalSubjectModel #
Represents a person or event to be analyzed.
| Field | Type | Description |
|---|---|---|
name |
str |
Name of the subject |
year, month, day |
int |
Birth/Experience date |
hour, minute |
int |
Birth/Experience time |
city |
str |
Location city |
nation |
str |
Country code |
lng, lat |
float |
Coordinates |
altitude |
float | None |
Observer altitude in meters; used by Topocentric calculations |
tz_str |
str |
Timezone string (e.g., “Europe/Rome”) |
zodiac_type |
ZodiacType |
“Tropical” or “Sidereal” |
sidereal_mode |
SiderealMode | None |
Specific Ayanamsa if Sidereal |
ayanamsa_value |
float | None |
Ayanamsa offset in degrees (sidereal only) |
nakshatra_ayanamsa |
SiderealMode | None |
Ayanamsa used to place the nakshatras on a non-sidereal chart. None on a sidereal chart, on a chart with no nakshatras, and when the legacy uncorrected behaviour was requested |
nakshatra_ayanamsa_value |
float | None |
Degrees actually subtracted before the 27-fold division. None exactly when nakshatra_ayanamsa is |
is_diurnal |
bool |
Whether the chart is diurnal (Sun above horizon) |
KerykeionPointModel #
Detailed information about a celestial body or house cusp.
| Field | Type | Description |
|---|---|---|
name |
AstrologicalPoint | Houses |
Planet/Point/House name (e.g., “Sun”, “First_House”) |
sign |
Sign |
Zodiac sign (e.g., “Ari”) |
sign_num |
SignNumbers |
0-11 index of the sign |
position |
float |
Degree within the sign (0-30) |
abs_pos |
float |
Absolute zodiac degree (0-360) |
emoji |
str |
Unicode emoji for the sign |
point_type |
PointType |
"AstrologicalPoint" or "House" |
house |
Houses | None |
House placement (None for house cusps) |
retrograde |
bool | None |
True if retrograde (None for house cusps) |
element |
Element |
Fire, Earth, Air, or Water |
quality |
Quality |
Cardinal, Fixed, or Mutable |
speed |
float | None |
Daily motion in degrees/day |
declination |
float | None |
Equatorial declination in degrees |
magnitude |
float | None |
Apparent visual magnitude (fixed stars only) |
is_out_of_bounds |
bool | None |
True if declination exceeds the Sun’s maximum (~23.44°) |
essential_dignity |
str | None |
Ptolemaic dignity (Domicile, Exaltation, etc.). Requires calculate_dignities=True |
nakshatra |
str | None |
Vedic lunar mansion name. Requires calculate_nakshatra=True; on a non-sidereal chart the longitude is rotated by nakshatra_ayanamsa first |
nakshatra_pada |
int | None |
Nakshatra pada/quarter (1-4). Requires calculate_nakshatra=True |
nakshatra_lord |
str | None |
Vimsottari Dasha lord planet. Requires calculate_nakshatra=True |
gauquelin_sector |
float | None |
Gauquelin 36-sector position. Requires calculate_gauquelin=True |
motion_state |
MotionState | None |
Speed classification (retrograde/stationary/stationary_retrograde/stationary_direct/slow/average/fast). Populated for the ten planets in Earth-centred perspectives. |
azimuth |
float | None |
Azimuth angle in degrees. Requires calculate_local_space=True |
altitude_above_horizon |
float | None |
Altitude above horizon. Requires calculate_local_space=True |
ecliptic_latitude |
float | None |
Ecliptic latitude in degrees north (+) or south (-) of the ecliptic plane |
decan_number |
int | None |
Decan (1-3) within the sign, each spanning 10° |
decan_ruler |
str | None |
Ruling planet of the Chaldean decan |
term_ruler |
str | None |
Ruling planet of the Egyptian term (bound) |
dignity_score |
int | None |
Net Ptolemaic dignity score: the sum of every applicable dignity (domicile +5, exaltation +4, triplicity +3, term +2, face +1) and debility (detriment -5, fall -4) |
nakshatra_number |
int | None |
Nakshatra number (1-27). Requires calculate_nakshatra=True |
Provenance fields. Every point records where its numbers came from:
| Field | Type | Description |
|---|---|---|
source |
str | None |
Ephemeris or derivation source selected for this point (LEB, SPK, Skyfield, Analytical, Derived, …) |
precision_class |
str | None |
Machine-readable source class: ephemeris, analytical, numerical-model, approximate, mixed, unverified-local |
source_reviewed |
bool | None |
Whether the active source artifact passed the backend’s pinned review gate |
ephemeris_coverage_start_jd |
float | None |
First Julian Day covered by the selected source, when the backend reports it |
ephemeris_coverage_end_jd |
float | None |
Last Julian Day covered by the selected source, when the backend reports it |
Fixed-star discovery fields. Populated on the points returned by
FixedStarDiscoveryFactory and
left None everywhere else:
| Field | Type | Description |
|---|---|---|
near_point |
str | None |
Nearest chart point that surfaced this star |
aspect |
str | None |
Aspect name for the contact, usually "conjunction" |
orb |
float | None |
Orb from near_point in degrees |
longitude |
float | None |
Ecliptic longitude for discovery consumers; mirrors abs_pos |
latitude |
float | None |
Ecliptic latitude for discovery results |
degree |
float | None |
Degree within the sign for discovery consumers; mirrors position |
SingleChartDataModel #
The complete data structure for a calculated single chart (Natal, Return, etc.).
| Field | Type | Description |
|---|---|---|
chart_type |
Literal |
"Natal", "Composite", or "SingleReturnChart" |
subject |
Subject Model | The subject (AstrologicalSubjectModel, CompositeSubjectModel, or PlanetReturnModel) |
aspects |
List[AspectModel] |
List of internal aspects |
element_distribution |
ElementDistributionModel |
Points/Percentage for each element |
quality_distribution |
QualityDistributionModel |
Points/Percentage for each quality |
angularities |
List[AngularityModel] |
Classical planets conjunct the four angles (within orb) |
stelliums |
List[StelliumModel] |
Houses with three or more classical planets |
active_points |
List[AstrologicalPoint] |
Points used in calculation |
active_aspects |
List[ActiveAspect] |
Aspect configuration used |
DualChartDataModel #
Data structure for comparing two charts (Synastry, Transits).
| Field | Type | Description |
|---|---|---|
chart_type |
Literal |
"Transit", "Synastry", "DualReturnChart", or "Progression" |
first_subject |
AstrologicalSubjectModel | CompositeSubjectModel | PlanetReturnModel |
The primary subject (e.g., Natal) |
second_subject |
AstrologicalSubjectModel | PlanetReturnModel |
The secondary subject (e.g., Transit) |
aspects |
List[AspectModel] |
Inter-chart aspects |
house_comparison |
HouseComparisonModel | None |
Analysis of planets in partner’s houses (optional) |
relationship_score |
RelationshipScoreModel | None |
Compatibility scoring (optional, synastry only) |
element_distribution |
ElementDistributionModel |
Points/Percentage for each element |
quality_distribution |
QualityDistributionModel |
Points/Percentage for each quality |
first_subject_angularities |
List[AngularityModel] |
Angularities for the first subject |
first_subject_stelliums |
List[StelliumModel] |
Stelliums for the first subject |
second_subject_angularities |
List[AngularityModel] |
Angularities for the second subject |
second_subject_stelliums |
List[StelliumModel] |
Stelliums for the second subject |
active_points |
List[AstrologicalPoint] |
Points used in calculation |
active_aspects |
List[ActiveAspect] |
Aspect configuration used |
AngularityModel #
A classical planet conjunct one of the four chart angles.
| Field | Type | Description |
|---|---|---|
point |
str |
The planet’s name. |
angle |
str |
Which angle (Ascendant, Medium_Coeli, Descendant, Imum_Coeli). |
distance |
float |
Shortest ecliptic arc between planet and angle, in degrees. |
StelliumModel #
A concentration of classical planets in one house.
| Field | Type | Description |
|---|---|---|
house |
int |
House number (1-12). |
points |
list[str] |
Names of the planets gathered there. |
AspectModel #
Represents an astrological aspect between two points.
| Field | Type | Description |
|---|---|---|
p1_name, p2_name |
str |
Names of the two points involved |
p1_owner, p2_owner |
str |
Owner subject names (same for single chart, different for dual) |
aspect |
str |
Name of the aspect (e.g., “conjunction”) |
orbit |
float |
The actual orb (deviation from exact, always non-negative) |
aspect_degrees |
int |
Theoretical angle (e.g., 120 for trine) |
aspect_movement |
AspectMovementType |
“Applying”, “Separating”, or “Static” |
p1_abs_pos |
float |
Absolute position of first point |
p2_abs_pos |
float |
Absolute position of second point |
diff |
float |
Angular difference between the points |
p1, p2 |
int |
Swiss Ephemeris IDs of the points |
p1_speed, p2_speed |
float |
Speed (degrees/day) of each point |
CompositeSubjectModel #
Represents a composite chart derived from two subjects.
| Field | Type | Description |
|---|---|---|
first_subject |
AstrologicalSubjectModel |
First source subject. |
second_subject |
AstrologicalSubjectModel |
Second source subject. |
composite_chart_type |
str |
Type of composite (e.g. Midpoint). |
is_diurnal |
bool | None |
Sect of the chart. Real boolean for Davison charts; None for midpoint composites (no single sky). Sect-aware consumers treat None as a day chart. |
Inherits all celestial point fields from AstrologicalBaseModel.
PlanetReturnModel #
Represents a planetary return chart.
| Field | Type | Description |
|---|---|---|
return_type |
ReturnType |
"Solar", "Lunar", "Heliocentric", or "Lunar_Node_Crossing". |
is_diurnal |
bool | None |
Sect of the return moment (Sun above/below the horizon). Populated by PlanetaryReturnFactory. |
Inherits all celestial point fields from AstrologicalBaseModel.
AstrologicalBaseModel #
Base model for all astrological subjects. Contains common fields for location, time, and all celestial points.
Key fields: name, city, nation, lng, lat, altitude, tz_str,
zodiac_type, houses_system_identifier, perspective_type, sun, moon,
mercury…, first_house…, ascendant, polar_house_fallbacks,
effective_houses_system_identifier, effective_houses_system_name, etc.
altitude is the observer height in meters retained for Topocentric
calculations.
houses_system_identifier (and its houses_system_name) always report the
requested system, even when the cusps did not come from it. Inside the polar
circle a quadrant system is undefined and the cusps are recomputed with a system
that is defined everywhere; the request survives untouched so that a relocation
or a re-cast starts from what the caller asked for rather than inheriting the
substitute.
polar_house_fallbacks(list[PolarHouseFallbackModel], empty when nothing was substituted) records each substitution: the requested and used systems, the real latitude, the latitude the successful call ran at, the epoch’s polar threshold and obliquity, and which chart products changed.effective_houses_system_identifier/effective_houses_system_nameare derived from that list and report the division the cusps really came from. With no fallback they equal the requested pair.
ayanamsa_value (float | None) – the computed ayanamsa offset in degrees for sidereal charts (None for tropical).
nakshatra_ayanamsa (SiderealMode | None) and nakshatra_ayanamsa_value (float | None) – the ayanamsa a non-sidereal chart rotated its longitudes by to derive the nakshatras, and the offset in degrees it actually subtracted. Both are None on a sidereal chart (its own sidereal_mode/ayanamsa_value apply), on a chart that computed no nakshatras, and when nakshatra_ayanamsa=None selected the legacy uncorrected behaviour.
EphemerisDictModel #
Snapshot of planetary positions for a specific date.
| Field | Type | Description |
|---|---|---|
date |
str |
ISO 8601 formatted date |
planets |
List[KerykeionPointModel] |
Planet positions |
houses |
List[KerykeionPointModel] |
House cusps |
fixed_stars |
List[KerykeionPointModel] |
Fixed star positions. Empty unless the producing factory requested stars via active_fixed_stars. |
ephemeris_warnings |
List[EphemerisWarningModel] |
Requested optional points omitted at this sample because no permitted ephemeris or local model produced a value. Empty when nothing was dropped. |
polar_house_fallbacks |
List[PolarHouseFallbackModel] |
House systems substituted at this sample because the requested one is undefined at the sample’s latitude. Empty at temperate latitudes. |
LunarPhaseModel #
Compact lunar phase information attached to every AstrologicalSubjectModel (via the lunar_phase field).
| Field | Type | Description |
|---|---|---|
degrees_between_s_m |
float | int |
Angular separation between the Sun and Moon in degrees. |
moon_phase |
int |
Lunation day (1-28), the 1/28th bin the angle falls in. A counter, not the name’s source. |
moon_emoji |
LunarPhaseEmoji |
Emoji representation of the phase (e.g. "🌕"). |
moon_phase_name |
LunarPhaseName |
Text name (e.g. "Full Moon", "Waxing Crescent"), from a window centred on the event it names. |
major_phase |
LunarPhaseName |
Nearest of the four major phases: "New Moon", "First Quarter", "Full Moon", "Last Quarter". |
stage |
LunarPhaseStage |
"waxing" before the opposition, "waning" after it. |
The name comes from the separation, through eight windows centred on the events: New and Full Moon span 12.857° each (±6.4286° around 0° and 180°), the two quarters 38.571° each (±19.2857° around 90° and 270°), and the four intermediate names fill the rest. So a minute either side of an exact syzygy reads the same, and agrees with the illumination percentage. The lunation day is a different partition of the same circle — its bins begin at the conjunction rather than straddling it — and it is deliberately unchanged.
subject = AstrologicalSubjectFactory.from_birth_data(
"Alice", 1990, 6, 15, 12, 0,
lng=-0.1276, lat=51.5074, tz_str="Europe/London", online=False
)
print(subject.lunar_phase.moon_phase_name) # e.g. "Waxing Gibbous"
print(subject.lunar_phase.moon_emoji) # e.g. "🌔"
print(subject.lunar_phase.degrees_between_s_m) # e.g. 135.7
print(subject.lunar_phase.major_phase) # e.g. "First Quarter"
print(subject.lunar_phase.stage) # e.g. "waxing"
MoonPhaseOverviewModel #
Top-level model returned by MoonPhaseDetailsFactory. Groups timestamp, Sun summary, Moon summary, and location data into a single structure suitable for API responses or serialization.
| Field | Type | Description |
|---|---|---|
timestamp |
int |
Unix timestamp of the observation moment. |
datestamp |
str |
ISO 8601 formatted date string. |
sun |
MoonPhaseSunInfoModel | None |
Sun rise/set times, position, next solar eclipse info. |
moon |
MoonPhaseMoonSummaryModel |
Phase name, illumination, zodiac signs, moonrise/moonset, etc. |
location |
MoonPhaseLocationModel | None |
Latitude, longitude, and precision metadata. |
Nested models (all fields optional unless noted):
| Model | Key Fields |
|---|---|
MoonPhaseSunInfoModel |
sunrise, sunset, solar_noon, day_length, position, next_solar_eclipse |
MoonPhaseSunPositionModel |
altitude, azimuth, distance |
MoonPhaseMoonSummaryModel |
phase, phase_name, major_phase, stage, illumination, age_days, emoji, zodiac, moonrise, moonrise_timestamp, moonset, moonset_timestamp, detailed, events |
MoonPhaseMoonPositionModel |
altitude, azimuth, distance, parallactic_angle, phase_angle |
MoonPhaseMoonDetailedModel |
position, visibility, upcoming_phases, illumination_details |
MoonPhaseUpcomingPhasesModel |
new_moon, first_quarter, full_moon, last_quarter (each a MoonPhaseMajorPhaseWindowModel) |
MoonPhaseIlluminationDetailsModel |
percentage, visible_fraction, phase_angle |
MoonPhaseZodiacModel |
sun_sign, moon_sign |
MoonPhaseLocationModel |
latitude, longitude, precision, using_default_location, note |
ZodiacSignModel #
Metadata for a zodiac sign.
| Field | Type | Description |
|---|---|---|
sign |
Sign |
e.g. "Ari" |
quality |
Quality |
Cardinal, Fixed, Mutable |
element |
Element |
Fire, Earth, Air, Water |
emoji |
SignsEmoji |
e.g. "♈️" |
sign_num |
SignNumbers |
0-11 |
RelationshipScoreModel #
Complete compatibility scoring result.
| Field | Type | Description |
|---|---|---|
score_value |
int |
Total numerical score. |
score_description |
RelationshipScoreDescription |
Category (e.g. “Exceptional”). |
is_destiny_sign |
bool |
Sun-sign compatibility match. |
aspects |
List[RelationshipScoreAspectModel] |
Contributing aspects. |
score_breakdown |
List[ScoreBreakdownItemModel] |
Detailed point explanations. |
subjects |
List[AstrologicalSubjectModel] |
The two compared subjects. |
RelationshipScoreAspectModel #
Aspect contributing to relationship score.
| Field | Type | Description |
|---|---|---|
p1_name |
str |
First point name. |
p2_name |
str |
Second point name. |
aspect |
str |
Aspect name. |
orbit |
float |
Actual orb distance. |
ScoreBreakdownItemModel #
Explains a single scoring rule.
| Field | Type | Description |
|---|---|---|
rule |
str |
Rule ID (e.g. “sun_sun_major”). |
description |
str |
Human-readable explanation. |
points |
int |
Points awarded. |
details |
Optional[str] |
Optional extra info (e.g. “orbit: 1.5°”). Defaults to None. |
ActiveAspect #
TypedDict for configuring aspect orbs.
| Field | Type | Description |
|---|---|---|
name |
AspectName |
e.g. “trine”. |
orb |
float |
Orb in degrees. |
TransitMomentModel #
Snapshot of transits at a specific time.
| Field | Type | Description |
|---|---|---|
date |
str |
ISO 8601 datetime. |
aspects |
List[AspectModel] |
Active transit aspects. |
TransitsTimeRangeModel #
Time series of transit snapshots.
| Field | Type | Description |
|---|---|---|
transits |
List[TransitMomentModel] |
List of moment snapshots. |
subject |
AstrologicalSubjectModel | None |
The natal subject. |
dates |
List[str] | None |
All dates in the range. |
PointInHouseModel #
A point from one chart placed in another chart’s house system.
| Field | Type | Description |
|---|---|---|
point_name |
str |
Planet/point name. |
point_degree |
float |
Degree within sign. |
point_sign |
str |
Zodiac sign. |
point_owner_name |
str |
Owner subject name. |
projected_house_number |
int |
House in target chart (1-12). |
projected_house_name |
str |
House name in target chart. |
projected_house_owner_name |
str |
Target subject name. |
point_owner_house_number |
Optional[int] |
House number in owner’s chart. |
point_owner_house_name |
Optional[str] |
House name in owner’s chart. |
HouseComparisonModel #
Bidirectional house comparison between two subjects.
| Field | Type | Description |
|---|---|---|
first_subject_name |
str |
Name of first subject. |
second_subject_name |
str |
Name of second subject. |
first_points_in_second_houses |
List[PointInHouseModel] |
First subject’s points in second’s houses. |
second_points_in_first_houses |
List[PointInHouseModel] |
Second subject’s points in first’s houses. |
first_cusps_in_second_houses |
List[PointInHouseModel] |
First subject’s cusps in second’s houses. |
second_cusps_in_first_houses |
List[PointInHouseModel] |
Second subject’s cusps in first’s houses. |
ElementDistributionModel #
Element distribution in a chart.
| Field | Type | Description |
|---|---|---|
fire |
float |
Fire element total points. |
earth |
float |
Earth element total. |
air |
float |
Air element total. |
water |
float |
Water element total. |
fire_percentage |
int |
Fire percentage. |
earth_percentage |
int |
Earth percentage. |
air_percentage |
int |
Air percentage. |
water_percentage |
int |
Water percentage. |
QualityDistributionModel #
Quality/modality distribution in a chart.
| Field | Type | Description |
|---|---|---|
cardinal |
float |
Cardinal quality total. |
fixed |
float |
Fixed quality total. |
mutable |
float |
Mutable quality total. |
cardinal_percentage |
int |
Cardinal percentage. |
fixed_percentage |
int |
Fixed percentage. |
mutable_percentage |
int |
Mutable percentage. |
SingleChartAspectsModel #
Aspects within a single chart (Natal, Composite, Return).
| Field | Type | Description |
|---|---|---|
subject |
Subject Model | The chart subject (AstrologicalSubjectModel, CompositeSubjectModel, or PlanetReturnModel). |
aspects |
List[AspectModel] |
Internal aspects. |
active_points |
List[AstrologicalPoint] |
Points used in calculation. |
active_aspects |
List[ActiveAspect] |
Aspect configuration. |
DualChartAspectsModel #
Aspects between two charts (Synastry, Transit).
| Field | Type | Description |
|---|---|---|
first_subject |
Subject Model | Primary chart (AstrologicalSubjectModel, CompositeSubjectModel, or PlanetReturnModel). |
second_subject |
Subject Model | Secondary chart (AstrologicalSubjectModel, CompositeSubjectModel, or PlanetReturnModel). |
aspects |
List[AspectModel] |
Inter-chart aspects. |
active_points |
List[AstrologicalPoint] |
Points used. |
active_aspects |
List[ActiveAspect] |
Aspect configuration. |
ChartDataModel (Union) #
Type alias: Union[SingleChartDataModel, DualChartDataModel]. Represents any chart data output from ChartDataFactory.
V6 Advanced Models #
These models are returned by the v6 advanced calculation factories. Each factory’s documentation page has the full field reference.
Predictive Models #
| Model | Factory | Description |
|---|---|---|
SecondaryProgressionsResultModel |
SecondaryProgressionFactory |
Progressed subject + progressed-to-natal aspects |
ProgressedToNatalAspectModel |
SecondaryProgressionFactory |
A single progressed-to-natal aspect contact |
SolarArcSubjectModel |
SolarArcFactory |
Solar arc, directed points, directed-to-natal aspects |
SolarArcDirectedPointModel |
SolarArcFactory |
A natal point after applying the solar-arc shift |
SolarArcDirectedAspectModel |
SolarArcFactory |
A directed-to-natal aspect |
PrimaryDirectionModel |
PrimaryDirectionsFactory |
A single primary direction result (arc, years) |
SpeculumEntryModel |
PrimaryDirectionsFactory |
Speculum coordinate table entry |
MidpointModel |
MidpointFactory |
Midpoint of two points + aspect activations |
MidpointAspectModel |
MidpointFactory |
An aspect formed between a midpoint and a third point |
Astronomical Models #
| Model | Factory | Description |
|---|---|---|
EclipseSearchResultModel |
EclipseFactory |
Container for solar + lunar eclipse search results |
SolarEclipseModel |
EclipseFactory |
A single solar eclipse event |
LunarEclipseModel |
EclipseFactory |
A single lunar eclipse event |
PlanetaryPhenomenaCollectionModel |
PlanetaryPhenomenaFactory |
Collection of planetary phenomena |
PlanetaryPhenomenaModel |
PlanetaryPhenomenaFactory |
Phenomena for a single planet, including solar_phase |
SolarPhaseThresholdsModel |
PlanetaryPhenomenaFactory |
The three elongation cut-offs a collection’s solar_phase labels were read against |
PlanetaryNodesCollectionModel |
PlanetaryNodesFactory |
Collection of orbital nodes/apsides |
PlanetaryNodeModel |
PlanetaryNodesFactory |
Nodes and apsides for one planet (periapsis/apoapsis/apsis_kind; perihelion/aphelion deprecated) |
HeliacalEventModel |
HeliacalFactory |
A single heliacal visibility event |
OccultationModel |
OccultationFactory |
A single lunar occultation event |
ACGLineModel |
AstroCartographyFactory |
A planetary line on the ACG map |
ACGLinePointModel |
AstroCartographyFactory |
A geographic coordinate on an ACG line |
FixedStarMetadataModel |
FixedStarCatalog |
One catalog entry: name, slug, hip_number, nomenclature, magnitude, constellation |
Traditional / Hellenistic Models #
| Model | Factory | Description |
|---|---|---|
ProfectionsModel |
ProfectionsFactory |
Annual profection timeline with activated houses |
ProfectionYearModel |
ProfectionsFactory |
A single profection year |
FirdariaModel |
FirdariaFactory |
Firdaria planetary period timeline |
FirdariaPeriodModel |
FirdariaFactory |
A major firdaria period |
FirdariaSubPeriodModel |
FirdariaFactory |
A sub-period within a major firdaria |
MutualReceptionModel |
MutualReceptionsFactory |
A single mutual reception pair |
MutualReceptionsModel |
MutualReceptionsFactory |
Collection of mutual receptions in a chart |
HoraryIndicatorsModel |
HoraryIndicatorsFactory |
Horary chart analysis with significators and considerations |
HorarySignificatorModel |
HoraryIndicatorsFactory |
A horary significator planet |
HoraryConsiderationModel |
HoraryIndicatorsFactory |
A horary consideration before judgment |
DominantsModel |
DominantsFactory |
Full dominants result: per-category score tables plus the winning planet/sign/element/quality/house and the score breakdown |
DominantScoreModel |
DominantsFactory |
One scored entry (name, score, percentage, rank, is_dominant) |
DominantBreakdownItemModel |
DominantsFactory |
One audit row explaining where a score came from (category, target, rule, points, detail) |
ZodiacalReleasingModel |
ZodiacalReleasingFactory |
Aphesis timeline from the Lot of Fortune or Spirit, plus the current path |
ZRPeriodModel |
ZodiacalReleasingFactory |
One releasing period, with is_angular, is_loosing_the_bond and nested subperiods |
TriplicityLordsModel |
kerykeion.dignities.get_triplicity_lords |
Primary, secondary and participating triplicity lords for an element and sect |
Calendar / Event Models #
Returned by the factories that scan a date range for discrete moments. Every
collection carries the requested start_jd / end_jd alongside its results,
and every instant is a timezone-aware UTC datetime unless the field name says
Julian Day.
| Model | Factory | Description |
|---|---|---|
LunationModel |
LunationFinderFactory |
One New/First-Quarter/Full/Last-Quarter Moon, with the Sun and Moon positions at that instant |
LunationsCollectionModel |
LunationFinderFactory |
lunations over the requested range |
StationModel |
RetrogradeStationFactory |
One retrograde or direct station: planet, station_type, instant, sign and longitude |
RetrogradeStationsCollectionModel |
RetrogradeStationFactory |
stations over the requested range |
RetrogradePeriodModel |
RetrogradeStationFactory |
A complete retrograde arc (start/end), with start_clipped / end_clipped when the range cut it |
RetrogradePeriodsCollectionModel |
RetrogradeStationFactory |
periods over the requested range |
IngressModel |
SignIngressFactory |
One sign change: from_sign to sign, retrograde, and season_marker for the solstice/equinox ingresses |
SignIngressesCollectionModel |
SignIngressFactory |
ingresses over the requested range |
SignPeriodModel |
SignIngressFactory |
The stay of one planet in one sign, with the same clip flags |
SignPeriodsCollectionModel |
SignIngressFactory |
periods over the requested range |
MundaneAspectModel |
MundaneAspectFactory |
One exact transiting-to-transiting aspect, with both points’ longitude, sign and retrograde state |
MundaneAspectsCollectionModel |
MundaneAspectFactory |
aspects over the requested range |
TransitEventModel |
TransitsTimeRangeFactory |
One transit contact grouped into an event: applying_start, exact_moment, separating_end, min_orb, orb_rate |
TransitEventsTimeRangeModel |
TransitsTimeRangeFactory |
Chronological events plus the natal subject they were measured against |
VoidOfCourseMoonModel |
VoidOfCourseMoonFactory |
Void state at one moment: is_void_of_course, the window, and the aspects that bound it |
VoidOfCourseWindowModel |
VoidOfCourseMoonFactory |
One complete void window with its duration_minutes |
VoidOfCourseWindowsCollectionModel |
VoidOfCourseMoonFactory |
Non-overlapping windows over the requested range |
VoidOfCourseAspectModel |
VoidOfCourseMoonFactory |
The planet, aspect, aspect_degrees and exact_time of a bounding aspect |
SunTimesModel |
SunTimesFactory |
Sunrise, sunset, solar noon, day length, the three twilights, and the polar day/night flags |
PlanetaryHoursModel |
PlanetaryHoursFactory |
The planetary day: day_ruler, current_index, current_ruler, its three bounding solar events, and all 24 hours |
PlanetaryHourModel |
PlanetaryHoursFactory |
One unequal hour: index, ruler, is_diurnal, start, end |
Chart Analysis Models #
| Model | Factory | Description |
|---|---|---|
AngularityModel |
ChartDataFactory |
A planet conjunct a chart angle (within orb) |
StelliumModel |
ChartDataFactory |
A house concentration of three or more planets |
ProgressedPointModel |
SecondaryProgressionFactory |
Per-point natal-vs-progressed comparison with sign-change flag |
Literals & Constants (literals) #
Import from: kerykeion.schemas.literals
These Literal types define the allowed string values for various model fields, providing strict type checking and autocompletion in your IDE.
MotionState #
Classification of a celestial body’s speed relative to its mean daily motion. Populated on KerykeionPointModel.motion_state for the ten planets in Earth-centred perspectives; None elsewhere.
| Value | Description |
|---|---|
"retrograde" |
Moving backward, outside the stationary band. |
"stationary" |
Inside the stationary band (< 5% of mean motion, either direction), turn unknown. |
"stationary_retrograde" |
Inside the band with the speed still falling: the retrograde phase is opening. |
"stationary_direct" |
Inside the band with the speed rising: the retrograde phase is closing. |
"slow" |
Below 80% of mean daily motion. |
"average" |
Between 80% and 120% of mean daily motion. |
"fast" |
Above 120% of mean daily motion. |
The band brackets zero on both sides and is tested before the sign of the speed,
so a body creeping backwards at a hundredth of its mean motion reports a station
rather than a plain "retrograde". The two stations are read differently and the
sign of the speed cannot separate them — both are approached from one side of
zero and left on the other — so they are told apart by the trend: a second speed
sample a day later, falling or rising through the band. Without a usable second
sample the generic "stationary" stands, which is an absence of a claim rather
than a guess.
Downstream matching.
"stationary_retrograde"and"stationary_direct"are new values on this literal. Code that matchesmotion_stateexhaustively — amatchstatement, a dict keyed by every value, a TypeScript union mirrored from the schema — must be extended before it sees a chart cast at a station.
ZodiacType #
Defines the zodiac system to use for calculations.
| Value | Description |
|---|---|
"Tropical" |
Based on the seasons and the position of the Sun at the spring equinox. Most common in Western astrology. |
"Sidereal" |
Based on the fixed stars. Commonly used in Vedic (Jyotish) astrology. Requires a SiderealMode setting. |
Sign #
The 12 zodiac signs, using abbreviated 3-character names.
| Value | Full Name | Element | Quality |
|---|---|---|---|
"Ari" |
Aries | Fire | Cardinal |
"Tau" |
Taurus | Earth | Fixed |
"Gem" |
Gemini | Air | Mutable |
"Can" |
Cancer | Water | Cardinal |
"Leo" |
Leo | Fire | Fixed |
"Vir" |
Virgo | Earth | Mutable |
"Lib" |
Libra | Air | Cardinal |
"Sco" |
Scorpio | Water | Fixed |
"Sag" |
Sagittarius | Fire | Mutable |
"Cap" |
Capricorn | Earth | Cardinal |
"Aqu" |
Aquarius | Air | Fixed |
"Pis" |
Pisces | Water | Mutable |
SignNumbers #
Integer indices for zodiac signs, from 0 (Aries) to 11 (Pisces).
Element #
The four classical elements.
| Value | Signs |
|---|---|
"Fire" |
Aries, Leo, Sagittarius |
"Earth" |
Taurus, Virgo, Capricorn |
"Air" |
Gemini, Libra, Aquarius |
"Water" |
Cancer, Scorpio, Pisces |
Quality #
The three modalities (also called “modes” or “quadruplicities”).
| Value | Description | Signs |
|---|---|---|
"Cardinal" |
Initiating energy, beginnings | Aries, Cancer, Libra, Capricorn |
"Fixed" |
Stable, resistant to change | Taurus, Leo, Scorpio, Aquarius |
"Mutable" |
Adaptable, flexible | Gemini, Virgo, Sagittarius, Pisces |
AstrologicalPoint #
Comprehensive literal for all supported celestial points.
Main Planets:
"Sun", "Moon", "Mercury", "Venus", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune", "Pluto"
Lunar Nodes:
"Mean_North_Lunar_Node", "True_North_Lunar_Node", "Mean_South_Lunar_Node", "True_South_Lunar_Node"
Special Points:
"Chiron", "Mean_Lilith", "True_Lilith", "Interpolated_Lilith", "Mean_Priapus", "True_Priapus", "Earth", "Pholus", "Vertex", "Anti_Vertex", "Interpolated_Perigee", "White_Moon"
Uranian / Hamburg School:
"Cupido", "Hades", "Zeus", "Kronos", "Apollon", "Admetos", "Vulkanus", "Poseidon"
Asteroids:
"Ceres", "Pallas", "Juno", "Vesta"
Trans-Neptunian Objects (TNOs):
"Eris", "Sedna", "Haumea", "Makemake", "Ixion", "Orcus", "Quaoar"
Fixed Stars:
"Regulus", "Spica", "Aldebaran", "Antares", "Sirius", "Fomalhaut", "Algol", "Betelgeuse", "Canopus", "Procyon", "Arcturus", "Pollux", "Deneb", "Altair", "Rigel", "Achernar", "Capella", "Vega", "Alcyone", "Alphecca", "Algorab", "Deneb_Algedi", "Alkaid"
Arabic Parts (Lots):
"Pars_Fortunae" (Part of Fortune), "Pars_Spiritus" (Part of Spirit), "Pars_Amoris" (Part of Love), "Pars_Fidei" (Part of Faith)
Axial Cusps (Angles):
"Ascendant", "Medium_Coeli" (MC/Midheaven), "Descendant", "Imum_Coeli" (IC)
Houses #
The 12 astrological houses.
| Value | Number | Description |
|---|---|---|
"First_House" |
1 | Self, identity, physical appearance, beginnings. |
"Second_House" |
2 | Possessions, values, self-worth, resources. |
"Third_House" |
3 | Communication, siblings, short trips, learning. |
"Fourth_House" |
4 | Home, family, roots, emotional foundation. |
"Fifth_House" |
5 | Creativity, romance, children, pleasure, play. |
"Sixth_House" |
6 | Health, daily work, service, routines. |
"Seventh_House" |
7 | Partnerships, marriage, open enemies, contracts. |
"Eighth_House" |
8 | Transformation, shared resources, death, rebirth. |
"Ninth_House" |
9 | Philosophy, higher education, travel, expansion. |
"Tenth_House" |
10 | Career, public image, reputation, authority. |
"Eleventh_House" |
11 | Friends, groups, hopes, wishes, social networks. |
"Twelfth_House" |
12 | Subconscious, secrets, spirituality, isolation. |
HouseNumbers #
Integers 1 through 12 representing the house numbers.
ChartType #
Defines the type of chart being generated.
| Value | Description |
|---|---|
"Natal" |
Birth chart for a single person or event. |
"Transit" |
Current planetary positions overlaid on a natal chart. |
"Synastry" |
Comparison of two natal charts for relationship analysis. |
"Composite" |
A single chart derived from the midpoints of two charts. |
"SingleReturnChart" |
A Solar or Lunar return chart viewed alone. |
"DualReturnChart" |
A return chart overlaid on the natal chart. |
"Progression" |
A secondary progression chart overlaid on the natal chart. |
AspectName #
The names of all supported aspects.
| Value | Degrees | Description |
|---|---|---|
"conjunction" |
0° | Planets at the same degree; powerful, fused energy. |
"semi-sextile" |
30° | Minor aspect; slight tension or adjustment. |
"semi-square" |
45° | Minor hard aspect; friction. |
"sextile" |
60° | Harmonious; opportunities and talent. |
"quintile" |
72° | Creative aspect; talent. |
"square" |
90° | Major hard aspect; challenge and growth. |
"trine" |
120° | Major harmonious aspect; ease and flow. |
"sesquiquadrate" |
135° | Minor hard aspect; agitation. |
"biquintile" |
144° | Creative aspect. |
"quincunx" |
150° | Inconjunct; requires adjustment. |
"opposition" |
180° | Major hard aspect; polarity and awareness. |
"parallel" |
— | Declination aspect (v6): same declination, same side of the equator. |
"contra-parallel" |
— | Declination aspect (v6): same declination, opposite sides of the equator. |
AspectMovementType #
Describes the phase of an aspect between two points.
| Value | Description |
|---|---|
"Applying" |
The orb is decreasing; the aspect is forming and considered stronger. |
"Separating" |
The orb is increasing; the aspect is dissolving. |
"Static" |
Neither point is moving relative to the other (e.g., two fixed stars). |
SiderealMode #
The Ayanamsa (precession mode) used for Sidereal calculations.
48 modes total: 47 named + USER for custom ayanamsa definitions.
Classic modes:
| Value | Description |
|---|---|
"FAGAN_BRADLEY" |
Standard Western Sidereal ayanamsa, widely used in the West. |
"LAHIRI" |
Standard Vedic/Jyotish ayanamsa, official in India. |
"DELUCE" |
DeLuce ayanamsa. |
"RAMAN" |
B.V. Raman’s ayanamsa, popular in South India. |
"USHASHASHI" |
Ushashashi ayanamsa. |
"KRISHNAMURTI" |
K.S. Krishnamurti’s ayanamsa for KP system. |
"DJWHAL_KHUL" |
Djwhal Khul (Theosophical) ayanamsa. |
"YUKTESHWAR" |
Sri Yukteshwar’s ayanamsa. |
"JN_BHASIN" |
J.N. Bhasin’s ayanamsa. |
"BABYL_KUGLER1" |
Babylonian (Kugler 1). |
"BABYL_KUGLER2" |
Babylonian (Kugler 2). |
"BABYL_KUGLER3" |
Babylonian (Kugler 3). |
"BABYL_HUBER" |
Babylonian (Huber). |
"BABYL_ETPSC" |
Babylonian (ETPSC). |
"ALDEBARAN_15TAU" |
Aldebaran at 15° Taurus, ancient reference point. |
"HIPPARCHOS" |
Based on Hipparchos’ observations. |
"SASSANIAN" |
Sassanian (Persian) ayanamsa. |
"J2000" |
Julian epoch J2000.0 reference frame. |
"J1900" |
Julian epoch J1900.0 reference frame. |
"B1950" |
Besselian epoch B1950.0 reference frame. |
Extended modes:
| Value | Category | Description |
|---|---|---|
"ARYABHATA" |
Indian/Vedic | Aryabhata ayanamsa. |
"ARYABHATA_522" |
Indian/Vedic | Aryabhata (522 CE epoch). |
"ARYABHATA_MSUN" |
Indian/Vedic | Aryabhata (mean Sun). |
"SURYASIDDHANTA" |
Indian/Vedic | Suryasiddhanta ayanamsa. |
"SURYASIDDHANTA_MSUN" |
Indian/Vedic | Suryasiddhanta (mean Sun). |
"SS_CITRA" |
Indian/Vedic | Suryasiddhanta (Citra/Spica reference). |
"SS_REVATI" |
Indian/Vedic | Suryasiddhanta (Revati/zeta Piscium reference). |
"TRUE_CITRA" |
True star-based | True Citra (Spica at 0° Libra). |
"TRUE_MULA" |
True star-based | True Mula (lambda Scorpii at 0° Sagittarius). |
"TRUE_PUSHYA" |
True star-based | True Pushya (delta Cancri reference). |
"TRUE_REVATI" |
True star-based | True Revati (zeta Piscium at 0° Aries). |
"TRUE_SHEORAN" |
True star-based | True Sheoran ayanamsa. |
"LAHIRI_1940" |
Lahiri variants | Lahiri (1940 epoch). |
"LAHIRI_ICRC" |
Lahiri variants | Lahiri (ICRC standard). |
"LAHIRI_VP285" |
Lahiri variants | Lahiri (VP285 variant). |
"KRISHNAMURTI_VP291" |
Lahiri variants | Krishnamurti (VP291 variant). |
"GALCENT_0SAG" |
Galactic alignment | Galactic Center at 0° Sagittarius. |
"GALCENT_COCHRANE" |
Galactic alignment | Galactic Center (Cochrane). |
"GALCENT_MULA_WILHELM" |
Galactic alignment | Galactic Center (Mula/Wilhelm). |
"GALCENT_RGILBRAND" |
Galactic alignment | Galactic Center (Rgilbrand). |
"GALEQU_FIORENZA" |
Galactic alignment | Galactic Equator (Fiorenza). |
"GALEQU_IAU1958" |
Galactic alignment | Galactic Equator (IAU 1958). |
"GALEQU_MULA" |
Galactic alignment | Galactic Equator (Mula). |
"GALEQU_TRUE" |
Galactic alignment | Galactic Equator (true). |
"GALALIGN_MARDYKS" |
Galactic alignment | Galactic alignment (Mardyks). |
"BABYL_BRITTON" |
Babylonian | Babylonian (Britton). |
"VALENS_MOON" |
Historical | Vettius Valens Moon ayanamsa. |
"USER" |
User-defined | Custom ayanamsa. Requires custom_ayanamsa_t0 (Julian Day epoch) and custom_ayanamsa_ayan_t0 (degrees at epoch). |
HousesSystemIdentifier #
Single-character identifiers for different house systems.
| ID | House System | Description |
|---|---|---|
"A" |
Equal (from Asc) | Houses are 30° each, starting from Ascendant. |
"B" |
Alcabitius | Medieval semi-arc system. |
"C" |
Campanus | Space-based, uses prime vertical. |
"D" |
Equal (from MC) | Houses are 30° each, with MC on 10th cusp. |
"F" |
Carter Poli-Equatorial | Rarely used system. |
"H" |
Horizon/Azimuth | Based on azimuth circle. |
"I" |
Sunshine | Modern solar-based system. |
"i" |
Sunshine/Alternate | Alternate Sunshine calculation. |
"K" |
Koch | Time-based, uses birthplace latitude. Popular in Germany. |
"L" |
Pullen SD (Sinusoidal Delta) | Modern system. |
"M" |
Morinus | Based on the equator, rarely used. |
"N" |
Equal / 1st House = Aries | Fixed house system. |
"O" |
Porphyry | Quadrant-based, equal division of quadrants. |
"P" |
Placidus | Default. Most popular in modern Western astrology. Time-based. |
"Q" |
Pullen SR (Sinusoidal Ratio) | Modern system. |
"R" |
Regiomontanus | Space-based system. Standard for Horary astrology. |
"S" |
Sripati | Vedic-influenced system. |
"T" |
Polich/Page (Topocentric) | Similar to Placidus, accounts for location. |
"U" |
Krusinski-Pisa-Goelzer | Modern system. |
"V" |
Equal / Vehlow | Equal houses with Asc in middle of 1st house. |
"W" |
Whole Sign | Each house is an entire sign. Standard in Hellenistic/Vedic. |
"X" |
Axial Rotation / Meridian | Meridian-based system. |
"Y" |
APC Houses | Astrological PC houses. |
PerspectiveType #
Defines the viewpoint for calculations.
| Value | Description |
|---|---|
"Apparent Geocentric" |
Earth-centered, accounting for light-time and aberration. Standard for most astrology. |
"True Geocentric" |
Earth-centered, without light-time correction. |
"Heliocentric" |
Sun-centered. Used for some esoteric techniques. |
"Topocentric" |
Observer’s exact location on Earth’s surface. Most accurate for Moon position. |
"Selenocentric" |
Moon-centered. |
"Mercurycentric" |
Mercury-centered. |
"Venuscentric" |
Venus-centered. |
"Marscentric" |
Mars-centered. |
"Jupitercentric" |
Jupiter-centered. |
"Saturncentric" |
Saturn-centered. |
"Barycentric" |
Centered on the Solar System barycenter. |
LunarPhaseName #
The eight traditional names for the Moon’s phases.
| Value | Phase Index | Description |
|---|---|---|
"New Moon" |
0 | Moon conjunct Sun; invisible, new beginnings. |
"Waxing Crescent" |
1 | First sliver visible; intention setting. |
"First Quarter" |
2 | Half moon; action, challenges, decisions. |
"Waxing Gibbous" |
3 | Building toward full; refinement, adjustment. |
"Full Moon" |
4 | Moon opposite Sun; culmination, illumination. |
"Waning Gibbous" |
5 | Disseminating; sharing, teaching, gratitude. |
"Last Quarter" |
6 | Half moon waning; release, letting go. |
"Waning Crescent" |
7 | Final sliver; rest, surrender, preparation. |
LunarPhaseEmoji #
Emojis corresponding to the lunar phases.
| Emoji | Phase Index | Phase Name |
|---|---|---|
"🌑" |
0 | New Moon |
"🌒" |
1 | Waxing Crescent |
"🌓" |
2 | First Quarter |
"🌔" |
3 | Waxing Gibbous |
"🌕" |
4 | Full Moon |
"🌖" |
5 | Waning Gibbous |
"🌗" |
6 | Last Quarter |
"🌘" |
7 | Waning Crescent |
SolarPhase #
How near the Sun a body is, named as a condition of visibility. Set on every PlanetaryPhenomenaModel.
| Value | Meaning |
|---|---|
"cazimi" |
In the heart of the Sun; the narrowest of the four. |
"combust" |
Burnt — close enough that the body cannot be seen at all. |
"under_the_beams" |
Within the Sun’s rays; not yet out of the twilight. |
"free" |
Far enough from the Sun to be seen in a dark sky. |
The three cut-offs that separate them are conventions, not constants of nature, and the schools disagree on all three. They live in SolarPhaseThresholdsModel (cazimi_deg 0.2833, combust_deg 8.5, under_beams_deg 17.0), which every phenomena collection echoes back and any caller may replace. The quantity compared is the true angular separation from the Sun (latitude included), not the difference in ecliptic longitude.
ApsisKind #
Which body the apsides of an orbit are measured against. Set on every PlanetaryNodeModel.
| Value | Meaning |
|---|---|
"heliocentric" |
Apsides about the Sun — every planet. |
"geocentric" |
Apsides about the Earth — the Moon alone. |
The generic periapsis/apoapsis fields are correct under either reading; this literal says which one is in force. The older perihelion/aphelion name the Sun and are deprecated for that reason.
KerykeionChartTheme #
Available visual themes for chart rendering.
| Value | Description |
|---|---|
"classic" |
Traditional white background, standard colors. |
"dark" |
Modern dark mode for reduced eye strain. |
"black-and-white" |
High contrast monochrome for print output. |
KerykeionChartLanguage #
Supported language codes for chart labels.
| Code | Language |
|---|---|
"EN" |
English |
"FR" |
French |
"PT" |
Portuguese |
"IT" |
Italian |
"CN" |
Chinese |
"ES" |
Spanish |
"RU" |
Russian |
"TR" |
Turkish |
"DE" |
German |
"HI" |
Hindi |
ReturnType #
Types of planetary returns supported.
| Value | Description |
|---|---|
"Solar" |
Sun returns to natal position; annual birthday chart. |
"Lunar" |
Moon returns to natal position; monthly cycle chart. |
"Heliocentric" |
A planet returns to its natal heliocentric longitude (not Sun/Moon). |
"Lunar_Node_Crossing" |
The Moon crosses its own node (ecliptic latitude = 0). |
CompositeChartType #
Types of composite charts.
| Value | Description |
|---|---|
"Midpoint" |
Chart created from midpoints of two natal charts. |
"Davison" |
Chart cast for the midpoint in time and space between two births. |
PointType #
Distinguishes between celestial bodies, house cusps, and midpoints.
| Value | Description |
|---|---|
"AstrologicalPoint" |
Planets, asteroids, angles, etc. |
"House" |
House cusps (1st through 12th house). |
"Midpoint" |
Midpoint between two points (see MidpointFactory). |
SignsEmoji #
Zodiac sign symbols.
| Emoji | Sign |
|---|---|
"♈️" |
Aries |
"♉️" |
Taurus |
"♊️" |
Gemini |
"♋️" |
Cancer |
"♌️" |
Leo |
"♍️" |
Virgo |
"♎️" |
Libra |
"♏️" |
Scorpio |
"♐️" |
Sagittarius |
"♑️" |
Capricorn |
"♒️" |
Aquarius |
"♓️" |
Pisces |
HouseNumbers #
Integer identifiers for houses (1-12).
RelationshipScoreDescription #
Categorical descriptions for compatibility scores.
"Minimal", "Medium", "Important", "Very Important", "Exceptional", "Rare Exceptional"
Settings (settings_models) #
Import from: kerykeion.schemas.settings_models
KerykeionSettingsModel #
Global configuration for the library, primarily handling internationalization.
language_settings: A dictionary mapping language codes (e.g., “EN”, “IT”) toKerykeionLanguageModel.
KerykeionLanguageModel #
Defines all the string labels used in chart generation and reports. Planet/point names are accessed via the nested celestial_points field (KerykeionLanguageCelestialPointModel), not directly on the model.
celestial_points:KerykeionLanguageCelestialPointModel— localized names for Sun, Moon, Mercury, etc.fire,earth,air,water(Element names, lowercase keys)- Additional layout/formatting strings used in chart rendering.
Exceptions (exceptions) #
Import from: kerykeion.schemas.exceptions
KerykeionException #
The base exception class for all library-specific errors.
from kerykeion.schemas import KerykeionException
from kerykeion import AstrologicalSubjectFactory
try:
subject = AstrologicalSubjectFactory.from_birth_data(
"Example", 1990, 1, 1, 12, 0,
city="UnknownCity", nation="XX",
online=True
)
except KerykeionException as e:
print(f"Error calculating chart: {e}")
Internal Schemas (chart_template_model) #
These models are used internally for SVG generation but exposed for advanced customization.
ChartTemplateModel #
Variables passed to the XML string.Template for rendering the SVG.
| Field | Type | Description |
|---|---|---|
viewbox |
str |
SVG viewBox attribute value. |
chart_width, chart_height |
float |
Dimensions of the chart in pixels. |
stringTitle |
str |
Chart title string. |
paper_color_0 |
str |
Font color. |
background_color |
str |
Dynamic background color (theme color or transparent). |
planets_color_0 … planets_color_61 |
str |
Per-point colors (index 0 = Sun, 1 = Moon, …). |
zodiac_color_0 … zodiac_color_11 |
str |
Per-sign colors (index 0 = Aries). |
orb_color_0 … orb_color_180 |
str |
Aspect colors keyed by aspect degrees. |
makeZodiac, makeHouses, makePlanets, makeAspects |
str |
SVG markup fragments for each chart layer. |
makeLunarPhase |
str |
SVG markup for the lunar phase. |
(And many more styling variables)
Detailed Settings Models #
KerykeionLanguageCelestialPointModel #
Used within KerykeionLanguageModel to define localized names for specific bodies.
| Field | Description |
|---|---|
Sun |
Localized name for Sun. |
Moon |
Localized name for Moon. |
Mercury, Venus, etc. |
Localized name for respective planet. |
True_North_Lunar_Node |
Localized name for North Node. |
Pars_Fortunae |
Localized name for Part of Fortune. |