kerykeion 5.0.0a4__tar.gz → 5.0.0a5__tar.gz

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 (53) hide show
  1. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/PKG-INFO +1 -1
  2. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/astrological_subject_factory.py +33 -30
  3. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/charts/kerykeion_chart_svg.py +30 -29
  4. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/charts/templates/chart.xml +3 -3
  5. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/charts/themes/classic.css +5 -0
  6. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/charts/themes/dark-high-contrast.css +5 -0
  7. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/charts/themes/dark.css +5 -0
  8. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/charts/themes/light.css +5 -0
  9. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/charts/themes/strawberry.css +5 -0
  10. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/planetary_return_factory.py +1 -0
  11. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/settings/kr.config.json +16 -16
  12. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/utilities.py +7 -10
  13. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/pyproject.toml +1 -1
  14. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/LICENSE +0 -0
  15. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/README.md +0 -0
  16. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/__init__.py +0 -0
  17. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/aspects/__init__.py +0 -0
  18. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/aspects/aspects_utils.py +0 -0
  19. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/aspects/natal_aspects.py +0 -0
  20. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/aspects/synastry_aspects.py +0 -0
  21. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/aspects/transits_time_range.py +0 -0
  22. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/charts/__init__.py +0 -0
  23. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/charts/charts_utils.py +0 -0
  24. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/charts/draw_planets.py +0 -0
  25. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/charts/draw_planets_v2.py +0 -0
  26. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/charts/templates/aspect_grid_only.xml +0 -0
  27. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/charts/templates/wheel_only.xml +0 -0
  28. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/composite_subject_factory.py +0 -0
  29. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/enums.py +0 -0
  30. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/ephemeris_data.py +0 -0
  31. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/fetch_geonames.py +0 -0
  32. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/house_comparison/__init__.py +0 -0
  33. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/house_comparison/house_comparison_factory.py +0 -0
  34. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/house_comparison/house_comparison_models.py +0 -0
  35. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/house_comparison/house_comparison_utils.py +0 -0
  36. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/kr_types/__init__.py +0 -0
  37. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/kr_types/chart_types.py +0 -0
  38. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/kr_types/kerykeion_exception.py +0 -0
  39. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/kr_types/kr_literals.py +0 -0
  40. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/kr_types/kr_models.py +0 -0
  41. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/kr_types/settings_models.py +0 -0
  42. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/relationship_score_factory.py +0 -0
  43. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/report.py +0 -0
  44. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/settings/__init__.py +0 -0
  45. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/settings/config_constants.py +0 -0
  46. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/settings/kerykeion_settings.py +0 -0
  47. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/settings/legacy/__init__.py +0 -0
  48. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/settings/legacy/legacy_celestial_points_settings.py +0 -0
  49. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/settings/legacy/legacy_chart_aspects_settings.py +0 -0
  50. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/settings/legacy/legacy_color_settings.py +0 -0
  51. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/sweph/README.md +0 -0
  52. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/sweph/seas_18.se1 +0 -0
  53. {kerykeion-5.0.0a4 → kerykeion-5.0.0a5}/kerykeion/transits_time_range.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: kerykeion
3
- Version: 5.0.0a4
3
+ Version: 5.0.0a5
4
4
  Summary: A python library for astrology.
5
5
  License: AGPL-3.0
6
6
  Keywords: astrology,ephemeris,astrology library,birtchart,svg,zodiac,zodiac-sing,astronomical-algorithms,synastry,astrology-calculator
@@ -214,50 +214,54 @@ class AstrologicalSubjectFactory:
214
214
  Returns:
215
215
  An AstrologicalSubjectModel with calculated data
216
216
  """
217
- logging.debug("Starting Kerykeion calculation")
217
+ # Create a calculation data container
218
+ calc_data = {}
219
+
220
+ # Basic identity
221
+ calc_data["name"] = name
222
+ calc_data["json_dir"] = str(Path.home())
223
+
224
+ # Create a deep copy of active points to avoid modifying the original list
225
+ active_points = list(active_points)
226
+
227
+ calc_data["active_points"] = active_points
228
+
218
229
 
219
- if "Sun" not in active_points:
230
+ if "Sun" not in calc_data["active_points"]:
220
231
  logging.info("Automatically adding 'Sun' to active points")
221
- active_points.append("Sun")
232
+ calc_data["active_points"].append("Sun")
222
233
 
223
- if "Moon" not in active_points:
234
+ if "Moon" not in calc_data["active_points"]:
224
235
  logging.info("Automatically adding 'Moon' to active points")
225
- active_points.append("Moon")
236
+ calc_data["active_points"].append("Moon")
226
237
 
227
- if "Ascendant" not in active_points:
238
+ if "Ascendant" not in calc_data["active_points"]:
228
239
  logging.info("Automatically adding 'Ascendant' to active points")
229
- active_points.append("Ascendant")
240
+ calc_data["active_points"].append("Ascendant")
230
241
 
231
- if "Medium_Coeli" not in active_points:
242
+ if "Medium_Coeli" not in calc_data["active_points"]:
232
243
  logging.info("Automatically adding 'Medium_Coeli' to active points")
233
- active_points.append("Medium_Coeli")
244
+ calc_data["active_points"].append("Medium_Coeli")
234
245
 
235
- if "Mercury" not in active_points:
246
+ if "Mercury" not in calc_data["active_points"]:
236
247
  logging.info("Automatically adding 'Mercury' to active points")
237
- active_points.append("Mercury")
248
+ calc_data["active_points"].append("Mercury")
238
249
 
239
- if "Venus" not in active_points:
250
+ if "Venus" not in calc_data["active_points"]:
240
251
  logging.info("Automatically adding 'Venus' to active points")
241
- active_points.append("Venus")
252
+ calc_data["active_points"].append("Venus")
242
253
 
243
- if "Mars" not in active_points:
254
+ if "Mars" not in calc_data["active_points"]:
244
255
  logging.info("Automatically adding 'Mars' to active points")
245
- active_points.append("Mars")
256
+ calc_data["active_points"].append("Mars")
246
257
 
247
- if "Jupiter" not in active_points:
258
+ if "Jupiter" not in calc_data["active_points"]:
248
259
  logging.info("Automatically adding 'Jupiter' to active points")
249
- active_points.append("Jupiter")
260
+ calc_data["active_points"].append("Jupiter")
250
261
 
251
- if "Saturn" not in active_points:
262
+ if "Saturn" not in calc_data["active_points"]:
252
263
  logging.info("Automatically adding 'Saturn' to active points")
253
- active_points.append("Saturn")
254
-
255
- # Create a calculation data container
256
- calc_data = {}
257
-
258
- # Basic identity
259
- calc_data["name"] = name
260
- calc_data["json_dir"] = str(Path.home())
264
+ calc_data["active_points"].append("Saturn")
261
265
 
262
266
  # Initialize configuration
263
267
  config = ChartConfiguration(
@@ -321,15 +325,14 @@ class AstrologicalSubjectFactory:
321
325
  calc_data["minute"] = minute
322
326
  calc_data["seconds"] = seconds
323
327
  calc_data["is_dst"] = is_dst
324
- calc_data["active_points"] = active_points
325
328
 
326
329
  # Calculate time conversions
327
330
  cls._calculate_time_conversions(calc_data, location)
328
331
 
329
332
  # Initialize Swiss Ephemeris and calculate houses and planets
330
333
  cls._setup_ephemeris(calc_data, config)
331
- cls._calculate_houses(calc_data, active_points)
332
- cls._calculate_planets(calc_data, active_points)
334
+ cls._calculate_houses(calc_data, calc_data["active_points"])
335
+ cls._calculate_planets(calc_data, calc_data["active_points"])
333
336
  cls._calculate_day_of_week(calc_data)
334
337
 
335
338
  # Calculate lunar phase
@@ -349,7 +352,7 @@ class AstrologicalSubjectFactory:
349
352
  city: str = "Greenwich",
350
353
  nation: str = "GB",
351
354
  tz_str: str = "Etc/GMT",
352
- online: bool = False,
355
+ online: bool = True,
353
356
  lng: float = 0.0,
354
357
  lat: float = 51.5074,
355
358
  geonames_username: str = DEFAULT_GEONAMES_USERNAME,
@@ -245,7 +245,6 @@ class KerykeionChartSVG:
245
245
  home_directory = Path.home()
246
246
  self.new_settings_file = new_settings_file
247
247
  self.chart_language = chart_language
248
- self.active_points = active_points
249
248
  self.active_aspects = active_aspects
250
249
  self.chart_type = chart_type
251
250
  self.double_chart_aspect_grid_type = double_chart_aspect_grid_type
@@ -254,16 +253,16 @@ class KerykeionChartSVG:
254
253
  self.aspects_settings = aspects_settings
255
254
 
256
255
  if not active_points:
257
- active_points = first_obj.active_points
256
+ self.active_points = first_obj.active_points
258
257
  else:
259
- active_points = find_common_active_points(
258
+ self.active_points = find_common_active_points(
260
259
  active_points,
261
260
  first_obj.active_points
262
261
  )
263
262
 
264
263
  if second_obj:
265
- active_points = find_common_active_points(
266
- active_points,
264
+ self.active_points = find_common_active_points(
265
+ self.active_points,
267
266
  second_obj.active_points
268
267
  )
269
268
 
@@ -285,7 +284,7 @@ class KerykeionChartSVG:
285
284
  # Configure available planets
286
285
  self.available_planets_setting = []
287
286
  for body in self.planets_settings:
288
- if body["name"] in active_points:
287
+ if body["name"] in self.active_points:
289
288
  body["is_active"] = True
290
289
  self.available_planets_setting.append(body)
291
290
 
@@ -310,7 +309,7 @@ class KerykeionChartSVG:
310
309
  natal_aspects_instance = NatalAspects(
311
310
  self.first_obj,
312
311
  new_settings_file=self.new_settings_file,
313
- active_points=active_points,
312
+ active_points=self.active_points,
314
313
  active_aspects=active_aspects,
315
314
  )
316
315
  self.aspects_list = natal_aspects_instance.relevant_aspects
@@ -342,7 +341,7 @@ class KerykeionChartSVG:
342
341
  raise KerykeionException("First object must be a CompositeSubjectModel instance.")
343
342
 
344
343
  # Calculate aspects
345
- self.aspects_list = NatalAspects(self.first_obj, new_settings_file=self.new_settings_file, active_points=active_points).relevant_aspects
344
+ self.aspects_list = NatalAspects(self.first_obj, new_settings_file=self.new_settings_file, active_points=self.active_points).relevant_aspects
346
345
 
347
346
  # Screen size
348
347
  self.height = self._DEFAULT_HEIGHT
@@ -377,15 +376,13 @@ class KerykeionChartSVG:
377
376
  self.first_obj,
378
377
  self.second_obj,
379
378
  new_settings_file=self.new_settings_file,
380
- active_points=active_points,
379
+ active_points=self.active_points,
381
380
  active_aspects=active_aspects,
382
381
  )
383
382
  self.aspects_list = synastry_aspects_instance.relevant_aspects
384
383
 
385
384
  # Secondary subject available points
386
- self.t_available_kerykeion_celestial_points = []
387
- for body in available_celestial_points_names:
388
- self.t_available_kerykeion_celestial_points.append(self.second_obj.get(body))
385
+ self.t_available_kerykeion_celestial_points = self.available_kerykeion_celestial_points
389
386
 
390
387
  # Screen size
391
388
  self.height = self._DEFAULT_HEIGHT
@@ -424,15 +421,13 @@ class KerykeionChartSVG:
424
421
  self.first_obj,
425
422
  self.second_obj,
426
423
  new_settings_file=self.new_settings_file,
427
- active_points=active_points,
424
+ active_points=self.active_points,
428
425
  active_aspects=active_aspects,
429
426
  )
430
427
  self.aspects_list = synastry_aspects_instance.relevant_aspects
431
428
 
432
429
  # Secondary subject available points
433
- self.t_available_kerykeion_celestial_points = []
434
- for body in available_celestial_points_names:
435
- self.t_available_kerykeion_celestial_points.append(self.second_obj.get(body))
430
+ self.t_available_kerykeion_celestial_points = self.available_kerykeion_celestial_points
436
431
 
437
432
  # Screen size
438
433
  self.height = self._DEFAULT_HEIGHT
@@ -467,15 +462,13 @@ class KerykeionChartSVG:
467
462
  self.first_obj,
468
463
  self.second_obj,
469
464
  new_settings_file=self.new_settings_file,
470
- active_points=active_points,
465
+ active_points=self.active_points,
471
466
  active_aspects=active_aspects,
472
467
  )
473
468
  self.aspects_list = synastry_aspects_instance.relevant_aspects
474
469
 
475
470
  # Secondary subject available points
476
- self.t_available_kerykeion_celestial_points = []
477
- for body in available_celestial_points_names:
478
- self.t_available_kerykeion_celestial_points.append(self.second_obj.get(body))
471
+ self.t_available_kerykeion_celestial_points = self.available_kerykeion_celestial_points
479
472
 
480
473
  # Screen size
481
474
  self.height = self._DEFAULT_HEIGHT
@@ -502,7 +495,7 @@ class KerykeionChartSVG:
502
495
  natal_aspects_instance = NatalAspects(
503
496
  self.first_obj,
504
497
  new_settings_file=self.new_settings_file,
505
- active_points=active_points,
498
+ active_points=self.active_points,
506
499
  active_aspects=active_aspects,
507
500
  )
508
501
  self.aspects_list = natal_aspects_instance.relevant_aspects
@@ -1841,6 +1834,10 @@ if __name__ == "__main__":
1841
1834
  from kerykeion.planetary_return_factory import PlanetaryReturnFactory
1842
1835
  from kerykeion.astrological_subject_factory import AstrologicalSubjectFactory
1843
1836
 
1837
+ ACTIVE_PLANETS: list[AstrologicalPoint] = [
1838
+ "Sun", "Moon", "Pars_Fortunae"
1839
+ ]
1840
+
1844
1841
  setup_logging(level="info")
1845
1842
 
1846
1843
  subject = AstrologicalSubjectFactory.from_birth_data("John Lennon", 1940, 10, 9, 18, 30, "Liverpool", "GB")
@@ -1852,7 +1849,7 @@ if __name__ == "__main__":
1852
1849
  lng=-118.2437,
1853
1850
  lat=34.0522,
1854
1851
  tz_str="America/Los_Angeles",
1855
- altitude=0,
1852
+ altitude=0
1856
1853
  )
1857
1854
 
1858
1855
  ###
@@ -1861,6 +1858,7 @@ if __name__ == "__main__":
1861
1858
  first_obj=subject,
1862
1859
  chart_language="IT",
1863
1860
  theme="strawberry",
1861
+ active_points=ACTIVE_PLANETS,
1864
1862
  )
1865
1863
  birth_chart.makeSVG() # minify=True, remove_css_variables=True)
1866
1864
 
@@ -1875,7 +1873,7 @@ if __name__ == "__main__":
1875
1873
  second_obj=solar_return,
1876
1874
  chart_language="IT",
1877
1875
  theme="classic",
1878
- active_points=["Sun", "Moon", "Mercury", "Venus", "Mars", "Jupiter", "Saturn", "Ascendant"],
1876
+ active_points=ACTIVE_PLANETS,
1879
1877
  )
1880
1878
 
1881
1879
  solar_return_chart.makeSVG() # minify=True, remove_css_variables=True)
@@ -1888,7 +1886,7 @@ if __name__ == "__main__":
1888
1886
  second_obj=solar_return,
1889
1887
  chart_language="IT",
1890
1888
  theme="dark",
1891
- active_points=["Sun", "Moon", "Mercury", "Venus", "Mars", "Jupiter", "Saturn"],
1889
+ active_points=ACTIVE_PLANETS,
1892
1890
  )
1893
1891
 
1894
1892
  single_wheel_return_chart.makeSVG() # minify=True, remove_css_variables=True)
@@ -1905,20 +1903,23 @@ if __name__ == "__main__":
1905
1903
  second_obj=lunar_return,
1906
1904
  chart_language="IT",
1907
1905
  theme="dark",
1908
- active_points=["Sun", "Moon", "Mercury", "Venus", "Mars", "Jupiter", "Saturn"],
1906
+ active_points=ACTIVE_PLANETS,
1909
1907
  )
1910
1908
  lunar_return_chart.makeSVG() # minify=True, remove_css_variables=True)
1911
1909
 
1912
1910
  ###
1913
1911
  ## Transit Chart
1914
- transit = AstrologicalSubjectFactory.from_current_time()
1912
+ transit = AstrologicalSubjectFactory.from_iso_utc_time(
1913
+ "Transit",
1914
+ "2021-10-04T18:30:00+01:00",
1915
+ )
1915
1916
  transit_chart = KerykeionChartSVG(
1916
1917
  first_obj=subject,
1917
1918
  chart_type="Transit",
1918
1919
  second_obj=transit,
1919
1920
  chart_language="IT",
1920
1921
  theme="dark",
1921
- active_points=["Sun", "Moon", "Mercury", "Venus", "Mars", "Jupiter", "Saturn", "Ascendant"]
1922
+ active_points=ACTIVE_PLANETS
1922
1923
  )
1923
1924
  transit_chart.makeSVG() # minify=True, remove_css_variables=True)
1924
1925
 
@@ -1931,7 +1932,7 @@ if __name__ == "__main__":
1931
1932
  second_obj=second_subject,
1932
1933
  chart_language="IT",
1933
1934
  theme="dark",
1934
- active_points=["Sun", "Moon", "Mercury", "Venus", "Mars", "Jupiter", "Saturn"],
1935
+ active_points=ACTIVE_PLANETS
1935
1936
  )
1936
1937
  synastry_chart.makeSVG() # minify=True, remove_css_variables=True)
1937
1938
 
@@ -1944,7 +1945,7 @@ if __name__ == "__main__":
1944
1945
  second_obj=transit,
1945
1946
  chart_language="IT",
1946
1947
  theme="dark",
1947
- active_points=["Sun", "Moon", "Mercury", "Venus", "Mars", "Jupiter", "Saturn", "Ascendant"],
1948
+ active_points=ACTIVE_PLANETS,
1948
1949
  double_chart_aspect_grid_type="table"
1949
1950
  )
1950
1951
  transit_chart_with_grid.makeSVG() # minify=True, remove_css_variables=True)
@@ -370,9 +370,9 @@ OpenAstro.org -->
370
370
  <symbol id="Pars_Fortunae">
371
371
  <g transform="translate(1,2)">
372
372
  <circle cx="11" cy="11" r="9"
373
- style="fill: none; stroke: $planets_color_21; stroke-width: 2px" />
374
- <path d="M 11,2 L 11,20 M 2,11 L 20,11"
375
- style="stroke: $planets_color_21; stroke-width: 2px; fill: none;" />
373
+ style="fill: none; stroke: $planets_color_36; stroke-width: 2px" />
374
+ <path d="M 5,5 L 17,17 M 17,5 L 5,17"
375
+ style="stroke: $planets_color_36; stroke-width: 2px; fill: none;" />
376
376
  </g>
377
377
  </symbol>
378
378
 
@@ -92,6 +92,11 @@
92
92
  --kerykeion-chart-color-fire-percentage: #ff6600;
93
93
  --kerykeion-chart-color-water-percentage: #630e73;
94
94
 
95
+ /* Modalities Percentage */
96
+ --kerykeion-chart-color-cardinal-percentage: var(--kerykeion-chart-color-fire-percentage);
97
+ --kerykeion-chart-color-fixed-percentage: var(--kerykeion-chart-color-earth-percentage);
98
+ --kerykeion-chart-color-mutable-percentage: var(--kerykeion-chart-color-water-percentage);
99
+
95
100
  /* Other */
96
101
  --kerykeion-chart-color-house-number: #f00;
97
102
  }
@@ -134,6 +134,11 @@
134
134
  --kerykeion-chart-color-fire-percentage: var(--kerykeion-color-accent);
135
135
  --kerykeion-chart-color-water-percentage: var(--kerykeion-color-secondary);
136
136
 
137
+ /* Modalities Percentage */
138
+ --kerykeion-chart-color-cardinal-percentage: var(--kerykeion-color-success);
139
+ --kerykeion-chart-color-fixed-percentage: var(--kerykeion-color-warning);
140
+ --kerykeion-chart-color-mutable-percentage: var(--kerykeion-color-error);
141
+
137
142
  /* Aspects */
138
143
  --kerykeion-chart-color-lunar-phase-0: var(--kerykeion-color-black);
139
144
  --kerykeion-chart-color-lunar-phase-1: var(--kerykeion-color-white);
@@ -135,6 +135,11 @@
135
135
  --kerykeion-chart-color-fire-percentage: var(--kerykeion-color-accent);
136
136
  --kerykeion-chart-color-water-percentage: var(--kerykeion-color-secondary);
137
137
 
138
+ /* Modalities Percentage */
139
+ --kerykeion-chart-color-cardinal-percentage: var(--kerykeion-color-success);
140
+ --kerykeion-chart-color-fixed-percentage: var(--kerykeion-color-warning);
141
+ --kerykeion-chart-color-mutable-percentage: var(--kerykeion-color-error);
142
+
138
143
  /* Aspects */
139
144
  --kerykeion-chart-color-lunar-phase-0: var(--kerykeion-color-black);
140
145
  --kerykeion-chart-color-lunar-phase-1: var(--kerykeion-color-white);
@@ -135,6 +135,11 @@
135
135
  --kerykeion-chart-color-fire-percentage: var(--kerykeion-color-accent);
136
136
  --kerykeion-chart-color-water-percentage: var(--kerykeion-color-secondary);
137
137
 
138
+ /* Modalities Percentage */
139
+ --kerykeion-chart-color-cardinal-percentage: var(--kerykeion-color-success);
140
+ --kerykeion-chart-color-fixed-percentage: var(--kerykeion-color-warning);
141
+ --kerykeion-chart-color-mutable-percentage: var(--kerykeion-color-error);
142
+
138
143
  /* Aspects */
139
144
  --kerykeion-chart-color-lunar-phase-0: var(--kerykeion-color-black);
140
145
  --kerykeion-chart-color-lunar-phase-1: var(--kerykeion-color-white);
@@ -134,6 +134,11 @@
134
134
  --kerykeion-chart-color-fire-percentage: var(--kerykeion-color-accent);
135
135
  --kerykeion-chart-color-water-percentage: var(--kerykeion-color-secondary);
136
136
 
137
+ /* Modalities Percentage */
138
+ --kerykeion-chart-color-cardinal-percentage: var(--kerykeion-color-success);
139
+ --kerykeion-chart-color-fixed-percentage: var(--kerykeion-color-warning);
140
+ --kerykeion-chart-color-mutable-percentage: var(--kerykeion-color-error);
141
+
137
142
  /* Aspects */
138
143
  --kerykeion-chart-color-lunar-phase-0: var(--kerykeion-color-black);
139
144
  --kerykeion-chart-color-lunar-phase-1: var(--kerykeion-color-white);
@@ -175,6 +175,7 @@ class PlanetaryReturnFactory:
175
175
  nation=self.nation, # type: ignore
176
176
  online=False,
177
177
  altitude=self.altitude,
178
+ active_points=self.subject.active_points,
178
179
  )
179
180
 
180
181
  model_data = solar_return_astrological_subject.model_dump()
@@ -252,10 +252,10 @@
252
252
  "Quaoar": "Quaoar",
253
253
  "Regulus": "Regulus",
254
254
  "Spica": "Spica",
255
- "Pars_Fortunae": "Part de Fortune",
256
- "Pars_Spiritus": "Part d'Esprit",
257
- "Pars_Amoris": "Part d'Amour",
258
- "Pars_Fidei": "Part de Foi",
255
+ "Pars_Fortunae": "Pars Fortunae",
256
+ "Pars_Spiritus": "Pars Spiritus",
257
+ "Pars_Amoris": "Pars Amoris",
258
+ "Pars_Fidei": "Pars Fidei",
259
259
  "Vertex": "Vertex",
260
260
  "Anti_Vertex": "Anti-Vertex"
261
261
  }
@@ -382,10 +382,10 @@
382
382
  "Quaoar": "Quaoar",
383
383
  "Regulus": "Régulo",
384
384
  "Spica": "Spica",
385
- "Pars_Fortunae": "Parte da Fortuna",
386
- "Pars_Spiritus": "Parte do Espírito",
387
- "Pars_Amoris": "Parte do Amor",
388
- "Pars_Fidei": "Parte da Fé",
385
+ "Pars_Fortunae": "Pars Fortunae",
386
+ "Pars_Spiritus": "Pars Spiritus",
387
+ "Pars_Amoris": "Pars Amoris",
388
+ "Pars_Fidei": "Pars Fidei",
389
389
  "Vertex": "Vertex",
390
390
  "Anti_Vertex": "Anti-Vertex"
391
391
  }
@@ -512,10 +512,10 @@
512
512
  "Quaoar": "Quaoar",
513
513
  "Regulus": "Regolo",
514
514
  "Spica": "Spica",
515
- "Pars_Fortunae": "Parte di Fortuna",
516
- "Pars_Spiritus": "Parte dello Spirito",
517
- "Pars_Amoris": "Parte dell'Amore",
518
- "Pars_Fidei": "Parte della Fede",
515
+ "Pars_Fortunae": "Pars Fortunae",
516
+ "Pars_Spiritus": "Pars Spiritus",
517
+ "Pars_Amoris": "Pars Amoris",
518
+ "Pars_Fidei": "Pars Fidei",
519
519
  "Vertex": "Vertex",
520
520
  "Anti_Vertex": "Anti-Vertex"
521
521
  }
@@ -772,10 +772,10 @@
772
772
  "Quaoar": "Quaoar",
773
773
  "Regulus": "Régulo",
774
774
  "Spica": "Spica",
775
- "Pars_Fortunae": "Parte de Fortuna",
776
- "Pars_Spiritus": "Parte del Espíritu",
777
- "Pars_Amoris": "Parte del Amor",
778
- "Pars_Fidei": "Parte de la Fe",
775
+ "Pars_Fortunae": "Pars Fortunae",
776
+ "Pars_Spiritus": "Pars Spiritus",
777
+ "Pars_Amoris": "Pars Amoris",
778
+ "Pars_Fidei": "Pars Fidei",
779
779
  "Vertex": "Vertex",
780
780
  "Anti_Vertex": "Anti-Vertex"
781
781
  }
@@ -677,18 +677,15 @@ def get_house_number(house_name: Houses) -> int:
677
677
 
678
678
  def find_common_active_points(first_points: list[AstrologicalPoint], second_points: list[AstrologicalPoint]) -> list[AstrologicalPoint]:
679
679
  """
680
- Find the common astrological points between those available in the subject and those requested.
680
+ Find only the elements that are present in both lists.
681
681
 
682
- Args:
683
- first_points: List of points available in the astrological subject
684
- second_points: List of points requested by the user
682
+ Args:
683
+ first_points: List of astrological points
684
+ second_points: List of astrological points
685
685
 
686
- Returns:
687
- List containing only the requested points that are also available in the subject
686
+ Returns:
687
+ List of elements common to both lists (without duplicates, order not guaranteed).
688
688
  """
689
- common_points: list[AstrologicalPoint]
690
- common_points = [point for point in second_points if point in first_points]
691
-
692
- ignored_points = set(second_points) - set(common_points)
689
+ common_points = list(set(first_points) & set(second_points))
693
690
 
694
691
  return common_points
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "kerykeion"
3
- version = "5.0.0a4"
3
+ version = "5.0.0a5"
4
4
  authors = ["Giacomo Battaglia <kerykeion.astrology@gmail.com>"]
5
5
  description = "A python library for astrology."
6
6
  license = "AGPL-3.0"
File without changes
File without changes