kerykeion 4.18.3__py3-none-any.whl → 5.1.9__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of kerykeion might be problematic. Click here for more details.

Files changed (76) hide show
  1. kerykeion/__init__.py +56 -11
  2. kerykeion/aspects/__init__.py +7 -4
  3. kerykeion/aspects/aspects_factory.py +568 -0
  4. kerykeion/aspects/aspects_utils.py +86 -13
  5. kerykeion/astrological_subject_factory.py +1901 -0
  6. kerykeion/backword.py +820 -0
  7. kerykeion/chart_data_factory.py +552 -0
  8. kerykeion/charts/__init__.py +2 -2
  9. kerykeion/charts/chart_drawer.py +2794 -0
  10. kerykeion/charts/charts_utils.py +1066 -309
  11. kerykeion/charts/draw_planets.py +602 -351
  12. kerykeion/charts/templates/aspect_grid_only.xml +337 -193
  13. kerykeion/charts/templates/chart.xml +441 -240
  14. kerykeion/charts/templates/wheel_only.xml +365 -211
  15. kerykeion/charts/themes/black-and-white.css +148 -0
  16. kerykeion/charts/themes/classic.css +107 -76
  17. kerykeion/charts/themes/dark-high-contrast.css +145 -107
  18. kerykeion/charts/themes/dark.css +146 -107
  19. kerykeion/charts/themes/light.css +146 -103
  20. kerykeion/charts/themes/strawberry.css +158 -0
  21. kerykeion/composite_subject_factory.py +408 -0
  22. kerykeion/ephemeris_data_factory.py +443 -0
  23. kerykeion/fetch_geonames.py +81 -21
  24. kerykeion/house_comparison/__init__.py +6 -0
  25. kerykeion/house_comparison/house_comparison_factory.py +103 -0
  26. kerykeion/house_comparison/house_comparison_utils.py +126 -0
  27. kerykeion/kr_types/__init__.py +66 -6
  28. kerykeion/kr_types/chart_template_model.py +20 -0
  29. kerykeion/kr_types/kerykeion_exception.py +15 -9
  30. kerykeion/kr_types/kr_literals.py +14 -106
  31. kerykeion/kr_types/kr_models.py +14 -179
  32. kerykeion/kr_types/settings_models.py +15 -152
  33. kerykeion/planetary_return_factory.py +805 -0
  34. kerykeion/relationship_score_factory.py +301 -0
  35. kerykeion/report.py +750 -65
  36. kerykeion/schemas/__init__.py +106 -0
  37. kerykeion/schemas/chart_template_model.py +367 -0
  38. kerykeion/schemas/kerykeion_exception.py +20 -0
  39. kerykeion/schemas/kr_literals.py +181 -0
  40. kerykeion/schemas/kr_models.py +603 -0
  41. kerykeion/schemas/settings_models.py +188 -0
  42. kerykeion/settings/__init__.py +20 -1
  43. kerykeion/settings/chart_defaults.py +444 -0
  44. kerykeion/settings/config_constants.py +152 -0
  45. kerykeion/settings/kerykeion_settings.py +36 -61
  46. kerykeion/settings/translation_strings.py +1499 -0
  47. kerykeion/settings/translations.py +74 -0
  48. kerykeion/sweph/ast136/s136108s.se1 +0 -0
  49. kerykeion/sweph/ast136/s136199s.se1 +0 -0
  50. kerykeion/sweph/ast136/s136472s.se1 +0 -0
  51. kerykeion/sweph/ast28/se28978s.se1 +0 -0
  52. kerykeion/sweph/ast50/se50000s.se1 +0 -0
  53. kerykeion/sweph/ast90/se90377s.se1 +0 -0
  54. kerykeion/sweph/ast90/se90482s.se1 +0 -0
  55. kerykeion/sweph/sefstars.txt +1602 -0
  56. kerykeion/transits_time_range_factory.py +302 -0
  57. kerykeion/utilities.py +626 -125
  58. kerykeion-5.1.9.dist-info/METADATA +1793 -0
  59. kerykeion-5.1.9.dist-info/RECORD +63 -0
  60. {kerykeion-4.18.3.dist-info → kerykeion-5.1.9.dist-info}/WHEEL +1 -1
  61. kerykeion/aspects/natal_aspects.py +0 -143
  62. kerykeion/aspects/synastry_aspects.py +0 -113
  63. kerykeion/astrological_subject.py +0 -818
  64. kerykeion/charts/kerykeion_chart_svg.py +0 -894
  65. kerykeion/enums.py +0 -51
  66. kerykeion/ephemeris_data.py +0 -178
  67. kerykeion/kr_types/chart_types.py +0 -88
  68. kerykeion/relationship_score/__init__.py +0 -2
  69. kerykeion/relationship_score/relationship_score.py +0 -175
  70. kerykeion/relationship_score/relationship_score_factory.py +0 -275
  71. kerykeion/settings/kr.config.json +0 -721
  72. kerykeion-4.18.3.dist-info/LICENSE +0 -661
  73. kerykeion-4.18.3.dist-info/METADATA +0 -396
  74. kerykeion-4.18.3.dist-info/RECORD +0 -42
  75. kerykeion-4.18.3.dist-info/entry_points.txt +0 -3
  76. /LICENSE → /kerykeion-5.1.9.dist-info/licenses/LICENSE +0 -0
@@ -0,0 +1,106 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ This is part of Kerykeion (C) 2025 Giacomo Battaglia
4
+ """
5
+
6
+ from .kerykeion_exception import KerykeionException
7
+ from .kr_literals import (
8
+ ZodiacType,
9
+ Sign,
10
+ SignNumbers,
11
+ AspectMovementType,
12
+ Houses,
13
+ HouseNumbers,
14
+ AstrologicalPoint,
15
+ Element,
16
+ Quality,
17
+ ChartType,
18
+ PointType,
19
+ LunarPhaseEmoji,
20
+ LunarPhaseName,
21
+ SiderealMode,
22
+ HousesSystemIdentifier,
23
+ PerspectiveType,
24
+ SignsEmoji,
25
+ KerykeionChartTheme,
26
+ KerykeionChartLanguage,
27
+ RelationshipScoreDescription,
28
+ CompositeChartType,
29
+ AspectName,
30
+ # Deprecated aliases
31
+ Planet,
32
+ AxialCusps,
33
+ )
34
+ from .kr_models import (
35
+ SubscriptableBaseModel,
36
+ LunarPhaseModel,
37
+ KerykeionPointModel,
38
+ AstrologicalBaseModel,
39
+ AstrologicalSubjectModel,
40
+ CompositeSubjectModel,
41
+ PlanetReturnModel,
42
+ EphemerisDictModel,
43
+ AspectModel,
44
+ ZodiacSignModel,
45
+ RelationshipScoreAspectModel,
46
+ RelationshipScoreModel,
47
+ ActiveAspect,
48
+ TransitMomentModel,
49
+ TransitsTimeRangeModel,
50
+ )
51
+ from .chart_template_model import ChartTemplateModel
52
+ from .settings_models import KerykeionSettingsModel
53
+
54
+ __all__ = [
55
+ # Exceptions
56
+ "KerykeionException",
57
+
58
+ # Settings and Chart Types
59
+ "ChartTemplateModel",
60
+ "KerykeionSettingsModel",
61
+
62
+ # Main Literal Types (from kr_literals)
63
+ "ZodiacType",
64
+ "Sign",
65
+ "SignNumbers",
66
+ "AspectMovementType",
67
+ "Houses",
68
+ "HouseNumbers",
69
+ "AstrologicalPoint",
70
+ "Element",
71
+ "Quality",
72
+ "ChartType",
73
+ "PointType",
74
+ "LunarPhaseEmoji",
75
+ "LunarPhaseName",
76
+ "SiderealMode",
77
+ "HousesSystemIdentifier",
78
+ "PerspectiveType",
79
+ "SignsEmoji",
80
+ "KerykeionChartTheme",
81
+ "KerykeionChartLanguage",
82
+ "RelationshipScoreDescription",
83
+ "CompositeChartType",
84
+ "AspectName",
85
+
86
+ # Deprecated aliases (for v4.x compatibility, will be removed in v6.0)
87
+ "Planet",
88
+ "AxialCusps",
89
+
90
+ # Main Model Classes (from kr_models)
91
+ "SubscriptableBaseModel",
92
+ "LunarPhaseModel",
93
+ "KerykeionPointModel",
94
+ "AstrologicalBaseModel",
95
+ "AstrologicalSubjectModel",
96
+ "CompositeSubjectModel",
97
+ "PlanetReturnModel",
98
+ "EphemerisDictModel",
99
+ "AspectModel",
100
+ "ZodiacSignModel",
101
+ "RelationshipScoreAspectModel",
102
+ "RelationshipScoreModel",
103
+ "ActiveAspect",
104
+ "TransitMomentModel",
105
+ "TransitsTimeRangeModel",
106
+ ]
@@ -0,0 +1,367 @@
1
+ from .kr_models import SubscriptableBaseModel
2
+
3
+
4
+ class ChartTemplateModel(SubscriptableBaseModel):
5
+ """
6
+ Pydantic model for chart template variables used in SVG generation.
7
+
8
+ This model contains all the template variables required to render
9
+ astrological charts, including colors, dimensions, and SVG components.
10
+ """
11
+
12
+ transitRing: str
13
+ """SVG markup for the transit ring"""
14
+
15
+ degreeRing: str
16
+ """SVG markup for the degree ring"""
17
+
18
+ background_circle: str
19
+ """SVG markup for the background circle"""
20
+
21
+ first_circle: str
22
+ """SVG markup for the first circle"""
23
+
24
+ second_circle: str
25
+ """SVG markup for the second circle"""
26
+
27
+ third_circle: str
28
+ """SVG markup for the third circle"""
29
+
30
+ makeAspects: str
31
+ """SVG markup for aspects"""
32
+
33
+ makeAspectGrid: str
34
+ """SVG markup for aspect grid"""
35
+
36
+ makeDoubleChartAspectList: str
37
+ """SVG markup for double chart aspect list"""
38
+
39
+ makeHouseComparisonGrid: str
40
+ """SVG markup for house comparison grid"""
41
+
42
+ full_wheel_translate_y: int
43
+ """Vertical translation for the full wheel group"""
44
+
45
+ houses_and_planets_translate_y: int
46
+ """Vertical translation for the houses and planets grid group"""
47
+
48
+ aspect_grid_translate_y: int
49
+ """Vertical translation for the aspect grid group"""
50
+
51
+ aspect_list_translate_y: int
52
+ """Vertical translation for the aspect list group"""
53
+
54
+ title_translate_y: int
55
+ """Vertical translation for the title and top-left text block"""
56
+
57
+ elements_translate_y: int
58
+ """Vertical translation for the elements summary block"""
59
+
60
+ qualities_translate_y: int
61
+ """Vertical translation for the qualities summary block"""
62
+
63
+ lunar_phase_translate_y: int
64
+ """Vertical translation for the lunar phase block"""
65
+
66
+ bottom_left_translate_y: int
67
+ """Vertical translation for the bottom-left info block"""
68
+
69
+ chart_height: float
70
+ """Chart height in pixels"""
71
+
72
+ chart_width: float
73
+ """Chart width in pixels"""
74
+
75
+ viewbox: str
76
+ """SVG viewBox attribute value"""
77
+
78
+ stringTitle: str
79
+ """Chart title string"""
80
+
81
+ top_left_0: str
82
+ """Top left panel content - line 0"""
83
+
84
+ bottom_left_0: str
85
+ """Bottom left panel content - line 0"""
86
+
87
+ bottom_left_1: str
88
+ """Bottom left panel content - line 1"""
89
+
90
+ bottom_left_2: str
91
+ """Bottom left panel content - line 2"""
92
+
93
+ bottom_left_3: str
94
+ """Bottom left panel content - line 3"""
95
+
96
+ bottom_left_4: str
97
+ """Bottom left panel content - line 4"""
98
+
99
+ top_left_1: str
100
+ """Top left panel content - line 1"""
101
+
102
+ top_left_2: str
103
+ """Top left panel content - line 2"""
104
+
105
+ top_left_3: str
106
+ """Top left panel content - line 3"""
107
+
108
+ top_left_4: str
109
+ """Top left panel content - line 4"""
110
+
111
+ top_left_5: str
112
+ """Top left panel content - line 5"""
113
+
114
+ paper_color_0: str
115
+ """Font color"""
116
+
117
+ background_color: str
118
+ """Dynamic background color (can be transparent or theme color)"""
119
+
120
+ planets_color_0: str
121
+ """Planet color for Sun (index 0)"""
122
+
123
+ planets_color_1: str
124
+ """Planet color for Moon (index 1)"""
125
+
126
+ planets_color_2: str
127
+ """Planet color for Mercury (index 2)"""
128
+
129
+ planets_color_3: str
130
+ """Planet color for Venus (index 3)"""
131
+
132
+ planets_color_4: str
133
+ """Planet color for Mars (index 4)"""
134
+
135
+ planets_color_5: str
136
+ """Planet color for Jupiter (index 5)"""
137
+
138
+ planets_color_6: str
139
+ """Planet color for Saturn (index 6)"""
140
+
141
+ planets_color_7: str
142
+ """Planet color for Uranus (index 7)"""
143
+
144
+ planets_color_8: str
145
+ """Planet color for Neptune (index 8)"""
146
+
147
+ planets_color_9: str
148
+ """Planet color for Pluto (index 9)"""
149
+
150
+ planets_color_10: str
151
+ """Planet color for North Node (index 10)"""
152
+
153
+ planets_color_11: str
154
+ """Planet color for South Node (index 11)"""
155
+
156
+ planets_color_12: str
157
+ """Planet color for Chiron (index 12)"""
158
+
159
+ planets_color_13: str
160
+ """Planet color for Ceres (index 13)"""
161
+
162
+ planets_color_14: str
163
+ """Planet color for Pallas (index 14)"""
164
+
165
+ planets_color_15: str
166
+ """Planet color for Juno (index 15)"""
167
+
168
+ planets_color_16: str
169
+ """Planet color for Vesta (index 16)"""
170
+
171
+ planets_color_17: str
172
+ """Planet color for Pars Fortunae (index 17)"""
173
+
174
+ planets_color_18: str
175
+ """Planet color for Draconic Moon (index 18)"""
176
+
177
+ planets_color_19: str
178
+ """Planet color for additional celestial point (index 19)"""
179
+
180
+ planets_color_20: str
181
+ """Planet color for celestial point (index 20)"""
182
+
183
+ planets_color_21: str
184
+ """Planet color for celestial point (index 21)"""
185
+
186
+ planets_color_22: str
187
+ """Planet color for celestial point (index 22)"""
188
+
189
+ planets_color_23: str
190
+ """Planet color for celestial point (index 23)"""
191
+
192
+ planets_color_24: str
193
+ """Planet color for celestial point (index 24)"""
194
+
195
+ planets_color_25: str
196
+ """Planet color for celestial point (index 25)"""
197
+
198
+ planets_color_26: str
199
+ """Planet color for celestial point (index 26)"""
200
+
201
+ planets_color_27: str
202
+ """Planet color for celestial point (index 27)"""
203
+
204
+ planets_color_28: str
205
+ """Planet color for celestial point (index 28)"""
206
+
207
+ planets_color_29: str
208
+ """Planet color for celestial point (index 29)"""
209
+
210
+ planets_color_30: str
211
+ """Planet color for celestial point (index 30)"""
212
+
213
+ planets_color_31: str
214
+ """Planet color for celestial point (index 31)"""
215
+
216
+ planets_color_32: str
217
+ """Planet color for celestial point (index 32)"""
218
+
219
+ planets_color_33: str
220
+ """Planet color for celestial point (index 33)"""
221
+
222
+ planets_color_34: str
223
+ """Planet color for celestial point (index 34)"""
224
+
225
+ planets_color_35: str
226
+ """Planet color for celestial point (index 35)"""
227
+
228
+ planets_color_36: str
229
+ """Planet color for celestial point (index 36)"""
230
+
231
+ planets_color_37: str
232
+ """Planet color for celestial point (index 37)"""
233
+
234
+ planets_color_38: str
235
+ """Planet color for celestial point (index 38)"""
236
+
237
+ planets_color_39: str
238
+ """Planet color for celestial point (index 39)"""
239
+
240
+ planets_color_40: str
241
+ """Planet color for celestial point (index 40)"""
242
+
243
+ planets_color_41: str
244
+ """Planet color for celestial point (index 41)"""
245
+
246
+ zodiac_color_0: str
247
+ """Zodiac color for Aries (index 0)"""
248
+
249
+ zodiac_color_1: str
250
+ """Zodiac color for Taurus (index 1)"""
251
+
252
+ zodiac_color_2: str
253
+ """Zodiac color for Gemini (index 2)"""
254
+
255
+ zodiac_color_3: str
256
+ """Zodiac color for Cancer (index 3)"""
257
+
258
+ zodiac_color_4: str
259
+ """Zodiac color for Leo (index 4)"""
260
+
261
+ zodiac_color_5: str
262
+ """Zodiac color for Virgo (index 5)"""
263
+
264
+ zodiac_color_6: str
265
+ """Zodiac color for Libra (index 6)"""
266
+
267
+ zodiac_color_7: str
268
+ """Zodiac color for Scorpio (index 7)"""
269
+
270
+ zodiac_color_8: str
271
+ """Zodiac color for Sagittarius (index 8)"""
272
+
273
+ zodiac_color_9: str
274
+ """Zodiac color for Capricorn (index 9)"""
275
+
276
+ zodiac_color_10: str
277
+ """Zodiac color for Aquarius (index 10)"""
278
+
279
+ zodiac_color_11: str
280
+ """Zodiac color for Pisces (index 11)"""
281
+
282
+ orb_color_0: str
283
+ """Aspect color for conjunction (0°)"""
284
+
285
+ orb_color_30: str
286
+ """Aspect color for semi-sextile (30°)"""
287
+
288
+ orb_color_45: str
289
+ """Aspect color for semi-square (45°)"""
290
+
291
+ orb_color_60: str
292
+ """Aspect color for sextile (60°)"""
293
+
294
+ orb_color_72: str
295
+ """Aspect color for quintile (72°)"""
296
+
297
+ orb_color_90: str
298
+ """Aspect color for square (90°)"""
299
+
300
+ orb_color_120: str
301
+ """Aspect color for trine (120°)"""
302
+
303
+ orb_color_135: str
304
+ """Aspect color for sesqui-quadrate (135°)"""
305
+
306
+ orb_color_144: str
307
+ """Aspect color for bi-quintile (144°)"""
308
+
309
+ orb_color_150: str
310
+ """Aspect color for quincunx (150°)"""
311
+
312
+ orb_color_180: str
313
+ """Aspect color for opposition (180°)"""
314
+
315
+ makeZodiac: str
316
+ """SVG markup for zodiac signs"""
317
+
318
+ makeHouses: str
319
+ """SVG markup for houses"""
320
+
321
+ makePlanets: str
322
+ """SVG markup for planets"""
323
+
324
+ makeMainPlanetGrid: str
325
+ """SVG markup for main planet grid"""
326
+
327
+ makeSecondaryPlanetGrid: str
328
+ """SVG markup for secondary planet grid"""
329
+
330
+ makeMainHousesGrid: str
331
+ """SVG markup for main houses grid"""
332
+
333
+ makeSecondaryHousesGrid: str
334
+ """SVG markup for secondary houses grid"""
335
+
336
+ color_style_tag: str
337
+ """CSS color style tag"""
338
+
339
+ elements_string: str
340
+ """Elements header string"""
341
+
342
+ fire_string: str
343
+ """Fire element string with percentage"""
344
+
345
+ earth_string: str
346
+ """Earth element string with percentage"""
347
+
348
+ air_string: str
349
+ """Air element string with percentage"""
350
+
351
+ water_string: str
352
+ """Water element string with percentage"""
353
+
354
+ qualities_string: str
355
+ """Qualities header string"""
356
+
357
+ cardinal_string: str
358
+ """Cardinal quality string with percentage"""
359
+
360
+ fixed_string: str
361
+ """Fixed quality string with percentage"""
362
+
363
+ mutable_string: str
364
+ """Mutable quality string with percentage"""
365
+
366
+ makeLunarPhase: str
367
+ """SVG markup for lunar phase"""
@@ -0,0 +1,20 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ This is part of Kerykeion (C) 2025 Giacomo Battaglia
4
+ """
5
+
6
+
7
+ class KerykeionException(Exception):
8
+ """
9
+ Custom Kerykeion Exception
10
+ """
11
+
12
+ def __init__(self, message):
13
+ """
14
+ Initialize a new KerykeionException.
15
+
16
+ Args:
17
+ message: The error message to be displayed.
18
+ """
19
+ # Call the base class constructor with the parameters it needs
20
+ super().__init__(message)
@@ -0,0 +1,181 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ This is part of Kerykeion (C) 2025 Giacomo Battaglia
4
+ """
5
+ from typing import Literal
6
+
7
+
8
+ ZodiacType = Literal["Tropical", "Sidereal"]
9
+ """Literal type for Zodiac Types"""
10
+
11
+
12
+ Sign = Literal["Ari", "Tau", "Gem", "Can", "Leo", "Vir", "Lib", "Sco", "Sag", "Cap", "Aqu", "Pis"]
13
+ """Literal type for Zodiac Signs"""
14
+
15
+
16
+ SignNumbers = Literal[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
17
+ """Literal type for Zodiac Sign Numbers, the signs are numbered in order starting from Aries (0) to Pis (11)"""
18
+
19
+
20
+ AspectMovementType = Literal["Applying", "Separating", "Exact"]
21
+ """Literal type for Aspect Movement: Applying (planets moving toward exact aspect), Separating (planets moving away), or Exact (within tight orb)"""
22
+
23
+
24
+ Houses = 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"]
25
+ """Literal type for Houses"""
26
+
27
+
28
+ HouseNumbers = Literal[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
29
+ """Literal type for House Numbers, starting from the First House (1) to the Twelfth House (12)"""
30
+
31
+
32
+ AstrologicalPoint = Literal[
33
+ # Main Planets
34
+ "Sun", "Moon", "Mercury", "Venus", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune", "Pluto",
35
+
36
+ # Lunar Nodes
37
+ "Mean_North_Lunar_Node", "True_North_Lunar_Node", "Mean_South_Lunar_Node", "True_South_Lunar_Node",
38
+
39
+ # Special Points
40
+ "Chiron", "Mean_Lilith", "True_Lilith", "Earth", "Pholus",
41
+
42
+ # Asteroids
43
+ "Ceres", "Pallas", "Juno", "Vesta",
44
+
45
+ # Trans-Neptunian Objects
46
+ "Eris", "Sedna", "Haumea", "Makemake", "Ixion", "Orcus", "Quaoar",
47
+
48
+ # Fixed Stars
49
+ "Regulus", "Spica",
50
+
51
+ # Arabic Parts
52
+ "Pars_Fortunae", "Pars_Spiritus", "Pars_Amoris", "Pars_Fidei",
53
+
54
+ # Special Points
55
+ "Vertex", "Anti_Vertex",
56
+
57
+ # Axial Cusps
58
+ "Ascendant", "Medium_Coeli", "Descendant", "Imum_Coeli",
59
+ ]
60
+
61
+ """Literal type for Axial Cusps"""
62
+
63
+
64
+ Element = Literal["Air", "Fire", "Earth", "Water"]
65
+ """Literal type for Elements"""
66
+
67
+
68
+ Quality = Literal["Cardinal", "Fixed", "Mutable"]
69
+ """Literal type for Qualities"""
70
+
71
+
72
+ ChartType = Literal["Natal", "Synastry", "Transit", "Composite", "DualReturnChart", "SingleReturnChart"]
73
+ """Literal type for Chart Types"""
74
+
75
+
76
+ PointType = Literal["AstrologicalPoint", "House"]
77
+ """Literal type for Point Types"""
78
+
79
+
80
+ LunarPhaseEmoji = Literal["🌑", "🌒", "🌓", "🌔", "🌕", "🌖", "🌗", "🌘"]
81
+ """Literal type for Lunar Phases Emoji"""
82
+
83
+
84
+ LunarPhaseName = Literal["New Moon", "Waxing Crescent", "First Quarter", "Waxing Gibbous", "Full Moon", "Waning Gibbous", "Last Quarter", "Waning Crescent"]
85
+ """Literal type for Lunar Phases Name"""
86
+
87
+
88
+ SiderealMode = 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"]
89
+ """Literal type for Sidereal Modes, as known as Ayanamsa"""
90
+
91
+
92
+ HousesSystemIdentifier = Literal["A", "B", "C", "D", "F", "H", "I", "i", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y"]
93
+ """
94
+ Literal type for Houses Systems:
95
+
96
+ A = equal
97
+ B = Alcabitius
98
+ C = Campanus
99
+ D = equal (MC)
100
+ F = Carter poli-equ.
101
+ H = horizon/azimut
102
+ I = Sunshine
103
+ i = Sunshine/alt.
104
+ K = Koch
105
+ L = Pullen SD
106
+ M = Morinus
107
+ N = equal/1=Aries
108
+ O = Porphyry
109
+ P = Placidus
110
+ Q = Pullen SR
111
+ R = Regiomontanus
112
+ S = Sripati
113
+ T = Polich/Page
114
+ U = Krusinski-Pisa-Goelzer
115
+ V = equal/Vehlow
116
+ W = equal/whole sign
117
+ X = axial rotation system/Meridian houses
118
+ Y = APC houses
119
+
120
+ Usually the standard is Placidus (P)
121
+ """
122
+
123
+
124
+ PerspectiveType = Literal["Apparent Geocentric", "Heliocentric", "Topocentric", "True Geocentric"]
125
+ """
126
+ Literal type for perspective types.
127
+ - "Apparent Geocentric": Earth-centered, apparent positions.
128
+ - "Heliocentric": Sun-centered.
129
+ - "Topocentric": Observer's location on Earth's surface.
130
+ - "True Geocentric": Earth-centered, true positions.
131
+
132
+ Usually the standard is "Apparent Geocentric"
133
+ """
134
+
135
+
136
+ SignsEmoji = Literal["♈️", "♉️", "♊️", "♋️", "♌️", "♍️", "♎️", "♏️", "♐️", "♑️", "♒️", "♓️"]
137
+ """Literal type for Zodiac Signs Emoji"""
138
+
139
+ KerykeionChartTheme = Literal["light", "dark", "dark-high-contrast", "classic", "strawberry", "black-and-white"]
140
+ """Literal type for Kerykeion Chart Themes"""
141
+
142
+
143
+ KerykeionChartLanguage = Literal["EN", "FR", "PT", "IT", "CN", "ES", "RU", "TR", "DE", "HI"]
144
+ """Literal type for Kerykeion Chart Languages"""
145
+
146
+
147
+ RelationshipScoreDescription = Literal["Minimal", "Medium", "Important", "Very Important", "Exceptional", "Rare Exceptional"]
148
+ """Literal type for Relationship Score Description"""
149
+
150
+
151
+ CompositeChartType = Literal["Midpoint"]
152
+ """Literal type for Composite Chart Types"""
153
+
154
+ AspectName = Literal[
155
+ "conjunction",
156
+ "semi-sextile",
157
+ "semi-square",
158
+ "sextile",
159
+ "quintile",
160
+ "square",
161
+ "trine",
162
+ "sesquiquadrate",
163
+ "biquintile",
164
+ "quincunx",
165
+ "opposition"
166
+ ]
167
+ """Literal type for all the available aspects names"""
168
+
169
+ ReturnType = Literal["Lunar", "Solar"]
170
+ """Literal type for Return Types"""
171
+
172
+
173
+ # ---------------------------------------------------------------------------
174
+ # Deprecated aliases for backward compatibility with Kerykeion v4.x
175
+ # ---------------------------------------------------------------------------
176
+ # These will be removed in v6.0 - migrate to AstrologicalPoint
177
+ Planet = AstrologicalPoint
178
+ """DEPRECATED: Use AstrologicalPoint instead. This alias will be removed in v6.0."""
179
+
180
+ AxialCusps = AstrologicalPoint
181
+ """DEPRECATED: Use AstrologicalPoint instead. This alias will be removed in v6.0."""