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

@@ -1,14 +1,14 @@
1
1
  LICENSE,sha256=UTLH8EdbAsgQei4PA2PnBCPGLSZkq5J-dhkyJuXgWQU,34273
2
- kerykeion/__init__.py,sha256=f4_J_hAh_OSLAUrabqVhrc1rH59I6X1LS9vuAEzE9PY,536
2
+ kerykeion/__init__.py,sha256=2NnLOl-3f7L7x_8vXFKV7mgExlJBmsNIBenZNsR1Seo,639
3
3
  kerykeion/aspects/__init__.py,sha256=9FlDVI1ndCJga0-chNIhcLitjU_x3kbtAFfFqVp2ejc,293
4
- kerykeion/aspects/aspects_utils.py,sha256=vV21Xr5b3TF-HQ28h56VZeoCHcObHNxErW18S-kUxms,5508
5
- kerykeion/aspects/natal_aspects.py,sha256=rnzdwTNGaRETs8qDMYE81mAIuKTOmmoN7ak1mtgOGF0,4890
6
- kerykeion/aspects/synastry_aspects.py,sha256=cy7Zz5EcR5LKMgCyZxRRnJxGlFNVrUMxCFFq2kykgwY,4423
4
+ kerykeion/aspects/aspects_utils.py,sha256=kwH_FpReN8rMstyHthE_fWD6doltAVzXkKFcNfo-hLw,2977
5
+ kerykeion/aspects/natal_aspects.py,sha256=ESWKPiVUW6vjNgwEHjIkckwqS1y_vZ8_OAaWxUgfcdQ,4973
6
+ kerykeion/aspects/synastry_aspects.py,sha256=xe28zmrsYU5mxHf6vloEPu-FdJF9x-v7xEGVFkRUSF8,4334
7
7
  kerykeion/astrological_subject.py,sha256=YkEHyge_S6FTsAsLNuSMBR-4XdNMFhRo6lHqYdp-u6Y,35045
8
8
  kerykeion/charts/__init__.py,sha256=Juxkduy2TaagWblh_7CE8Acrg3dHL27-WEddJhau_eQ,127
9
9
  kerykeion/charts/charts_utils.py,sha256=IMvYy6jt6HmZZqpE1FIMhpL3eIqdxq2_aaF1RrpgzpE,42148
10
10
  kerykeion/charts/draw_planets.py,sha256=Uty3zpWYMQZvvK7ZHhlmynCHeL8DIN3qL2ifnBXVciM,17393
11
- kerykeion/charts/kerykeion_chart_svg.py,sha256=RuU14RNWM6b-fmPPUviHps_EI1GQRtMWDVVWNoQyFVg,42668
11
+ kerykeion/charts/kerykeion_chart_svg.py,sha256=FXCw8E6TSNH_F_6LCwVgUWWOp_rAO445r6BbJg6ii-Q,42789
12
12
  kerykeion/charts/templates/aspect_grid_only.xml,sha256=5CUctWk2wgXV-ev2JHJ5yLlow7gzzFZz1eO744PLu2A,65150
13
13
  kerykeion/charts/templates/chart.xml,sha256=ryQao1xDqlSjNUY0HzZiJjdRK__mQoMFA3WV-W6t5Jo,68383
14
14
  kerykeion/charts/templates/wheel_only.xml,sha256=xyFlULo1rKZDk8kT9pRWgaEoYyNcmwK40PARKqr30FY,66372
@@ -17,24 +17,26 @@ kerykeion/charts/themes/dark-high-contrast.css,sha256=6Hs_LM3m7xvEuRxWwXjLj6DBvf
17
17
  kerykeion/charts/themes/dark.css,sha256=egJbTzqnqMaSk3AQ6KI-PMId-BbT2bqzjpuVds2ffcc,6099
18
18
  kerykeion/charts/themes/light.css,sha256=urUXkEQlJ-IymdDO7Hp8hFwwjqka6GB42LkaiWZtpfs,6092
19
19
  kerykeion/enums.py,sha256=Xp_0A6jBSW7SZvB5LlKfBObg0xTqB6hTq1IXjz-UWl4,997
20
- kerykeion/ephemeris_data.py,sha256=AL9yilyRAL2e6L6hqxDkzSOqmKlHKgxhBDRS4wZd5HE,8309
20
+ kerykeion/ephemeris_data.py,sha256=g52P0jc1Roo8udXW04BOtIBTaOh3Rcp8_ZDw2MJNn_k,8072
21
21
  kerykeion/fetch_geonames.py,sha256=NmyTErvKISjJCAxvRB1H35aVZI8_-_U-Cqb_rmqRseA,4563
22
22
  kerykeion/kr_types/__init__.py,sha256=-qhGQikurdoHnGtuT1bsaEeZ-IwmZtIHMjGOPC9_oqQ,295
23
23
  kerykeion/kr_types/chart_types.py,sha256=OlDvjCra7acaBT--B_gqsqOcAwbuKCXmQQyDTDNfy4o,1983
24
24
  kerykeion/kr_types/kerykeion_exception.py,sha256=G-7VFta78qBt10l54JZWvwH-3lUNKmDwuILXaVGVu9A,314
25
- kerykeion/kr_types/kr_literals.py,sha256=WOtVNrzZmdtz1ksX698DRtkE4g6KXb_qXRR9zzKckj8,3377
26
- kerykeion/kr_types/kr_models.py,sha256=x6s-OOim5DRxtbH8t4Rk4sO26RMj7-aJgydZoslRiKw,3805
27
- kerykeion/kr_types/settings_models.py,sha256=hDDoJBz1arIsBySKUeqpmW9mw4aOaoUQo6icMfI1sgQ,12510
28
- kerykeion/relationship_score.py,sha256=LzEA2JXb_GeUinjfEtce_eQ97jxXFGfK3B97fODHIOE,6992
25
+ kerykeion/kr_types/kr_literals.py,sha256=gCRnSEmogD1MRwJOHmr6hxjIve0UTJDA0wnpA4p9lds,3600
26
+ kerykeion/kr_types/kr_models.py,sha256=hibUM0HAgL5u2Nx_k6R3wO1VNoKwurzxdj7MJDsrbsg,4235
27
+ kerykeion/kr_types/settings_models.py,sha256=xAIUdJ0vDfS19FiuQdBlwfo6_vCZOZ97K4_vgOD6has,11600
28
+ kerykeion/relationship_score/__init__.py,sha256=cLaEBQXQBfyRkv0OaS3ceLROzvWcvKXWiRq0PS6LDjY,114
29
+ kerykeion/relationship_score/relationship_score.py,sha256=ZUMRjEJdtB5_nRXdx4WJdBbTHu9ACwQTeTGhyeOSsoE,6504
30
+ kerykeion/relationship_score/relationship_score_factory.py,sha256=DL-a-Sb7JLscZl0qlW69SpkETkDmB-akpf5y3Sz8sds,10865
29
31
  kerykeion/report.py,sha256=QEZfadIxmqIugoLHMW0KBhOqCwTywGSDDfpX4NJD6qg,2785
30
32
  kerykeion/settings/__init__.py,sha256=QQNFCl7sgN27MKaVscqtpPk10HGz4wZS3I_7KEGMaVA,69
31
33
  kerykeion/settings/kerykeion_settings.py,sha256=zGLq9vNUQRXs8KY47EyKZ9bHrDl2gNYrvVhwsbh4yas,2578
32
- kerykeion/settings/kr.config.json,sha256=G7P9k6zwN7XqYyqAYZ4ATIkDJAh5E9nSQDoYDzfTRU0,19481
34
+ kerykeion/settings/kr.config.json,sha256=iH7R9FPt3mS1cgrB7OKrqWSgq8G4hAslYIRv2a2RbXc,20313
33
35
  kerykeion/sweph/README.md,sha256=L7FtNAJTWtrZNGKa8MX87SjduFYPYxwWhaI5fmtzNZo,73
34
36
  kerykeion/sweph/seas_18.se1,sha256=X9nCqhZU43wJpq61WAdueVQJt9xL2UjrwPqn1Kdoa1s,223002
35
- kerykeion/utilities.py,sha256=wJdjksXZlMWyvFnEe_1HQuCxYAtAWg-p8lqe2aO2zpE,9046
36
- kerykeion-4.17.2.dist-info/LICENSE,sha256=UTLH8EdbAsgQei4PA2PnBCPGLSZkq5J-dhkyJuXgWQU,34273
37
- kerykeion-4.17.2.dist-info/METADATA,sha256=hpZIeYAckILaL1mEBbRH2gUfNABXylXVbLOJ7m8RVOc,15913
38
- kerykeion-4.17.2.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
39
- kerykeion-4.17.2.dist-info/entry_points.txt,sha256=5SmANYscFDDTdeovHvGQ-cnj0hdFvGoxPaWLCpyDFnQ,49
40
- kerykeion-4.17.2.dist-info/RECORD,,
37
+ kerykeion/utilities.py,sha256=VazaGS8n2p3CD8P2q31A1kSKbmXRNMG8DytLuBwEaU4,9219
38
+ kerykeion-4.18.1.dist-info/LICENSE,sha256=UTLH8EdbAsgQei4PA2PnBCPGLSZkq5J-dhkyJuXgWQU,34273
39
+ kerykeion-4.18.1.dist-info/METADATA,sha256=jPuylgKGHvrRAlp4_ebrMJxvqkjJp27jNV6AOHGD-04,15912
40
+ kerykeion-4.18.1.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
41
+ kerykeion-4.18.1.dist-info/entry_points.txt,sha256=5SmANYscFDDTdeovHvGQ-cnj0hdFvGoxPaWLCpyDFnQ,49
42
+ kerykeion-4.18.1.dist-info/RECORD,,
@@ -1,206 +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 kerykeion.aspects.synastry_aspects import SynastryAspects
8
- import logging
9
- from pathlib import Path
10
- from typing import Union
11
- from kerykeion.kr_types.kr_models import AstrologicalSubjectModel
12
-
13
-
14
- class RelationshipScore:
15
- """
16
- Calculates the relevance of the relationship of the two subjects according to
17
- Ciro Discepolo method.
18
-
19
- Results:
20
- - From 0 to 5 = Null relationship
21
- - From 5 a 10 = Mediocre relationship
22
- - From 10 to 15 = Important relationship
23
- - From 15 to 20 = Very important relationship
24
- - From 20 to su = Exceptional relationship
25
-
26
- Documentation at:
27
- http://www.cirodiscepolo.it/Articoli/Discepoloele.htm
28
-
29
- Args:
30
- first_subject (AstrologicalSubject): First subject kerykeion instance
31
- second_subject (AstrologicalSubject): Second subject kerykeion instance
32
-
33
- """
34
-
35
- first_subject: Union[AstrologicalSubject, AstrologicalSubjectModel]
36
- second_subject: Union[AstrologicalSubject, AstrologicalSubjectModel]
37
- score: int
38
- is_destiny_sign: bool
39
- relevant_aspects: list
40
- relevant_default_aspects: list
41
-
42
- def __init__(
43
- self,
44
- first_subject: Union[AstrologicalSubject, AstrologicalSubjectModel],
45
- second_subject: Union[AstrologicalSubject, AstrologicalSubjectModel],
46
- new_settings_file: Union[Path, None] = None,
47
- ):
48
- self.first_subject = first_subject
49
- self.second_subject = second_subject
50
- self.score = 0
51
- self.is_destiny_sign = False
52
- self.relevant_aspects = []
53
- self.relevant_default_aspects = []
54
- self.__all_synastry_aspects = SynastryAspects(
55
- first_subject, second_subject, new_settings_file=new_settings_file
56
- ).all_aspects
57
-
58
- # Calculates all at initialization
59
- self._get_all()
60
-
61
- def __str__(self) -> str:
62
- return f"CuppleScoreInstance: {self.first_subject.name} and {self.second_subject.name}, score: {self.score}"
63
-
64
- def __dict__(self):
65
- return {
66
- "first_subject_name": self.first_subject.name,
67
- "second_subject_name": self.second_subject.name,
68
- "score": self.score,
69
- "relevant_aspects": self.relevant_aspects,
70
- "relevant_default_aspects": self.relevant_default_aspects,
71
- "is_destiny_sign": self.is_destiny_sign,
72
- }
73
-
74
- def _log_aspect(self, aspect: dict, points: int) -> None:
75
- logging.debug(
76
- f"{points} Points: {aspect['p1_name']} {aspect['aspect']} {aspect['p2_name']}, rounded orbit: {int(aspect['orbit'])}"
77
- )
78
-
79
- def _evaluate_destiny_sign(self) -> int:
80
- """
81
- 5 points if is a destiny sign:
82
- """
83
- if self.first_subject.sun["quality"] == self.second_subject.sun["quality"]:
84
- logging.debug(
85
- f'5 points: Destiny sign, {self.first_subject.sun["sign"]} and {self.second_subject.sun["sign"]}'
86
- )
87
- self.is_destiny_sign = True
88
- return 5
89
-
90
- return 0
91
-
92
- def _check_if_sun_sun_aspect(self, aspect: dict, log: bool = True) -> int:
93
- """
94
- 8 points if Sun conjunction/opposition/square to Sun,
95
- 11 if diff <= 2 degrees:
96
- """
97
- aspect_types = ["conjunction", "opposition", "square"]
98
-
99
- if (aspect["p1_name"] == "Sun" and aspect["p2_name"] == "Sun") and (aspect["aspect"] in aspect_types):
100
- self.relevant_default_aspects.append(aspect)
101
-
102
- if aspect["orbit"] <= 2:
103
- score = 11
104
-
105
- self._log_aspect(aspect, score)
106
- self.relevant_aspects.append(self._create_aspects_dictionary(aspect, score))
107
-
108
- return score
109
- else:
110
- score = 8
111
-
112
- self._log_aspect(aspect, score)
113
- self.relevant_aspects.append(self._create_aspects_dictionary(aspect, score))
114
-
115
- return score
116
-
117
- return 0
118
-
119
- def _check_if_sun_moon_conjunction(self, aspect: dict) -> int:
120
- """
121
- 8 points if Moon conjunction/opposition/square to Moon,
122
- 11 if diff <= 2 degrees:
123
- """
124
- planets = set(["Moon", "Sun"])
125
-
126
- if set([aspect["p1_name"], aspect["p2_name"]]) == planets and aspect["aspect"] == "conjunction":
127
- self.relevant_default_aspects.append(aspect)
128
-
129
- if aspect["orbit"] <= 2:
130
- score = 11
131
-
132
- self._log_aspect(aspect, score)
133
- self.relevant_aspects.append(self._create_aspects_dictionary(aspect, score))
134
-
135
- return score
136
-
137
- else:
138
- score = 8
139
-
140
- self._log_aspect(aspect, score)
141
- self.relevant_aspects.append(self._create_aspects_dictionary(aspect, score))
142
-
143
- return score
144
-
145
- return 0
146
-
147
- def _check_if_sun_moon_asc_aspect(self, aspect: dict) -> int:
148
- planets = ["Sun", "Moon", "First_House"]
149
-
150
- if self._check_if_sun_sun_aspect(aspect) or self._check_if_sun_moon_conjunction(aspect):
151
- return 0
152
-
153
- if aspect["p1_name"] in planets and aspect["p2_name"] in planets:
154
- self.relevant_default_aspects.append(aspect)
155
- score = 4
156
-
157
- self._log_aspect(aspect, score)
158
- self.relevant_aspects.append(self._create_aspects_dictionary(aspect, score))
159
-
160
- return score
161
-
162
- return 0
163
-
164
- def _check_if_venus_mars_aspect(self, aspect: dict) -> int:
165
- planets = set(["Venus", "Mars"])
166
- if set([aspect["p1_name"], aspect["p2_name"]]) == planets:
167
- score = 4
168
- self.relevant_default_aspects.append(aspect)
169
-
170
- self._log_aspect(aspect, score)
171
- self.relevant_aspects.append(self._create_aspects_dictionary(aspect, score))
172
-
173
- return score
174
-
175
- return 0
176
-
177
- def _create_aspects_dictionary(self, aspect: dict, score: int) -> dict:
178
- return {
179
- "points": score,
180
- "p1_name": aspect["p1_name"],
181
- "p2_name": aspect["p2_name"],
182
- "aspect": aspect["aspect"],
183
- "orbit": aspect["orbit"],
184
- }
185
-
186
- def _get_all(self) -> None:
187
- self.score += self._evaluate_destiny_sign()
188
-
189
- for a in self.__all_synastry_aspects:
190
- self.score += self._check_if_sun_sun_aspect(a)
191
- self.score += self._check_if_sun_moon_conjunction(a)
192
- self.score += self._check_if_sun_moon_asc_aspect(a)
193
- self.score += self._check_if_venus_mars_aspect(a)
194
-
195
-
196
- if __name__ == "__main__":
197
- from kerykeion.utilities import setup_logging
198
- setup_logging(level="debug")
199
-
200
- lui = AstrologicalSubject("John", 1975, 10, 10, 21, 15, "Roma", "IT")
201
- lei = AstrologicalSubject("Sarah", 1978, 2, 9, 15, 50, "Roma", "IT")
202
-
203
- score = RelationshipScore(lui, lei)
204
- print(score.__dict__()["score"])
205
- print(score.__dict__()["is_destiny_sign"])
206
- print(score.__dict__()["relevant_aspects"][0])