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,63 @@
1
+ kerykeion/__init__.py,sha256=7gI_kWXhsmEK4SvNV6CkRmI0yjA3r7EO8UfQc_44UZU,1963
2
+ kerykeion/astrological_subject_factory.py,sha256=qR6dWULcF4J2ym2oTI4CQ-zfQfMgAFNyLwhGXhJkg-A,94740
3
+ kerykeion/backword.py,sha256=aZrC6gRhLuewv3PvpHWlPvqrDGxspCEN2mMAh8tLtfM,34500
4
+ kerykeion/chart_data_factory.py,sha256=gtAlZs_IjPMUJUitLjkRFCESmAj-wEOlYdCPQ2b8XwA,25123
5
+ kerykeion/composite_subject_factory.py,sha256=eUtjThDlYr6SQsEi02_CgO1kEMUMYgQGzR5rX91GEwY,17120
6
+ kerykeion/ephemeris_data_factory.py,sha256=UKgoJQSqiyy4U0jNw23NI_BP0kbZblJU5mtBnNZtnb0,20417
7
+ kerykeion/fetch_geonames.py,sha256=37q5SwLEEvz7UMtmwk4dsH5QOQXfY5MCbnRO0u0ZKtE,6881
8
+ kerykeion/planetary_return_factory.py,sha256=bIVPqa2gs7hYHi8aaMfVr4U99xWZk3LmYqZI9KG6ACo,37572
9
+ kerykeion/relationship_score_factory.py,sha256=pVrsRlFs__bfVe8K3cOirsnRtdBOW2DbnKqPa7jCWF0,11396
10
+ kerykeion/report.py,sha256=fHGzPh9vhDIWzT_Gr4V5KrfLjiDWLlSlBgOk6-DeH80,31463
11
+ kerykeion/transits_time_range_factory.py,sha256=YRSFVa2MIZFQMPbEL2njKd-P7p431zoAsINrddZz5Yw,13934
12
+ kerykeion/utilities.py,sha256=AqcJ9zmVEcwiurMfN63MDSeegJ1dJ4L1sQVJeoNIGOE,24016
13
+ kerykeion/aspects/__init__.py,sha256=csJmxvLdBu-bHuW676f3dpY__Qyc6LwRyrpWVTh3n1A,287
14
+ kerykeion/aspects/aspects_factory.py,sha256=XCuOOpo0ZW7sihYT2f50bLVpebEk19b9EtEjXonwte0,24156
15
+ kerykeion/aspects/aspects_utils.py,sha256=2YloOKOmN0h2d6J8A1vCe-y4A2mWNoOUYCGDVwGl4gA,5794
16
+ kerykeion/charts/__init__.py,sha256=i9NMZ7LdkllPlqQSi1or9gTobHbROGDKmJhBDO4R0mA,128
17
+ kerykeion/charts/chart_drawer.py,sha256=JZZ9-VFXwK_qAVI3uf0PCdTC35QoRPLLHMbDy98WrqE,130561
18
+ kerykeion/charts/charts_utils.py,sha256=iwgDhVc_GwKuQBZ6JNmn6RWVILD5KIcjbrnDTR3wrAc,70911
19
+ kerykeion/charts/draw_planets.py,sha256=tIj3FeLLomVSbCaZUxfw_qBEB3pxi4EIEhqaeTgTyTY,29061
20
+ kerykeion/charts/templates/aspect_grid_only.xml,sha256=v3QtNMjk-kBdUTfB0r6thg--Ta_tNFdRQCzdk5PAycY,86429
21
+ kerykeion/charts/templates/chart.xml,sha256=QhCSkORLw61cXycF2fMmCLsSailPyIxLbVtsR-CXsKI,92096
22
+ kerykeion/charts/templates/wheel_only.xml,sha256=05k2KiVMP-5NW0e8PZrTX-VPn5x-SaNzEYPgU1_OKa0,87775
23
+ kerykeion/charts/themes/black-and-white.css,sha256=IIoy9wyB4znrvPvmallKmgDW4HMJPywTv5IZsolaEp4,6543
24
+ kerykeion/charts/themes/classic.css,sha256=xvBiI4DtY5fMaA7ilxGl26VEDY1VzkOTWm1XOs9n-ec,5158
25
+ kerykeion/charts/themes/dark-high-contrast.css,sha256=EbmK9sM_ksJ5Fx36cb91nSvSsqC6mzjkRXCpwNTHfCE,8260
26
+ kerykeion/charts/themes/dark.css,sha256=gub44WABpHseNNaWu4lVmtvDthgrRCvEVaobcd-UrMY,8335
27
+ kerykeion/charts/themes/light.css,sha256=WEX_uKPArTjignVwvuAHqqWIbNiCheQ9Y7MgK0HJjAM,8344
28
+ kerykeion/charts/themes/strawberry.css,sha256=pFrST9xDRiej-YXh7P_snOr46DUcKjw--5d2MrlashY,9001
29
+ kerykeion/house_comparison/__init__.py,sha256=dnSVpx_pKylYUeaTGxHsSlN15HqQS6eJHpDQOrIvrpY,107
30
+ kerykeion/house_comparison/house_comparison_factory.py,sha256=YkA7itvkyIcKEf8Ffi53on-gGhsHi_Oeu9Gm4N9aHQs,4588
31
+ kerykeion/house_comparison/house_comparison_utils.py,sha256=vzME6Aw5njCXu6BmPLuhgfEVDI00qfQI7MPH-YujO1g,5071
32
+ kerykeion/kr_types/__init__.py,sha256=qu6A0wjQEkBgCGAyTRl2srHvq6LOiBlNsrlEcVomx78,1990
33
+ kerykeion/kr_types/chart_template_model.py,sha256=k4WhL3sKAa8iCTsvlH4dFdOBByLIkgT7Y1MHBuYem1Q,733
34
+ kerykeion/kr_types/kerykeion_exception.py,sha256=_Jjd-5DuBA4qBG58ob5Lhe9HANrXCaihMagD0icPZc0,726
35
+ kerykeion/kr_types/kr_literals.py,sha256=_yZ-mtuomVxa1sMpxemA6T30PGVPMdGxbF_K2jmWfTo,670
36
+ kerykeion/kr_types/kr_models.py,sha256=-cesGCN8-CjmPSqCH6CMnc0hDA_87g4zflEHxiKi1QY,656
37
+ kerykeion/kr_types/settings_models.py,sha256=xtpsrhjmhdowDSBeQ7TEMR53-uEEspCoXKCLnq18nDo,698
38
+ kerykeion/schemas/__init__.py,sha256=EcwbnoYPKLq3m7n5s2cEZ8UyWpxdmHXbvM23hLNBNBI,2376
39
+ kerykeion/schemas/chart_template_model.py,sha256=fQ_EZ8ccOgNd4gXu5KilF1dUH9B2RVCDLHc09YkYLyY,8978
40
+ kerykeion/schemas/kerykeion_exception.py,sha256=vTYdwj_mL-Q-MqHJvEzzBXxQ5YI2kAwUC6ImoWxMKXc,454
41
+ kerykeion/schemas/kr_literals.py,sha256=mvPH3_TyuF5GTYKfIGk9SpxbuW7uYhSlp20SZJ7l6BY,5658
42
+ kerykeion/schemas/kr_models.py,sha256=e1PQxUqC437IWIVKrOi71NVR5bEV7KGhF_JAaxs9zN0,21945
43
+ kerykeion/schemas/settings_models.py,sha256=NBbtT7s0GzpWxLVygSszaCmefKP8yQyAIPxgr2Y-93Y,17927
44
+ kerykeion/settings/__init__.py,sha256=IJUqkYTpvmbKecVeCbsiL1qU_4xWc78u4OrvN_T3ZAI,624
45
+ kerykeion/settings/chart_defaults.py,sha256=TSm2hXCxym3I7XpIqIMBLWM253Z0dCGbhPi2MpWbD_0,12490
46
+ kerykeion/settings/config_constants.py,sha256=D1PApNT7Zldlv8QINmaKnyLovY5UJ2FsAqHNTTPd5ps,3717
47
+ kerykeion/settings/kerykeion_settings.py,sha256=aeRlxvy2GwC-mxoD_DFMXMoO4yPQp1XQbEAGVQat0Wo,1947
48
+ kerykeion/settings/translation_strings.py,sha256=HoavTMRKsjmNDv97YJg4wWumPA8iLURhFJpudUPdhWc,57354
49
+ kerykeion/settings/translations.py,sha256=A_Zwr-ujvxBLvE4a87-28pM3KifdUaAvsR3XvMZNg0s,2377
50
+ kerykeion/sweph/README.md,sha256=L7FtNAJTWtrZNGKa8MX87SjduFYPYxwWhaI5fmtzNZo,73
51
+ kerykeion/sweph/seas_18.se1,sha256=X9nCqhZU43wJpq61WAdueVQJt9xL2UjrwPqn1Kdoa1s,223002
52
+ kerykeion/sweph/sefstars.txt,sha256=GLDcr75bckB3PauiwDijJfWz_EFj9h4Kf06Sq9T1F8Y,136618
53
+ kerykeion/sweph/ast136/s136108s.se1,sha256=eSDfBurMBVnawSnZZgwHUrwqeAZYlKPLH1NNtq0ep7I,19489
54
+ kerykeion/sweph/ast136/s136199s.se1,sha256=eNBaQGxAmnqeAgE_C-cpsX4BTgPYR4_H9HRkI9QHMPA,14514
55
+ kerykeion/sweph/ast136/s136472s.se1,sha256=TjBnDMtPWdBzbOHn9Mju5C2i-Kfg1dT7kQaeVuGOoi8,19454
56
+ kerykeion/sweph/ast28/se28978s.se1,sha256=nU2Qp-ELc_tzFnRc1QT6uVueWXEipvhYDgfQRX1TAC4,16227
57
+ kerykeion/sweph/ast50/se50000s.se1,sha256=9jTrPlIrZMOBWC9cNgwzcfz0KBHdXFZoY9-NZ_HtECo,15748
58
+ kerykeion/sweph/ast90/se90377s.se1,sha256=bto2x4LtBv8b1ej1XhVFYq-kfHO9cczbKV9U1f9UVu4,10288
59
+ kerykeion/sweph/ast90/se90482s.se1,sha256=uHxz6bP4K8zgtQFrlWFwxrYfmqm5kXxsg6OYhAIUbAA,16173
60
+ kerykeion-5.1.9.dist-info/METADATA,sha256=HsfnlBUkJrI5RijfnAPuL1nhxRdouU95-JRtpWnOegM,61802
61
+ kerykeion-5.1.9.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
62
+ kerykeion-5.1.9.dist-info/licenses/LICENSE,sha256=UTLH8EdbAsgQei4PA2PnBCPGLSZkq5J-dhkyJuXgWQU,34273
63
+ kerykeion-5.1.9.dist-info/RECORD,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.9.0
2
+ Generator: hatchling 1.27.0
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
@@ -1,143 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- """
3
- This is part of Kerykeion (C) 2024 Giacomo Battaglia
4
- """
5
-
6
- from pathlib import Path
7
- from kerykeion import AstrologicalSubject
8
- import logging
9
- from typing import Union
10
- from kerykeion.settings.kerykeion_settings import get_settings
11
- from dataclasses import dataclass
12
- from functools import cached_property
13
- from kerykeion.aspects.aspects_utils import planet_id_decoder, get_aspect_from_two_points, get_active_points_list
14
- from kerykeion.kr_types.kr_models import AstrologicalSubjectModel, AspectModel
15
- from kerykeion.kr_types.settings_models import KerykeionSettingsModel
16
-
17
-
18
- AXES_LIST = [
19
- "First_House",
20
- "Tenth_House",
21
- "Seventh_House",
22
- "Fourth_House",
23
- ]
24
-
25
-
26
- @dataclass
27
- class NatalAspects:
28
- """
29
- Generates an object with all the aspects of a birthcart.
30
- """
31
-
32
- user: Union[AstrologicalSubject, AstrologicalSubjectModel]
33
- new_settings_file: Union[Path, KerykeionSettingsModel, dict, None] = None
34
-
35
- def __post_init__(self):
36
- self.settings = get_settings(self.new_settings_file)
37
-
38
- self.celestial_points = self.settings.celestial_points
39
- self.aspects_settings = self.settings.aspects
40
- self.axes_orbit_settings = self.settings.general_settings.axes_orbit
41
-
42
- @cached_property
43
- def all_aspects(self):
44
- """
45
- Return all the aspects of the points in the natal chart in a dictionary,
46
- first all the individual aspects of each planet, second the aspects
47
- without repetitions.
48
- """
49
-
50
- active_points_list = get_active_points_list(self.user, self.settings)
51
-
52
- self.all_aspects_list = []
53
-
54
- for first in range(len(active_points_list)):
55
- # Generates the aspects list without repetitions
56
- for second in range(first + 1, len(active_points_list)):
57
- aspect = get_aspect_from_two_points(
58
- self.aspects_settings, active_points_list[first]["abs_pos"],
59
- active_points_list[second]["abs_pos"]
60
- )
61
-
62
- verdict = aspect["verdict"]
63
- name = aspect["name"]
64
- orbit = aspect["orbit"]
65
- aspect_degrees = aspect["aspect_degrees"]
66
- aid = aspect["aid"]
67
- diff = aspect["diff"]
68
-
69
- if verdict == True:
70
- aspect_model = AspectModel(
71
- p1_name=active_points_list[first]["name"],
72
- p1_abs_pos=active_points_list[first]["abs_pos"],
73
- p2_name=active_points_list[second]["name"],
74
- p2_abs_pos=active_points_list[second]["abs_pos"],
75
- aspect=name,
76
- orbit=orbit,
77
- aspect_degrees=aspect_degrees,
78
- aid=aid,
79
- diff=diff,
80
- p1=planet_id_decoder(self.celestial_points, active_points_list[first]["name"]),
81
- p2=planet_id_decoder(self.celestial_points, active_points_list[second]["name"]),
82
- is_major=self.aspects_settings[aid]["is_major"],
83
- )
84
- self.all_aspects_list.append(aspect_model)
85
-
86
- return self.all_aspects_list
87
-
88
- @cached_property
89
- def relevant_aspects(self):
90
- """
91
- Filters the aspects list with the desired points, in this case
92
- the most important are hardcoded.
93
- Set the list with set_points and creating a list with the names
94
- or the numbers of the houses.
95
- The relevant aspects are the ones that are set as active ("is_active") in the settings.
96
- """
97
-
98
- logging.debug("Relevant aspects not already calculated, calculating now...")
99
- self.all_aspects
100
-
101
- aspects_filtered = []
102
- for a in self.all_aspects_list:
103
- if self.aspects_settings[a["aid"]]["is_active"] == True:
104
- aspects_filtered.append(a)
105
-
106
- axes_list = AXES_LIST
107
- counter = 0
108
-
109
- aspects_list_subtract = []
110
- for a in aspects_filtered:
111
- counter += 1
112
- name_p1 = str(a["p1_name"])
113
- name_p2 = str(a["p2_name"])
114
-
115
- if name_p1 in axes_list:
116
- if abs(a["orbit"]) >= self.axes_orbit_settings:
117
- aspects_list_subtract.append(a)
118
-
119
- elif name_p2 in axes_list:
120
- if abs(a["orbit"]) >= self.axes_orbit_settings:
121
- aspects_list_subtract.append(a)
122
-
123
- self.aspects = [item for item in aspects_filtered if item not in aspects_list_subtract]
124
-
125
- return self.aspects
126
-
127
-
128
- if __name__ == "__main__":
129
- from kerykeion.utilities import setup_logging
130
-
131
- setup_logging(level="debug")
132
-
133
- johnny = AstrologicalSubject("Johnny Depp", 1963, 6, 9, 0, 0, "Owensboro", "US")
134
-
135
- # All aspects
136
- aspects = NatalAspects(johnny)
137
- print(aspects.all_aspects)
138
-
139
- print("\n")
140
-
141
- # Relevant aspects
142
- aspects = NatalAspects(johnny)
143
- print(aspects.relevant_aspects)
@@ -1,113 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- """
3
- This is part of Kerykeion (C) 2024 Giacomo Battaglia
4
- """
5
-
6
- from kerykeion import AstrologicalSubject
7
- from pathlib import Path
8
- from typing import Union
9
- from functools import cached_property
10
-
11
- from kerykeion.aspects.natal_aspects import NatalAspects
12
- from kerykeion.settings.kerykeion_settings import get_settings
13
- from kerykeion.aspects.aspects_utils import planet_id_decoder, get_aspect_from_two_points, get_active_points_list
14
- from kerykeion.kr_types.kr_models import AstrologicalSubjectModel, AspectModel
15
- from kerykeion.kr_types.settings_models import KerykeionSettingsModel
16
- from typing import Union
17
-
18
-
19
- class SynastryAspects(NatalAspects):
20
- """
21
- Generates an object with all the aspects between two persons.
22
- """
23
-
24
- def __init__(
25
- self,
26
- kr_object_one: Union[AstrologicalSubject, AstrologicalSubjectModel],
27
- kr_object_two: Union[AstrologicalSubject, AstrologicalSubjectModel],
28
- new_settings_file: Union[Path, KerykeionSettingsModel, dict, None] = None,
29
- ):
30
- # Subjects
31
- self.first_user = kr_object_one
32
- self.second_user = kr_object_two
33
-
34
- # Settings
35
- self.new_settings_file = new_settings_file
36
- self.settings = get_settings(self.new_settings_file)
37
-
38
- self.celestial_points = self.settings.celestial_points
39
- self.aspects_settings = self.settings.aspects
40
- self.axes_orbit_settings = self.settings.general_settings.axes_orbit
41
-
42
- # Private variables of the aspects
43
- self._all_aspects: Union[list, None] = None
44
- self._relevant_aspects: Union[list, None] = None
45
-
46
- @cached_property
47
- def all_aspects(self):
48
- """
49
- Return all the aspects of the points in the natal chart in a dictionary,
50
- first all the individual aspects of each planet, second the aspects
51
- whiteout repetitions.
52
- """
53
-
54
- if self._all_aspects is not None:
55
- return self._all_aspects
56
-
57
- # Celestial Points Lists
58
- first_active_points_list = get_active_points_list(self.first_user, self.settings)
59
- second_active_points_list = get_active_points_list(self.second_user, self.settings)
60
-
61
- self.all_aspects_list = []
62
-
63
- for first in range(len(first_active_points_list)):
64
- # Generates the aspects list whitout repetitions
65
- for second in range(len(second_active_points_list)):
66
- aspect = get_aspect_from_two_points(
67
- self.aspects_settings,
68
- first_active_points_list[first]["abs_pos"],
69
- second_active_points_list[second]["abs_pos"],
70
- )
71
-
72
- verdict = aspect["verdict"]
73
- name = aspect["name"]
74
- orbit = aspect["orbit"]
75
- aspect_degrees = aspect["aspect_degrees"]
76
- aid = aspect["aid"]
77
- diff = aspect["diff"]
78
-
79
- if verdict == True:
80
- aspect_model = AspectModel(
81
- p1_name=first_active_points_list[first]["name"],
82
- p1_abs_pos=first_active_points_list[first]["abs_pos"],
83
- p2_name=second_active_points_list[second]["name"],
84
- p2_abs_pos=second_active_points_list[second]["abs_pos"],
85
- aspect=name,
86
- orbit=orbit,
87
- aspect_degrees=aspect_degrees,
88
- aid=aid,
89
- diff=diff,
90
- p1=planet_id_decoder(self.celestial_points, first_active_points_list[first]["name"]),
91
- p2=planet_id_decoder(self.celestial_points, second_active_points_list[second]["name"]),
92
- is_major=self.aspects_settings[aid]["is_major"],
93
- )
94
- self.all_aspects_list.append(aspect_model)
95
-
96
- return self.all_aspects_list
97
-
98
-
99
- if __name__ == "__main__":
100
- from kerykeion.utilities import setup_logging
101
-
102
- setup_logging(level="debug")
103
-
104
- john = AstrologicalSubject("John", 1940, 10, 9, 18, 30, "Liverpool")
105
- yoko = AstrologicalSubject("Yoko", 1933, 2, 18, 18, 30, "Tokyo", "JP")
106
-
107
- synastry_aspects = SynastryAspects(john, yoko)
108
-
109
- # All aspects
110
- print(synastry_aspects.all_aspects)
111
-
112
- # Relevant aspects
113
- print(synastry_aspects.relevant_aspects)