kerykeion 4.26.3__py3-none-any.whl → 5.0.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.

Files changed (76) hide show
  1. kerykeion/__init__.py +54 -11
  2. kerykeion/aspects/__init__.py +5 -2
  3. kerykeion/aspects/aspects_factory.py +569 -0
  4. kerykeion/aspects/aspects_utils.py +81 -8
  5. kerykeion/astrological_subject_factory.py +1897 -0
  6. kerykeion/backword.py +773 -0
  7. kerykeion/chart_data_factory.py +549 -0
  8. kerykeion/charts/chart_drawer.py +2601 -0
  9. kerykeion/charts/charts_utils.py +948 -177
  10. kerykeion/charts/draw_planets.py +602 -351
  11. kerykeion/charts/templates/aspect_grid_only.xml +328 -202
  12. kerykeion/charts/templates/chart.xml +432 -272
  13. kerykeion/charts/templates/wheel_only.xml +350 -214
  14. kerykeion/charts/themes/black-and-white.css +148 -0
  15. kerykeion/charts/themes/classic.css +107 -76
  16. kerykeion/charts/themes/dark-high-contrast.css +145 -107
  17. kerykeion/charts/themes/dark.css +146 -107
  18. kerykeion/charts/themes/light.css +146 -103
  19. kerykeion/charts/themes/strawberry.css +158 -0
  20. kerykeion/composite_subject_factory.py +253 -51
  21. kerykeion/ephemeris_data_factory.py +434 -0
  22. kerykeion/fetch_geonames.py +27 -8
  23. kerykeion/house_comparison/__init__.py +6 -0
  24. kerykeion/house_comparison/house_comparison_factory.py +103 -0
  25. kerykeion/house_comparison/house_comparison_utils.py +126 -0
  26. kerykeion/kr_types/__init__.py +66 -6
  27. kerykeion/kr_types/chart_template_model.py +20 -0
  28. kerykeion/kr_types/kerykeion_exception.py +15 -9
  29. kerykeion/kr_types/kr_literals.py +14 -132
  30. kerykeion/kr_types/kr_models.py +14 -318
  31. kerykeion/kr_types/settings_models.py +15 -203
  32. kerykeion/planetary_return_factory.py +805 -0
  33. kerykeion/relationship_score_factory.py +301 -0
  34. kerykeion/report.py +751 -64
  35. kerykeion/schemas/__init__.py +106 -0
  36. kerykeion/schemas/chart_template_model.py +367 -0
  37. kerykeion/schemas/kerykeion_exception.py +20 -0
  38. kerykeion/schemas/kr_literals.py +181 -0
  39. kerykeion/schemas/kr_models.py +605 -0
  40. kerykeion/schemas/settings_models.py +180 -0
  41. kerykeion/settings/__init__.py +20 -1
  42. kerykeion/settings/chart_defaults.py +444 -0
  43. kerykeion/settings/config_constants.py +117 -12
  44. kerykeion/settings/kerykeion_settings.py +31 -73
  45. kerykeion/settings/translation_strings.py +1479 -0
  46. kerykeion/settings/translations.py +74 -0
  47. kerykeion/sweph/ast136/s136108s.se1 +0 -0
  48. kerykeion/sweph/ast136/s136199s.se1 +0 -0
  49. kerykeion/sweph/ast136/s136472s.se1 +0 -0
  50. kerykeion/sweph/ast28/se28978s.se1 +0 -0
  51. kerykeion/sweph/ast50/se50000s.se1 +0 -0
  52. kerykeion/sweph/ast90/se90377s.se1 +0 -0
  53. kerykeion/sweph/ast90/se90482s.se1 +0 -0
  54. kerykeion/sweph/sefstars.txt +1602 -0
  55. kerykeion/transits_time_range_factory.py +302 -0
  56. kerykeion/utilities.py +393 -114
  57. kerykeion-5.0.0.dist-info/METADATA +1176 -0
  58. kerykeion-5.0.0.dist-info/RECORD +63 -0
  59. {kerykeion-4.26.3.dist-info → kerykeion-5.0.0.dist-info}/WHEEL +1 -1
  60. kerykeion/aspects/natal_aspects.py +0 -172
  61. kerykeion/aspects/synastry_aspects.py +0 -124
  62. kerykeion/aspects/transits_time_range.py +0 -41
  63. kerykeion/astrological_subject.py +0 -841
  64. kerykeion/charts/kerykeion_chart_svg.py +0 -1219
  65. kerykeion/enums.py +0 -57
  66. kerykeion/ephemeris_data.py +0 -242
  67. kerykeion/kr_types/chart_types.py +0 -95
  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 -230
  71. kerykeion/settings/kr.config.json +0 -1258
  72. kerykeion/transits_time_range.py +0 -124
  73. kerykeion-4.26.3.dist-info/METADATA +0 -634
  74. kerykeion-4.26.3.dist-info/RECORD +0 -45
  75. kerykeion-4.26.3.dist-info/entry_points.txt +0 -3
  76. {kerykeion-4.26.3.dist-info → kerykeion-5.0.0.dist-info/licenses}/LICENSE +0 -0
@@ -1,124 +0,0 @@
1
- from typing import Optional, Union, List
2
- from datetime import datetime, timedelta
3
- from kerykeion import AstrologicalSubject, SynastryAspects
4
- from kerykeion.ephemeris_data import EphemerisDataFactory
5
- from kerykeion.kr_types.kr_literals import AxialCusps, Planet
6
- from kerykeion.kr_types.kr_models import ActiveAspect, TransitMomentModel, TransitsTimeRangeModel
7
- from kerykeion.settings.config_constants import DEFAULT_ACTIVE_POINTS, DEFAULT_ACTIVE_ASPECTS
8
-
9
-
10
- class TransitsTimeRangeFactory:
11
- """
12
- Factory class for generating astrological transit data over a period of time.
13
-
14
- This class compares the positions of celestial bodies at different points in time
15
- with the natal chart of an astrological subject to identify significant aspects
16
- and produces structured models containing the transit data.
17
-
18
- Attributes:
19
- natal_chart: The natal chart of the subject for whom transits are calculated.
20
- ephemeris_data_points: List of ephemeris data points representing planetary positions at different times.
21
- active_points: List of celestial points to consider when calculating aspects.
22
- active_aspects: List of aspect types to consider when analyzing planetary relationships.
23
- settings_file: Path to custom settings file for aspect calculations (optional).
24
- """
25
-
26
- def __init__(
27
- self,
28
- natal_chart: AstrologicalSubject,
29
- ephemeris_data_points: List[AstrologicalSubject],
30
- active_points: List[Union[AxialCusps, Planet]] = DEFAULT_ACTIVE_POINTS,
31
- active_aspects: List[ActiveAspect] = DEFAULT_ACTIVE_ASPECTS,
32
- settings_file: Optional[str] = None
33
- ):
34
- """
35
- Initialize the TransitMomentsFactory with the necessary data.
36
-
37
- Args:
38
- natal_chart: The natal chart of the subject for whom transits are calculated.
39
- ephemeris_data_points: List of ephemeris data points representing planetary positions at different times.
40
- active_points: List of celestial points to consider when calculating aspects.
41
- active_aspects: List of aspect types to consider when analyzing planetary relationships.
42
- settings_file: Path to custom settings file for aspect calculations (optional).
43
- """
44
- self.natal_chart = natal_chart
45
- self.ephemeris_data_points = ephemeris_data_points
46
- self.active_points = active_points
47
- self.active_aspects = active_aspects
48
- self.settings_file = settings_file
49
-
50
- def get_transit_moments(self) -> TransitsTimeRangeModel:
51
- """
52
- Generate a model of transit moments for the given subject across all ephemeris data points.
53
-
54
- This method compares the positions of celestial bodies at different points in time
55
- with the natal chart of the subject to identify significant aspects and
56
- compiles them into a structured model for analysis.
57
-
58
- Returns:
59
- TransitMomentsListModel: A model containing all transit data, including aspects,
60
- dates, and subject information.
61
- """
62
- transit_moments = []
63
-
64
- for ephemeris_point in self.ephemeris_data_points:
65
- # Calculate aspects between transit positions and natal chart
66
- aspects = SynastryAspects(
67
- ephemeris_point,
68
- self.natal_chart,
69
- active_points=self.active_points,
70
- active_aspects=self.active_aspects,
71
- new_settings_file=self.settings_file,
72
- ).relevant_aspects
73
-
74
- # Create a transit moment for this point in time
75
- transit_moments.append(
76
- TransitMomentModel(
77
- date=ephemeris_point.iso_formatted_utc_datetime,
78
- aspects=aspects,
79
- )
80
- )
81
-
82
- # Create and return the complete transits model
83
- return TransitsTimeRangeModel(
84
- dates=[point.iso_formatted_utc_datetime for point in self.ephemeris_data_points],
85
- subject=self.natal_chart.model(),
86
- transits=transit_moments
87
- )
88
-
89
-
90
- if __name__ == "__main__":
91
- # Create a natal chart for the subject
92
- person = AstrologicalSubject(
93
- "Johnny Depp", 1963, 6, 9, 20, 15, "Owensboro", "US"
94
- )
95
-
96
- # Define the time period for transit calculation
97
- start_date = datetime.now()
98
- end_date = datetime.now() + timedelta(days=30)
99
-
100
- # Create ephemeris data for the specified time period
101
- ephemeris_factory = EphemerisDataFactory(
102
- start_datetime=start_date,
103
- end_datetime=end_date,
104
- step_type="days",
105
- step=1,
106
- lat=person.lat,
107
- lng=person.lng,
108
- tz_str=person.tz_str,
109
- )
110
-
111
- ephemeris_data_points = ephemeris_factory.get_ephemeris_data_as_astrological_subjects()
112
-
113
- # Calculate transits for the subject
114
- transit_factory = TransitsTimeRangeFactory(
115
- natal_chart=person,
116
- ephemeris_data_points=ephemeris_data_points,
117
- )
118
-
119
- transit_results = transit_factory.get_transit_moments()
120
-
121
- # Print example data
122
- print(transit_results.model_dump()["dates"][2])
123
- print(transit_results.model_dump()["transits"][2]['date'])
124
- print(transit_results.model_dump()["transits"][2]['aspects'][0])