kerykeion 4.2.1__tar.gz → 4.2.2__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 (29) hide show
  1. {kerykeion-4.2.1 → kerykeion-4.2.2}/PKG-INFO +1 -1
  2. {kerykeion-4.2.1 → kerykeion-4.2.2}/kerykeion/aspects/__init__.py +1 -1
  3. {kerykeion-4.2.1 → kerykeion-4.2.2}/kerykeion/aspects/aspects_utils.py +1 -20
  4. {kerykeion-4.2.1 → kerykeion-4.2.2}/kerykeion/aspects/natal_aspects.py +27 -24
  5. {kerykeion-4.2.1 → kerykeion-4.2.2}/kerykeion/aspects/synastry_aspects.py +29 -23
  6. {kerykeion-4.2.1 → kerykeion-4.2.2}/kerykeion/utilities.py +17 -2
  7. {kerykeion-4.2.1 → kerykeion-4.2.2}/pyproject.toml +2 -1
  8. {kerykeion-4.2.1 → kerykeion-4.2.2}/LICENSE +0 -0
  9. {kerykeion-4.2.1 → kerykeion-4.2.2}/README.md +0 -0
  10. {kerykeion-4.2.1 → kerykeion-4.2.2}/kerykeion/__init__.py +0 -0
  11. {kerykeion-4.2.1 → kerykeion-4.2.2}/kerykeion/astrological_subject.py +0 -0
  12. {kerykeion-4.2.1 → kerykeion-4.2.2}/kerykeion/charts/__init__.py +0 -0
  13. {kerykeion-4.2.1 → kerykeion-4.2.2}/kerykeion/charts/charts_utils.py +0 -0
  14. {kerykeion-4.2.1 → kerykeion-4.2.2}/kerykeion/charts/kerykeion_chart_svg.py +0 -0
  15. {kerykeion-4.2.1 → kerykeion-4.2.2}/kerykeion/charts/templates/chart.xml +0 -0
  16. {kerykeion-4.2.1 → kerykeion-4.2.2}/kerykeion/fetch_geonames.py +0 -0
  17. {kerykeion-4.2.1 → kerykeion-4.2.2}/kerykeion/kr_types/__init__.py +0 -0
  18. {kerykeion-4.2.1 → kerykeion-4.2.2}/kerykeion/kr_types/chart_types.py +0 -0
  19. {kerykeion-4.2.1 → kerykeion-4.2.2}/kerykeion/kr_types/kerykeion_exception.py +0 -0
  20. {kerykeion-4.2.1 → kerykeion-4.2.2}/kerykeion/kr_types/kr_literals.py +0 -0
  21. {kerykeion-4.2.1 → kerykeion-4.2.2}/kerykeion/kr_types/kr_models.py +0 -0
  22. {kerykeion-4.2.1 → kerykeion-4.2.2}/kerykeion/kr_types/settings_models.py +0 -0
  23. {kerykeion-4.2.1 → kerykeion-4.2.2}/kerykeion/relationship_score.py +0 -0
  24. {kerykeion-4.2.1 → kerykeion-4.2.2}/kerykeion/report.py +0 -0
  25. {kerykeion-4.2.1 → kerykeion-4.2.2}/kerykeion/settings/__init__.py +0 -0
  26. {kerykeion-4.2.1 → kerykeion-4.2.2}/kerykeion/settings/kerykeion_settings.py +0 -0
  27. {kerykeion-4.2.1 → kerykeion-4.2.2}/kerykeion/settings/kr.config.json +0 -0
  28. {kerykeion-4.2.1 → kerykeion-4.2.2}/kerykeion/sweph/README.md +0 -0
  29. {kerykeion-4.2.1 → kerykeion-4.2.2}/kerykeion/sweph/seas_18.se1 +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: kerykeion
3
- Version: 4.2.1
3
+ Version: 4.2.2
4
4
  Summary: A python library for astrology.
5
5
  Home-page: https://github.com/g-battaglia/kerykeion
6
6
  License: AGPL-3.0
@@ -8,4 +8,4 @@ The aspects module contains the classes and functions for calculating
8
8
 
9
9
 
10
10
  from .synastry_aspects import SynastryAspects
11
- from .natal_aspects import NatalAspects
11
+ from .natal_aspects import NatalAspects
@@ -163,23 +163,4 @@ def planet_id_decoder(planets_settings: dict, name: str):
163
163
  for planet in planets_settings:
164
164
  if planet["name"] == str_name:
165
165
  result = planet["id"]
166
- return result
167
-
168
-
169
- def filter_by_settings(planets_settings: dict, init_point_list: list):
170
- """
171
- Creates a list of all the desired
172
- points filtering by the settings.
173
- """
174
-
175
- set_points_name = []
176
- for p in planets_settings:
177
- if p["is_active"]:
178
- set_points_name.append(p["name"])
179
-
180
- point_list = []
181
- for l in init_point_list:
182
- if l["name"] in set_points_name:
183
- point_list.append(l)
184
-
185
- return point_list
166
+ return result
@@ -9,11 +9,18 @@ from logging import getLogger, basicConfig
9
9
  from typing import Union
10
10
  from kerykeion.settings.kerykeion_settings import get_settings
11
11
  from dataclasses import dataclass
12
- from kerykeion.aspects.aspects_utils import filter_by_settings, planet_id_decoder, get_aspect_from_two_points
12
+ from kerykeion.aspects.aspects_utils import planet_id_decoder, get_aspect_from_two_points
13
+ from kerykeion.utilities import get_active_points_list
13
14
 
14
15
  logger = getLogger(__name__)
15
16
  basicConfig(format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", level="INFO")
16
17
 
18
+ AXES_LIST = [
19
+ "First_House",
20
+ "Tenth_House",
21
+ "Seventh_House",
22
+ "Fourth_House",
23
+ ]
17
24
 
18
25
  @dataclass
19
26
  class NatalAspects:
@@ -27,13 +34,11 @@ class NatalAspects:
27
34
  _relevant_aspects: Union[list, None] = None
28
35
 
29
36
  def __post_init__(self):
30
- settings = get_settings(self.new_settings_file)
37
+ self.settings = get_settings(self.new_settings_file)
31
38
 
32
- self.init_point_list = self.user.planets_list + self.user.houses_list
33
-
34
- self.planets_settings = settings["celestial_points"]
35
- self.aspects_settings = settings["aspects"]
36
- self.axes_orbit_settings = settings["general_settings"]["axes_orbit"]
39
+ self.celestial_points = self.settings["celestial_points"]
40
+ self.aspects_settings = self.settings["aspects"]
41
+ self.axes_orbit_settings = self.settings["general_settings"]["axes_orbit"]
37
42
 
38
43
  @property
39
44
  def all_aspects(self):
@@ -46,33 +51,36 @@ class NatalAspects:
46
51
  if self._all_aspects is not None:
47
52
  return self._all_aspects
48
53
 
49
- point_list = filter_by_settings(self.planets_settings, self.init_point_list)
54
+ active_points_list = get_active_points_list(self.user, self.settings)
50
55
 
51
56
  self.all_aspects_list = []
52
57
 
53
- for first in range(len(point_list)):
58
+ for first in range(len(active_points_list)):
54
59
  # Generates the aspects list without repetitions
55
- for second in range(first + 1, len(point_list)):
60
+ for second in range(first + 1, len(active_points_list)):
56
61
  verdict, name, orbit, aspect_degrees, color, aid, diff = get_aspect_from_two_points(
57
- self.aspects_settings, point_list[first]["abs_pos"], point_list[second]["abs_pos"]
62
+ self.aspects_settings, active_points_list[first]["abs_pos"], active_points_list[second]["abs_pos"]
58
63
  )
59
64
 
60
65
  if verdict == True:
61
66
  d_asp = {
62
- "p1_name": point_list[first]["name"],
63
- "p1_abs_pos": point_list[first]["abs_pos"],
64
- "p2_name": point_list[second]["name"],
65
- "p2_abs_pos": point_list[second]["abs_pos"],
67
+ "p1_name": active_points_list[first]["name"],
68
+ "p1_abs_pos": active_points_list[first]["abs_pos"],
69
+ "p2_name": active_points_list[second]["name"],
70
+ "p2_abs_pos": active_points_list[second]["abs_pos"],
66
71
  "aspect": name,
67
72
  "orbit": orbit,
68
73
  "aspect_degrees": aspect_degrees,
69
74
  "color": color,
70
75
  "aid": aid,
71
76
  "diff": diff,
72
- "p1": planet_id_decoder(self.planets_settings, point_list[first]["name"]),
77
+ "p1": planet_id_decoder(
78
+ self.celestial_points,
79
+ active_points_list[first]["name"]
80
+ ),
73
81
  "p2": planet_id_decoder(
74
- self.planets_settings,
75
- point_list[second]["name"],
82
+ self.celestial_points,
83
+ active_points_list[second]["name"],
76
84
  ),
77
85
  }
78
86
 
@@ -101,12 +109,7 @@ class NatalAspects:
101
109
  if self.aspects_settings[a["aid"]]["is_active"] == True:
102
110
  aspects_filtered.append(a)
103
111
 
104
- axes_list = [
105
- "First_House",
106
- "Tenth_House",
107
- "Seventh_House",
108
- "Fourth_House",
109
- ]
112
+ axes_list = AXES_LIST
110
113
  counter = 0
111
114
 
112
115
  aspects_list_subtract = []
@@ -9,7 +9,8 @@ from typing import Union
9
9
 
10
10
  from kerykeion.aspects.natal_aspects import NatalAspects
11
11
  from kerykeion.settings.kerykeion_settings import get_settings
12
- from kerykeion.aspects.aspects_utils import filter_by_settings, planet_id_decoder, get_aspect_from_two_points
12
+ from kerykeion.aspects.aspects_utils import planet_id_decoder, get_aspect_from_two_points
13
+ from kerykeion.utilities import get_active_points_list
13
14
 
14
15
 
15
16
  class SynastryAspects(NatalAspects):
@@ -23,22 +24,24 @@ class SynastryAspects(NatalAspects):
23
24
  kr_object_two: AstrologicalSubject,
24
25
  new_settings_file: Union[Path, None] = None,
25
26
  ):
27
+ # Subjects
26
28
  self.first_user = kr_object_one
27
29
  self.second_user = kr_object_two
28
-
30
+
31
+ # Settings
29
32
  self.new_settings_file = new_settings_file
33
+ self.settings = get_settings(self.new_settings_file)
34
+
35
+ self.celestial_points = self.settings["celestial_points"]
36
+ self.aspects_settings = self.settings["aspects"]
37
+ self.axes_orbit_settings = self.settings["general_settings"]["axes_orbit"]
30
38
 
31
- self.first_init_point_list = self.first_user.planets_list + self.first_user.houses_list
32
- self.second_init_point_list = self.second_user.planets_list + self.second_user.houses_list
33
-
39
+ # Private variables of the aspects
34
40
  self._all_aspects: Union[list, None] = None
35
41
  self._relevant_aspects: Union[list, None] = None
36
42
 
37
- settings = get_settings(self.new_settings_file)
38
43
 
39
- self.planets_settings = settings["celestial_points"]
40
- self.aspects_settings = settings["aspects"]
41
- self.axes_orbit_settings = settings["general_settings"]["axes_orbit"]
44
+
42
45
 
43
46
  @property
44
47
  def all_aspects(self):
@@ -50,36 +53,39 @@ class SynastryAspects(NatalAspects):
50
53
 
51
54
  if self._all_aspects is not None:
52
55
  return self._all_aspects
53
-
54
- f_1 = filter_by_settings(self.planets_settings, self.first_init_point_list)
55
-
56
- f_2 = filter_by_settings(self.planets_settings, self.second_init_point_list)
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)
57
60
 
58
61
  self.all_aspects_list = []
59
62
 
60
- for first in range(len(f_1)):
63
+ for first in range(len(first_active_points_list)):
61
64
  # Generates the aspects list whitout repetitions
62
- for second in range(len(f_2)):
65
+ for second in range(len(second_active_points_list)):
63
66
  verdict, name, orbit, aspect_degrees, color, aid, diff = get_aspect_from_two_points(
64
- self.aspects_settings, f_1[first]["abs_pos"], f_2[second]["abs_pos"]
67
+ self.aspects_settings, first_active_points_list[first]["abs_pos"], second_active_points_list[second]["abs_pos"]
65
68
  )
66
69
 
67
70
  if verdict == True:
68
71
  d_asp = {
69
- "p1_name": f_1[first]["name"],
70
- "p1_abs_pos": f_1[first]["abs_pos"],
71
- "p2_name": f_2[second]["name"],
72
- "p2_abs_pos": f_2[second]["abs_pos"],
72
+ "p1_name": first_active_points_list[first]["name"],
73
+ "p1_abs_pos": first_active_points_list[first]["abs_pos"],
74
+ "p2_name": second_active_points_list[second]["name"],
75
+ "p2_abs_pos": second_active_points_list[second]["abs_pos"],
73
76
  "aspect": name,
74
77
  "orbit": orbit,
75
78
  "aspect_degrees": aspect_degrees,
76
79
  "color": color,
77
80
  "aid": aid,
78
81
  "diff": diff,
79
- "p1": planet_id_decoder(self.planets_settings, f_1[first]["name"]),
82
+ "p1": planet_id_decoder(
83
+ self.settings.celestial_points,
84
+ first_active_points_list[first]["name"]
85
+ ),
80
86
  "p2": planet_id_decoder(
81
- self.planets_settings,
82
- f_2[second]["name"],
87
+ self.settings.celestial_points,
88
+ second_active_points_list[second]["name"],
83
89
  ),
84
90
  }
85
91
 
@@ -1,5 +1,4 @@
1
- from kerykeion.kr_types import KerykeionPointModel, KerykeionException
2
- from pathlib import Path
1
+ from kerykeion.kr_types import KerykeionPointModel, KerykeionException, KerykeionSettingsModel, AstrologicalSubjectModel
3
2
  from typing import Union, Literal
4
3
  from logging import getLogger
5
4
 
@@ -206,3 +205,19 @@ def calculate_position(
206
205
 
207
206
  return KerykeionPointModel(**dictionary)
208
207
 
208
+ def get_active_points_list(subject: AstrologicalSubjectModel, settings: Union[KerykeionSettingsModel, dict]) -> list:
209
+ """
210
+ Given an astrological subject and the settings, return a list of the active points.
211
+ Args:
212
+ subject (AstrologicalSubject): The astrological subject to get the active points from.
213
+ settings (Union[KerykeionSettingsModel, dict]): Settings model o dictionary.
214
+
215
+ Returns:
216
+ list: List of the active points.
217
+ """
218
+ point_list = []
219
+ for planet in settings["celestial_points"]:
220
+ if planet["is_active"] == True:
221
+ point_list.append(subject[planet["name"].lower()])
222
+
223
+ return point_list
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "kerykeion"
3
- version = "4.2.1"
3
+ version = "4.2.2"
4
4
  authors = ["Giacomo Battaglia <battaglia.giacomo@yahoo.it>"]
5
5
  description = "A python library for astrology."
6
6
  license = "AGPL-3.0"
@@ -29,6 +29,7 @@ classifiers = [
29
29
  "Programming Language :: Python :: 3 :: Only",
30
30
  "Programming Language :: Python :: 3.9",
31
31
  "Programming Language :: Python :: 3.10",
32
+ "Programming Language :: Python :: 3.11",
32
33
  "Topic :: Software Development :: Libraries :: Python Modules",
33
34
  "Topic :: Software Development :: Libraries",
34
35
  "Topic :: Software Development",
File without changes
File without changes
File without changes