kerykeion 4.13.2__py3-none-any.whl → 4.14.0__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.

@@ -131,17 +131,18 @@ def get_aspect_from_two_points(aspects_settings: dict, point_one: Union[float, i
131
131
  name = None
132
132
  distance = 0
133
133
  aspect_degrees = 0
134
- color = None
135
134
  aid = None
136
135
 
137
- return (
138
- verdict,
139
- name,
140
- distance - aspect_degrees,
141
- aspect_degrees,
142
- aid,
143
- diff,
144
- )
136
+
137
+ return {
138
+ "verdict": verdict,
139
+ "name": name,
140
+ "orbit": distance - aspect_degrees,
141
+ "distance": distance - aspect_degrees,
142
+ "aspect_degrees": aspect_degrees,
143
+ "aid": aid,
144
+ "diff": diff
145
+ }
145
146
 
146
147
 
147
148
  def planet_id_decoder(planets_settings: dict, name: str):
@@ -52,10 +52,18 @@ class NatalAspects:
52
52
  for first in range(len(active_points_list)):
53
53
  # Generates the aspects list without repetitions
54
54
  for second in range(first + 1, len(active_points_list)):
55
- verdict, name, orbit, aspect_degrees, aid, diff = get_aspect_from_two_points(
55
+ aspect = get_aspect_from_two_points(
56
56
  self.aspects_settings, active_points_list[first]["abs_pos"], active_points_list[second]["abs_pos"]
57
57
  )
58
58
 
59
+ verdict = aspect["verdict"]
60
+ name = aspect["name"]
61
+ orbit = aspect["orbit"]
62
+ aspect_degrees = aspect["aspect_degrees"]
63
+ aid = aspect["aid"]
64
+ diff = aspect["diff"]
65
+
66
+
59
67
  if verdict == True:
60
68
  d_asp = {
61
69
  "p1_name": active_points_list[first]["name"],
@@ -60,12 +60,20 @@ class SynastryAspects(NatalAspects):
60
60
  for first in range(len(first_active_points_list)):
61
61
  # Generates the aspects list whitout repetitions
62
62
  for second in range(len(second_active_points_list)):
63
- verdict, name, orbit, aspect_degrees, aid, diff = get_aspect_from_two_points(
63
+ aspect = get_aspect_from_two_points(
64
64
  self.aspects_settings,
65
65
  first_active_points_list[first]["abs_pos"],
66
66
  second_active_points_list[second]["abs_pos"],
67
67
  )
68
68
 
69
+ verdict = aspect["verdict"]
70
+ name = aspect["name"]
71
+ orbit = aspect["orbit"]
72
+ aspect_degrees = aspect["aspect_degrees"]
73
+ aid = aspect["aid"]
74
+ diff = aspect["diff"]
75
+
76
+
69
77
  if verdict == True:
70
78
  d_asp = {
71
79
  "p1_name": first_active_points_list[first]["name"],
@@ -96,7 +104,7 @@ if __name__ == "__main__":
96
104
  setup_logging(level="debug")
97
105
 
98
106
  john = AstrologicalSubject("John", 1940, 10, 9, 18, 30, "Liverpool")
99
- yoko = AstrologicalSubject("Yoko", 1933, 2, 18, 18, 30, "Tokyo")
107
+ yoko = AstrologicalSubject("Yoko", 1933, 2, 18, 18, 30, "Tokyo", "JP")
100
108
 
101
109
  synastry_aspects = SynastryAspects(john, yoko)
102
110
 
@@ -6,6 +6,7 @@
6
6
  import pytz
7
7
  import swisseph as swe
8
8
  import logging
9
+ import warnings
9
10
 
10
11
  from datetime import datetime
11
12
  from functools import cached_property
@@ -75,8 +76,7 @@ class AstrologicalSubject:
75
76
  You can get one for free here: https://www.geonames.org/login
76
77
  - online (bool, optional): Sets if you want to use the online mode, which fetches the timezone and coordinates from geonames.
77
78
  If you already have the coordinates and timezone, set this to False. Defaults to True.
78
- - disable_chiron (bool, optional): Disables the calculation of Chiron. Defaults to False.
79
- Chiron calculation can create some issues with the Swiss Ephemeris when the date is too far in the past.
79
+ - disable_chiron: Deprecated, use disable_chiron_and_lilith instead.
80
80
  - sidereal_mode (SiderealMode, optional): Also known as Ayanamsa.
81
81
  The mode to use for the sidereal zodiac, according to the Swiss Ephemeris.
82
82
  Defaults to "FAGAN_BRADLEY".
@@ -90,6 +90,8 @@ class AstrologicalSubject:
90
90
  - is_dst (Union[None, bool], optional): Specify if the time is in DST. Defaults to None.
91
91
  By default (None), the library will try to guess if the time is in DST or not and raise an AmbiguousTimeError
92
92
  if it can't guess. If you know the time is in DST, set this to True, if you know it's not, set it to False.
93
+ - disable_chiron_and_lilith (bool, optional): boolean representing if Chiron and Lilith should be disabled. Default is False.
94
+ Chiron calculation can create some issues with the Swiss Ephemeris when the date is too far in the past.
93
95
  """
94
96
 
95
97
  # Defined by the user
@@ -99,15 +101,15 @@ class AstrologicalSubject:
99
101
  day: int
100
102
  hour: int
101
103
  minute: int
102
- city: str
103
- nation: str
104
- lng: Union[int, float]
105
- lat: Union[int, float]
106
- tz_str: str
107
- geonames_username: str
104
+ city: Union[str, None]
105
+ nation: Union[str, None]
106
+ lng: Union[int, float, None]
107
+ lat: Union[int, float, None]
108
+ tz_str: Union[str, None]
109
+ geonames_username: Union[str, None]
108
110
  online: bool
109
111
  zodiac_type: ZodiacType
110
- sidereal_mode: SiderealMode
112
+ sidereal_mode: Union[SiderealMode, None]
111
113
  houses_system_identifier: HousesSystemIdentifier
112
114
  houses_system_name: str
113
115
  perspective_type: PerspectiveType
@@ -134,6 +136,7 @@ class AstrologicalSubject:
134
136
  true_node: KerykeionPointModel
135
137
  mean_node: KerykeionPointModel
136
138
  chiron: Union[KerykeionPointModel, None]
139
+ mean_lilit: Union[KerykeionPointModel, None]
137
140
 
138
141
  # Houses
139
142
  first_house: KerykeionPointModel
@@ -155,6 +158,10 @@ class AstrologicalSubject:
155
158
  planets_degrees_ut: list[float]
156
159
  houses_degree_ut: list[float]
157
160
 
161
+ # Enable or disable features
162
+ disable_chiron: bool # Deprecated
163
+ disable_chiron_and_lilith: bool
164
+
158
165
  def __init__(
159
166
  self,
160
167
  name="Now",
@@ -171,14 +178,29 @@ class AstrologicalSubject:
171
178
  geonames_username: Union[str, None] = None,
172
179
  zodiac_type: ZodiacType = DEFAULT_ZODIAC_TYPE,
173
180
  online: bool = True,
174
- disable_chiron: bool = False,
181
+ disable_chiron: Union[None, bool] = None,
175
182
  sidereal_mode: Union[SiderealMode, None] = None,
176
183
  houses_system_identifier: HousesSystemIdentifier = DEFAULT_HOUSES_SYSTEM_IDENTIFIER,
177
184
  perspective_type: PerspectiveType = DEFAULT_PERSPECTIVE_TYPE,
178
- is_dst: Union[None, bool] = None
185
+ is_dst: Union[None, bool] = None,
186
+ disable_chiron_and_lilith: bool = False
179
187
  ) -> None:
180
188
  logging.debug("Starting Kerykeion")
181
189
 
190
+ # Deprecation warnings --->
191
+ if disable_chiron is not None:
192
+ warnings.warn(
193
+ "The 'disable_chiron' argument is deprecated and will be removed in a future version. "
194
+ "Please use 'disable_chiron' instead.",
195
+ DeprecationWarning
196
+ )
197
+
198
+ if disable_chiron_and_lilith:
199
+ raise ValueError("Cannot specify both 'disable_chiron' and 'disable_chiron_and_lilith'. Use 'disable_chiron_and_lilith' only.")
200
+
201
+ self.disable_chiron_and_lilith = disable_chiron
202
+ # <--- Deprecation warnings
203
+
182
204
  self.name = name
183
205
  self.year = year
184
206
  self.month = month
@@ -199,6 +221,7 @@ class AstrologicalSubject:
199
221
  self.houses_system_identifier = houses_system_identifier
200
222
  self.perspective_type = perspective_type
201
223
  self.is_dst = is_dst
224
+ self.disable_chiron_and_lilith = disable_chiron_and_lilith
202
225
 
203
226
  #---------------#
204
227
  # General setup #
@@ -456,11 +479,6 @@ class AstrologicalSubject:
456
479
  pluto_deg = swe.calc(self.julian_day, 9, self._iflag)[0][0]
457
480
  mean_node_deg = swe.calc(self.julian_day, 10, self._iflag)[0][0]
458
481
  true_node_deg = swe.calc(self.julian_day, 11, self._iflag)[0][0]
459
-
460
- if not self.disable_chiron:
461
- chiron_deg = swe.calc(self.julian_day, 15, self._iflag)[0][0]
462
- else:
463
- chiron_deg = 0
464
482
 
465
483
  self.planets_degrees_ut = [
466
484
  sun_deg,
@@ -477,9 +495,18 @@ class AstrologicalSubject:
477
495
  true_node_deg,
478
496
  ]
479
497
 
480
- if not self.disable_chiron:
498
+ if not self.disable_chiron_and_lilith:
499
+ chiron_deg = swe.calc(self.julian_day, 15, self._iflag)[0][0]
481
500
  self.planets_degrees_ut.append(chiron_deg)
482
501
 
502
+ mean_lilith_deg = swe.calc(self.julian_day, 12, self._iflag)[0][0]
503
+ self.planets_degrees_ut.append(mean_lilith_deg)
504
+
505
+ else:
506
+ self.chiron = None
507
+ self.mean_lilith = None
508
+
509
+
483
510
  def _planets(self) -> None:
484
511
  """Defines body positon in signs and information and
485
512
  stores them in dictionaries"""
@@ -499,10 +526,14 @@ class AstrologicalSubject:
499
526
  self.mean_node = calculate_position(self.planets_degrees_ut[10], "Mean_Node", point_type=point_type)
500
527
  self.true_node = calculate_position(self.planets_degrees_ut[11], "True_Node", point_type=point_type)
501
528
 
502
- if not self.disable_chiron:
529
+ if not self.disable_chiron_and_lilith:
503
530
  self.chiron = calculate_position(self.planets_degrees_ut[12], "Chiron", point_type=point_type)
531
+ self.mean_lilith = calculate_position(self.planets_degrees_ut[13], "Mean_Lilith", point_type=point_type)
532
+
504
533
  else:
505
534
  self.chiron = None
535
+ self.mean_lilith = None
536
+
506
537
 
507
538
  def _planets_in_houses(self) -> None:
508
539
  """Calculates the house of the planet and updates
@@ -521,11 +552,6 @@ class AstrologicalSubject:
521
552
  self.mean_node.house = get_planet_house(self.planets_degrees_ut[10], self.houses_degree_ut)
522
553
  self.true_node.house = get_planet_house(self.planets_degrees_ut[11], self.houses_degree_ut)
523
554
 
524
- if not self.disable_chiron:
525
- self.chiron.house = get_planet_house(self.planets_degrees_ut[12], self.houses_degree_ut)
526
- else:
527
- self.chiron = None
528
-
529
555
  self.planets_list = [
530
556
  self.sun,
531
557
  self.moon,
@@ -541,9 +567,17 @@ class AstrologicalSubject:
541
567
  self.true_node,
542
568
  ]
543
569
 
544
- if not self.disable_chiron:
570
+ if not self.disable_chiron_and_lilith:
571
+ self.chiron.house = get_planet_house(self.planets_degrees_ut[12], self.houses_degree_ut)
545
572
  self.planets_list.append(self.chiron)
546
573
 
574
+ self.mean_lilith.house = get_planet_house(self.planets_degrees_ut[13], self.houses_degree_ut)
575
+ self.planets_list.append(self.mean_lilith)
576
+
577
+ else:
578
+ self.chiron = None
579
+ self.mean_lilith = None
580
+
547
581
  # Check in retrograde or not:
548
582
  planets_ret = []
549
583
  for planet in self.planets_list:
@@ -707,7 +741,7 @@ class AstrologicalSubject:
707
741
  lat: Union[int, float] = 51.5074,
708
742
  geonames_username: str = DEFAULT_GEONAMES_USERNAME,
709
743
  zodiac_type: ZodiacType = DEFAULT_ZODIAC_TYPE,
710
- disable_chiron: bool = False,
744
+ disable_chiron_and_lilith: bool = False,
711
745
  sidereal_mode: Union[SiderealMode, None] = None,
712
746
  houses_system_identifier: HousesSystemIdentifier = DEFAULT_HOUSES_SYSTEM_IDENTIFIER,
713
747
  perspective_type: PerspectiveType = DEFAULT_PERSPECTIVE_TYPE
@@ -730,7 +764,7 @@ class AstrologicalSubject:
730
764
  - geonames_username (str, optional): The username for the geonames API. Note: Change this to your own username to avoid rate limits!
731
765
  You can get one for free here: https://www.geonames.org/login
732
766
  - zodiac_type (ZodiacType, optional): The zodiac type to use. Defaults to "Tropic".
733
- - disable_chiron (bool, optional): Disables the calculation of Chiron. Defaults to False.
767
+ - disable_chiron_and_lilith: boolean representing if Chiron and Lilith should be disabled. Default is False.
734
768
  Chiron calculation can create some issues with the Swiss Ephemeris when the date is too far in the past.
735
769
  - sidereal_mode (SiderealMode, optional): Also known as Ayanamsa.
736
770
  The mode to use for the sidereal zodiac, according to the Swiss Ephemeris.
@@ -776,10 +810,10 @@ class AstrologicalSubject:
776
810
  online=False,
777
811
  geonames_username=geonames_username,
778
812
  zodiac_type=zodiac_type,
779
- disable_chiron=disable_chiron,
780
813
  sidereal_mode=sidereal_mode,
781
814
  houses_system_identifier=houses_system_identifier,
782
- perspective_type=perspective_type
815
+ perspective_type=perspective_type,
816
+ disable_chiron_and_lilith=disable_chiron_and_lilith
783
817
  )
784
818
 
785
819
  return subject
@@ -822,3 +856,7 @@ if __name__ == "__main__":
822
856
 
823
857
  # With Topocentric Perspective
824
858
  johnny = AstrologicalSubject("Johnny Depp", 1963, 6, 9, 0, 0, "Owensboro", "US", perspective_type="Topocentric")
859
+
860
+ # Test Mean Lilith
861
+ johnny = AstrologicalSubject("Johnny Depp", 1963, 6, 9, 0, 0, "Owensboro", "US", disable_chiron_and_lilith=True)
862
+ print(johnny.mean_lilith)
@@ -228,6 +228,13 @@
228
228
  d="M 10.019873,13.068981 L 10.185542,0.80951431 M 10.195591,6.7442901 L 15.496983,2.2712408 M 10.214831,6.6321726 L 15.516217,11.105216 M 17.192934,17.998774 C 17.192934,20.8646 14.867052,23.190487 12.001226,23.190487 C 9.1353988,23.190487 6.8095128,20.8646 6.8095128,17.998774 C 6.8095128,15.132953 9.1353988,12.807066 12.001226,12.807066 C 14.867052,12.807066 17.192934,15.132953 17.192934,17.998774 z "
229
229
  style="stroke: $planets_color_16;stroke-width:2px; fill:none;" />
230
230
  </symbol>
231
+ <symbol id="Mean_Lilith">
232
+ <g transform="translate(1,2)">
233
+ <path
234
+ d="M 5.2255055,0.5001842 C 4.5318761,0.5265765 3.8737679,0.6459111 3.2335607,0.83217502 C 6.682099,1.8494555 9.2093951,5.0469634 9.2093951,8.8236674 C 9.2093953,12.600373 6.682099,15.797873 3.2335607,16.815161 C 3.9722573,17.030079 4.7497456,17.147152 5.5574963,17.147152 C 6.4110015,17.147152 7.2245796,17.006704 8,16.767734 L 8,19.803079 L 4.490383,19.803079 L 4.490383,21.629028 L 8,21.629028 L 8,23.739541 L 9.7785222,23.739541 L 9.7785222,21.629028 L 13.430421,21.629028 L 13.430421,19.803079 L 9.7785222,19.803079 L 9.7785222,15.985184 C 12.226487,14.535184 13.88098,11.873186 13.88098,8.8236674 C 13.88098,4.2284374 10.152727,0.5001842 5.5574963,0.5001842 C 5.4497948,0.5001842 5.3322206,0.4961168 5.2255055,0.5001842 z"
235
+ style="fill: $planets_color_16;" />
236
+ </g>
237
+ </symbol>
231
238
  <symbol id="First_House">
232
239
  <text y="20" style="font-size: 22px; fill: $planets_color_12">As</text>
233
240
  </symbol>
@@ -20,7 +20,7 @@ class EphemerisDataFactory:
20
20
  - lng: float representing the longitude. Default is 0.0005 (Greenwich).
21
21
  - tz_str: string representing the timezone. Default is "Etc/UTC".
22
22
  - is_dst: boolean representing if daylight saving time is active. Default is False.
23
- - disable_chiron: boolean representing if Chiron should be disabled. Default is False.
23
+ - disable_chiron_and_lilith: boolean representing if Chiron and Lilith should be disabled. Default is False.
24
24
  - zodiac_type: ZodiacType object representing the zodiac type. Default is DEFAULT_ZODIAC_TYPE.
25
25
  - sidereal_mode: SiderealMode object representing the sidereal mode. Default is None.
26
26
  - houses_system_identifier: HousesSystemIdentifier object representing the houses system identifier. Default is DEFAULT_HOUSES_SYSTEM_IDENTIFIER.
@@ -47,7 +47,7 @@ class EphemerisDataFactory:
47
47
  lng: float = 0.0005,
48
48
  tz_str: str = "Etc/UTC",
49
49
  is_dst: bool = False,
50
- disable_chiron: bool = False,
50
+ disable_chiron_and_lilith: bool = False,
51
51
  zodiac_type: ZodiacType = DEFAULT_ZODIAC_TYPE,
52
52
  sidereal_mode: Union[SiderealMode, None] = None,
53
53
  houses_system_identifier: HousesSystemIdentifier = DEFAULT_HOUSES_SYSTEM_IDENTIFIER,
@@ -64,7 +64,7 @@ class EphemerisDataFactory:
64
64
  self.lng = lng
65
65
  self.tz_str = tz_str
66
66
  self.is_dst = is_dst
67
- self.disable_chiron = disable_chiron
67
+ self.disable_chiron_and_lilith = disable_chiron_and_lilith
68
68
  self.zodiac_type = zodiac_type
69
69
  self.sidereal_mode = sidereal_mode
70
70
  self.houses_system_identifier = houses_system_identifier
@@ -125,7 +125,7 @@ class EphemerisDataFactory:
125
125
  city="Placeholder",
126
126
  nation="Placeholder",
127
127
  online=False,
128
- disable_chiron=self.disable_chiron,
128
+ disable_chiron_and_lilith=self.disable_chiron_and_lilith,
129
129
  zodiac_type=self.zodiac_type,
130
130
  sidereal_mode=self.sidereal_mode,
131
131
  houses_system_identifier=self.houses_system_identifier,
@@ -42,7 +42,7 @@ class ChartTemplateDictionary(TypedDict):
42
42
  # Background color of the chart
43
43
  paper_color_1: str
44
44
 
45
- # Planets colors, from 1 to 15 (0 is the Sun)
45
+ # Planets colors, from 0 to 16 (0 is the Sun)
46
46
  planets_color_0: str
47
47
  planets_color_1: str
48
48
  planets_color_2: str
@@ -59,6 +59,7 @@ class ChartTemplateDictionary(TypedDict):
59
59
  planets_color_13: str
60
60
  planets_color_14: str
61
61
  planets_color_15: str
62
+ planets_color_16: str
62
63
 
63
64
  # Zodiac colors, from 0 to 11 (0 is Aries)
64
65
  zodiac_color_0: str
@@ -25,7 +25,7 @@ HouseNumbers = Literal[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
25
25
  """Literal type for House Numbers, starting from the First House (1) to the Twelfth House (12)"""
26
26
 
27
27
 
28
- Planet = Literal["Sun", "Moon", "Mercury", "Venus", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune", "Pluto", "Mean_Node", "True_Node", "Chiron"]
28
+ Planet = Literal["Sun", "Moon", "Mercury", "Venus", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune", "Pluto", "Mean_Node", "True_Node", "Chiron", "Mean_Lilith"]
29
29
  """Literal type for Planets"""
30
30
 
31
31
 
@@ -98,4 +98,4 @@ Literal type for perspective types.
98
98
  - "True Geocentric": Earth-centered, true positions.
99
99
 
100
100
  Usually the standard is "Apparent Geocentric"
101
- """
101
+ """
@@ -92,6 +92,7 @@ class AstrologicalSubjectModel(SubscriptableBaseModel):
92
92
 
93
93
  # Optional Planets:
94
94
  chiron: Union[KerykeionPointModel, None]
95
+ mean_lilith: Union[KerykeionPointModel, None]
95
96
 
96
97
  # Houses
97
98
  first_house: KerykeionPointModel
@@ -109,6 +109,7 @@ class KerykeionLanguageCelestialPointModel(SubscriptableBaseModel):
109
109
  Mc: str = Field(title="Medium Coeli", description="The name of Medium Coeli in the chart, in the language")
110
110
  Dsc: str = Field(title="Descendant", description="The name of Descendant in the chart, in the language")
111
111
  Ic: str = Field(title="Imum Coeli", description="The name of Imum Coeli in the chart, in the language")
112
+ Mean_Lilith: str = Field(title="Mean Lilith", description="The name of Mean Lilith in the chart, in the language")
112
113
 
113
114
 
114
115
  class KerykeionLanguageModel(SubscriptableBaseModel):
@@ -160,4 +161,4 @@ class KerykeionSettingsModel(SubscriptableBaseModel):
160
161
  aspects: List[KerykeionSettingsAspectModel] = Field(title="Aspects", description="The list of the aspects of the chart")
161
162
  language_settings: dict[str, KerykeionLanguageModel] = Field(title="Language Settings", description="The language settings of the chart")
162
163
  general_settings: KerykeionGeneralSettingsModel = Field(title="General Settings", description="The general settings of the chart")
163
- chart_settings: KerykeionChartSettingsModel = Field(title="Chart Settings", description="The chart settings of the chart")
164
+ chart_settings: KerykeionChartSettingsModel = Field(title="Chart Settings", description="The chart settings of the chart")
@@ -38,7 +38,8 @@
38
38
  "Ic": "Ic",
39
39
  "True_Node": "North Node",
40
40
  "Mean_Node": "Mean Node",
41
- "Chiron": "Chiron"
41
+ "Chiron": "Chiron",
42
+ "Mean_Lilith": "Lilith"
42
43
  }
43
44
  },
44
45
  "FR": {
@@ -79,7 +80,8 @@
79
80
  "Ic": "Ic",
80
81
  "True_Node": "Noeud Nord",
81
82
  "Mean_Node": "Noeud Moyen",
82
- "Chiron": "Chiron"
83
+ "Chiron": "Chiron",
84
+ "Mean_Lilith": "Lilith"
83
85
  }
84
86
  },
85
87
  "PT": {
@@ -120,7 +122,8 @@
120
122
  "Ic": "Ic",
121
123
  "True_Node": "Nodo Norte",
122
124
  "Mean_Node": "Nodo Médio",
123
- "Chiron": "Quíron"
125
+ "Chiron": "Quíron",
126
+ "Mean_Lilith": "Lilith"
124
127
  }
125
128
  },
126
129
  "IT": {
@@ -161,7 +164,8 @@
161
164
  "Ic": "Ic",
162
165
  "True_Node": "Nodo Nord",
163
166
  "Mean_Node": "Nodo Medio",
164
- "Chiron": "Chirone"
167
+ "Chiron": "Chirone",
168
+ "Mean_Lilith": "Lilith"
165
169
  }
166
170
  },
167
171
  "CN": {
@@ -202,7 +206,8 @@
202
206
  "Ic": "下中天",
203
207
  "True_Node": "北交點",
204
208
  "Mean_Node": "平交點",
205
- "Chiron": "凱龍星"
209
+ "Chiron": "凱龍星",
210
+ "Mean_Lilith": "黑月亮"
206
211
  }
207
212
  }
208
213
  },
@@ -471,6 +476,15 @@
471
476
  "element_points": 0,
472
477
  "related_zodiac_signs": [],
473
478
  "label": "Ic"
479
+ },
480
+ {
481
+ "id": 17,
482
+ "name": "Mean_Lilith",
483
+ "color": "#000",
484
+ "is_active": true,
485
+ "element_points": 0,
486
+ "related_zodiac_signs": [],
487
+ "label": "Mean_Lilith"
474
488
  }
475
489
  ],
476
490
  "chart_colors": {
kerykeion/utilities.py CHANGED
@@ -35,6 +35,8 @@ def get_number_from_name(name: Planet) -> int:
35
35
  return 11
36
36
  elif name == "Chiron":
37
37
  return 15
38
+ elif name == "Mean_Lilith":
39
+ return 12
38
40
  else:
39
41
  raise KerykeionException(f"Error in getting number from name! Name: {name}")
40
42
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: kerykeion
3
- Version: 4.13.2
3
+ Version: 4.14.0
4
4
  Summary: A python library for astrology.
5
5
  Home-page: https://www.kerykeion.net/
6
6
  License: AGPL-3.0
@@ -1,33 +1,33 @@
1
1
  LICENSE,sha256=UTLH8EdbAsgQei4PA2PnBCPGLSZkq5J-dhkyJuXgWQU,34273
2
2
  kerykeion/__init__.py,sha256=f4_J_hAh_OSLAUrabqVhrc1rH59I6X1LS9vuAEzE9PY,536
3
3
  kerykeion/aspects/__init__.py,sha256=9FlDVI1ndCJga0-chNIhcLitjU_x3kbtAFfFqVp2ejc,293
4
- kerykeion/aspects/aspects_utils.py,sha256=ZCOnhgW6CZQrCruAGaf8vkUlBtjubbfKOqXy6qyQupE,5321
5
- kerykeion/aspects/natal_aspects.py,sha256=R47UToYKqbVrRmGzmY4pgsikcoXNmJvs5KhSmz7HZtM,4460
6
- kerykeion/aspects/synastry_aspects.py,sha256=BqG0E4tDZJjPQm3NTX3G6LkTuijP0AsKtI9pwH0F_Mc,3946
7
- kerykeion/astrological_subject.py,sha256=XMUNpFYIZugX62KsCrLa4KMlYjfZOR3Alhjf1aRcYc8,33659
4
+ kerykeion/aspects/aspects_utils.py,sha256=8zPbP4xTOiaSwJ8Yet6wh38Icsd0xUNVG-dptkuD-Ik,5409
5
+ kerykeion/aspects/natal_aspects.py,sha256=jzYItHWZcyaWqWJ6_akwFx3ct1eFesCcu0fE5l-1_uo,4691
6
+ kerykeion/aspects/synastry_aspects.py,sha256=uYzHZNSw7IckE5ngtyaQ7LhNzCfTB4VZOhKlly43-oc,4167
7
+ kerykeion/astrological_subject.py,sha256=zewCsuCdCyrhDRPgaNiwEPM4KaQPfKWFPFxj3Y76ZVk,35472
8
8
  kerykeion/charts/__init__.py,sha256=Juxkduy2TaagWblh_7CE8Acrg3dHL27-WEddJhau_eQ,127
9
9
  kerykeion/charts/charts_utils.py,sha256=Pfy-SkPnABIy5ZkKgypnGqxXOAKhTRIeQX3fQKO8DgQ,15065
10
10
  kerykeion/charts/kerykeion_chart_svg.py,sha256=P3xRWedqdbYjeI1xX9saL729IXBfJ_8TWLz1AzUF5vI,64864
11
- kerykeion/charts/templates/chart.xml,sha256=aP_dVC2w2sULBtGrjrOUi46e5m59zKaMizMnTq1VfNM,67714
11
+ kerykeion/charts/templates/chart.xml,sha256=GgyW3Sw170HtiKOM0Ebd68_sSoGkWKf8cEa-LTEdFcU,68632
12
12
  kerykeion/enums.py,sha256=Ben9GLYkPucpYY2ZDpURzUbNCc9jzK2MuaffkgiXFdQ,965
13
- kerykeion/ephemeris_data.py,sha256=Wm-d0mmelN8L_qIFJhbiJBQ9SoMniP4og5IguQm8C-I,8008
13
+ kerykeion/ephemeris_data.py,sha256=8r-h4wPKFwfM--DFcxv5QouoqlYCJbaH78d5PKh8v_E,8085
14
14
  kerykeion/fetch_geonames.py,sha256=NmyTErvKISjJCAxvRB1H35aVZI8_-_U-Cqb_rmqRseA,4563
15
15
  kerykeion/kr_types/__init__.py,sha256=-qhGQikurdoHnGtuT1bsaEeZ-IwmZtIHMjGOPC9_oqQ,295
16
- kerykeion/kr_types/chart_types.py,sha256=qaZjm1rMpDDnUZlLjEihd9KPyv3PvrV8vkRmNBuRZzE,2201
16
+ kerykeion/kr_types/chart_types.py,sha256=jTPYwmQcPvzSMBpT-a3f5nK3Uqc5eAN2duAY4a2WwbY,2227
17
17
  kerykeion/kr_types/kerykeion_exception.py,sha256=G-7VFta78qBt10l54JZWvwH-3lUNKmDwuILXaVGVu9A,314
18
- kerykeion/kr_types/kr_literals.py,sha256=Urk4wbRXeCOMhJEIkfvwTWrbU-Z5csDnh03hVwxpMbc,3140
19
- kerykeion/kr_types/kr_models.py,sha256=LuImP9hoTHu2L41mBPtjwe29PjZvYdGzB81pp3vkQvU,3695
20
- kerykeion/kr_types/settings_models.py,sha256=Gh467QjvlGmheD6eJI1IHpuK4cz_hbtjGTJT_1NMoAE,12376
18
+ kerykeion/kr_types/kr_literals.py,sha256=o1yLhsWNOTSCd3O1pYGhQU4w9sUEF9mt_v6DWUqutyE,3156
19
+ kerykeion/kr_types/kr_models.py,sha256=TCit3ZXgSgpMGUUrv9BcU8VaMREcOJ1tLfOcUSTRXgQ,3745
20
+ kerykeion/kr_types/settings_models.py,sha256=64BkGyw4hyEbg_yNgW8wQDFSGCT2aiiSEKpE1hJ4j6M,12496
21
21
  kerykeion/relationship_score.py,sha256=R9JugfK5_gJgr5ND-EghkqpqZcutzzKlJ-2JnYUMVv4,6794
22
22
  kerykeion/report.py,sha256=kS5avIN119pJVapYjZOvabg77nEcA8sSrOuXbRifABk,2565
23
23
  kerykeion/settings/__init__.py,sha256=QQNFCl7sgN27MKaVscqtpPk10HGz4wZS3I_7KEGMaVA,69
24
24
  kerykeion/settings/kerykeion_settings.py,sha256=uRAbhJ0ZXAbGBPGJjhh5u8YX2phcXobEwJA646wMHcM,2347
25
- kerykeion/settings/kr.config.json,sha256=1Yhv9RGHom5U9e-JZZRWVfT2Ubllz2WrckdwadDWfyg,12282
25
+ kerykeion/settings/kr.config.json,sha256=3BNbPBfF-hCMx-LWtQxWCE7npf7lOrJ-AIOzowLwdgs,12646
26
26
  kerykeion/sweph/README.md,sha256=L7FtNAJTWtrZNGKa8MX87SjduFYPYxwWhaI5fmtzNZo,73
27
27
  kerykeion/sweph/seas_18.se1,sha256=X9nCqhZU43wJpq61WAdueVQJt9xL2UjrwPqn1Kdoa1s,223002
28
- kerykeion/utilities.py,sha256=O2VNTu5iozaL_aGsYHJRBo3ckQxsVckxDYfZME8z-ZI,11397
29
- kerykeion-4.13.2.dist-info/LICENSE,sha256=UTLH8EdbAsgQei4PA2PnBCPGLSZkq5J-dhkyJuXgWQU,34273
30
- kerykeion-4.13.2.dist-info/METADATA,sha256=ectHa85NMDNd1el0OY2Fe_fJgKFQV4eylmI2gE42G94,14410
31
- kerykeion-4.13.2.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
32
- kerykeion-4.13.2.dist-info/entry_points.txt,sha256=5SmANYscFDDTdeovHvGQ-cnj0hdFvGoxPaWLCpyDFnQ,49
33
- kerykeion-4.13.2.dist-info/RECORD,,
28
+ kerykeion/utilities.py,sha256=s6zY1n25awevSy3qqsO03Bvnkh2Z7GMyinpYc9zU9Fs,11447
29
+ kerykeion-4.14.0.dist-info/LICENSE,sha256=UTLH8EdbAsgQei4PA2PnBCPGLSZkq5J-dhkyJuXgWQU,34273
30
+ kerykeion-4.14.0.dist-info/METADATA,sha256=9UJdfWm65TKZwZT91gKW8PreD5etoFpxJLzxDwusPSs,14410
31
+ kerykeion-4.14.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
32
+ kerykeion-4.14.0.dist-info/entry_points.txt,sha256=5SmANYscFDDTdeovHvGQ-cnj0hdFvGoxPaWLCpyDFnQ,49
33
+ kerykeion-4.14.0.dist-info/RECORD,,