kerykeion 3.1.1__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 (75) hide show
  1. kerykeion/__init__.py +58 -141
  2. kerykeion/aspects/__init__.py +14 -0
  3. kerykeion/aspects/aspects_factory.py +568 -0
  4. kerykeion/aspects/aspects_utils.py +164 -0
  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 +5 -0
  9. kerykeion/charts/chart_drawer.py +2794 -0
  10. kerykeion/charts/charts_utils.py +1840 -0
  11. kerykeion/charts/draw_planets.py +658 -0
  12. kerykeion/charts/templates/aspect_grid_only.xml +596 -0
  13. kerykeion/charts/templates/chart.xml +741 -0
  14. kerykeion/charts/templates/wheel_only.xml +653 -0
  15. kerykeion/charts/themes/black-and-white.css +148 -0
  16. kerykeion/charts/themes/classic.css +113 -0
  17. kerykeion/charts/themes/dark-high-contrast.css +159 -0
  18. kerykeion/charts/themes/dark.css +160 -0
  19. kerykeion/charts/themes/light.css +160 -0
  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 +105 -61
  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 +70 -0
  28. kerykeion/kr_types/chart_template_model.py +20 -0
  29. kerykeion/kr_types/kerykeion_exception.py +20 -0
  30. kerykeion/kr_types/kr_literals.py +20 -0
  31. kerykeion/kr_types/kr_models.py +20 -0
  32. kerykeion/kr_types/settings_models.py +20 -0
  33. kerykeion/planetary_return_factory.py +805 -0
  34. kerykeion/relationship_score_factory.py +301 -0
  35. kerykeion/report.py +779 -0
  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 -0
  43. kerykeion/settings/chart_defaults.py +444 -0
  44. kerykeion/settings/config_constants.py +152 -0
  45. kerykeion/settings/kerykeion_settings.py +51 -0
  46. kerykeion/settings/translation_strings.py +1499 -0
  47. kerykeion/settings/translations.py +74 -0
  48. kerykeion/sweph/README.md +3 -0
  49. kerykeion/sweph/ast136/s136108s.se1 +0 -0
  50. kerykeion/sweph/ast136/s136199s.se1 +0 -0
  51. kerykeion/sweph/ast136/s136472s.se1 +0 -0
  52. kerykeion/sweph/ast28/se28978s.se1 +0 -0
  53. kerykeion/sweph/ast50/se50000s.se1 +0 -0
  54. kerykeion/sweph/ast90/se90377s.se1 +0 -0
  55. kerykeion/sweph/ast90/se90482s.se1 +0 -0
  56. kerykeion/sweph/seas_18.se1 +0 -0
  57. kerykeion/sweph/sefstars.txt +1602 -0
  58. kerykeion/transits_time_range_factory.py +302 -0
  59. kerykeion/utilities.py +762 -130
  60. kerykeion-5.1.9.dist-info/METADATA +1793 -0
  61. kerykeion-5.1.9.dist-info/RECORD +63 -0
  62. {kerykeion-3.1.1.dist-info → kerykeion-5.1.9.dist-info}/WHEEL +1 -2
  63. kerykeion-5.1.9.dist-info/licenses/LICENSE +661 -0
  64. kerykeion/aspects.py +0 -331
  65. kerykeion/charts/charts_svg.py +0 -1607
  66. kerykeion/charts/templates/basic.xml +0 -285
  67. kerykeion/charts/templates/extended.xml +0 -294
  68. kerykeion/kr.config.json +0 -464
  69. kerykeion/main.py +0 -595
  70. kerykeion/print_all_data.py +0 -44
  71. kerykeion/relationship_score.py +0 -219
  72. kerykeion/types.py +0 -190
  73. kerykeion-3.1.1.dist-info/METADATA +0 -204
  74. kerykeion-3.1.1.dist-info/RECORD +0 -17
  75. kerykeion-3.1.1.dist-info/top_level.txt +0 -1
@@ -0,0 +1,152 @@
1
+ from kerykeion.schemas.kr_literals import AstrologicalPoint
2
+ from kerykeion.schemas.kr_models import ActiveAspect
3
+ from typing import List
4
+
5
+
6
+ DEFAULT_ACTIVE_POINTS: List[AstrologicalPoint] = [
7
+ "Sun",
8
+ "Moon",
9
+ "Mercury",
10
+ "Venus",
11
+ "Mars",
12
+ "Jupiter",
13
+ "Saturn",
14
+ "Uranus",
15
+ "Neptune",
16
+ "Pluto",
17
+ # "Mean_North_Lunar_Node",
18
+ "True_North_Lunar_Node",
19
+ # "Mean_South_Lunar_Node",
20
+ "True_South_Lunar_Node",
21
+ "Chiron",
22
+ "Mean_Lilith",
23
+ # "True_Lilith",
24
+ # "Earth",
25
+ # "Pholus",
26
+ # "Ceres",
27
+ # "Pallas",
28
+ # "Juno",
29
+ # "Vesta",
30
+ # "Eris",
31
+ # "Sedna",
32
+ # "Haumea",
33
+ # "Makemake",
34
+ # "Ixion",
35
+ # "Orcus",
36
+ # "Quaoar",
37
+ # "Regulus",
38
+ # "Spica",
39
+ "Ascendant",
40
+ "Medium_Coeli",
41
+ "Descendant",
42
+ "Imum_Coeli",
43
+ # "Vertex",
44
+ # "Anti_Vertex",
45
+ # "Pars_Fortunae",
46
+ # "Pars_Spiritus",
47
+ # "Pars_Amoris",
48
+ # "Pars_Fidei"
49
+ ]
50
+ """
51
+ Default list of active points in the charts or aspects calculations.
52
+ The full list of points is available in the `schemas.kr_literals.AstrologicalPoint` literal.
53
+ """
54
+
55
+ ALL_ACTIVE_POINTS: List[AstrologicalPoint] = [
56
+ "Sun",
57
+ "Moon",
58
+ "Mercury",
59
+ "Venus",
60
+ "Mars",
61
+ "Jupiter",
62
+ "Saturn",
63
+ "Uranus",
64
+ "Neptune",
65
+ "Pluto",
66
+ "Mean_North_Lunar_Node",
67
+ "True_North_Lunar_Node",
68
+ "Mean_South_Lunar_Node",
69
+ "True_South_Lunar_Node",
70
+ "Chiron",
71
+ "Mean_Lilith",
72
+ "True_Lilith",
73
+ "Earth",
74
+ "Pholus",
75
+ "Ceres",
76
+ "Pallas",
77
+ "Juno",
78
+ "Vesta",
79
+ "Eris",
80
+ "Sedna",
81
+ "Haumea",
82
+ "Makemake",
83
+ "Ixion",
84
+ "Orcus",
85
+ "Quaoar",
86
+ "Regulus",
87
+ "Spica",
88
+ "Ascendant",
89
+ "Medium_Coeli",
90
+ "Descendant",
91
+ "Imum_Coeli",
92
+ "Vertex",
93
+ "Anti_Vertex",
94
+ "Pars_Fortunae",
95
+ "Pars_Spiritus",
96
+ "Pars_Amoris",
97
+ "Pars_Fidei"
98
+ ]
99
+ """
100
+ Full list of active points in the charts or aspects calculations.
101
+ The full list of points is available in the `schemas.kr_literals.AstrologicalPoint` literal.
102
+ """
103
+
104
+ DEFAULT_ACTIVE_ASPECTS: List[ActiveAspect] = [
105
+ {"name": "conjunction", "orb": 10},
106
+ {"name": "opposition", "orb": 10},
107
+ {"name": "trine", "orb": 8},
108
+ {"name": "sextile", "orb": 6},
109
+ {"name": "square", "orb": 5},
110
+ {"name": "quintile", "orb": 1},
111
+ # {"name": "semi-sextile", "orb": 1},
112
+ # {"name": "semi-square", "orb": 1},
113
+ # {"name": "sesquiquadrate", "orb": 1},
114
+ # {"name": "biquintile", "orb": 1},
115
+ # {"name": "quincunx", "orb": 1},
116
+ ]
117
+ """
118
+ Default list of active aspects in the aspects calculations.
119
+ The full list of aspects is available in the `schemas.kr_literals.AspectName` literal.
120
+ """
121
+
122
+ ALL_ACTIVE_ASPECTS: List[ActiveAspect] = [
123
+ {"name": "conjunction", "orb": 10},
124
+ {"name": "opposition", "orb": 10},
125
+ {"name": "trine", "orb": 8},
126
+ {"name": "sextile", "orb": 6},
127
+ {"name": "square", "orb": 5},
128
+ {"name": "quintile", "orb": 1},
129
+ {"name": "semi-sextile", "orb": 1},
130
+ {"name": "semi-square", "orb": 1},
131
+ {"name": "sesquiquadrate", "orb": 1},
132
+ {"name": "biquintile", "orb": 1},
133
+ {"name": "quincunx", "orb": 1},
134
+ ]
135
+ """
136
+ Full list of active aspects in the charts or aspects calculations.
137
+ The full list of aspects is available in the `schemas.kr_literals.AspectName` literal.
138
+ """
139
+
140
+ DISCEPOLO_SCORE_ACTIVE_ASPECTS: List[ActiveAspect] = [
141
+ {"name": "conjunction", "orb": 8},
142
+ {"name": "semi-sextile", "orb": 2},
143
+ {"name": "semi-square", "orb": 2},
144
+ {"name": "sextile", "orb": 4},
145
+ {"name": "square", "orb": 5},
146
+ {"name": "trine", "orb": 7},
147
+ {"name": "sesquiquadrate", "orb": 2},
148
+ {"name": "opposition", "orb": 8},
149
+ ]
150
+ """
151
+ List of active aspects with their orbs according to Ciro Discepolo's affinity scoring methodology.
152
+ """
@@ -0,0 +1,51 @@
1
+ """
2
+ Utilities for loading Kerykeion configuration settings from Python sources.
3
+
4
+ The translation strings are now stored directly in :mod:`translation_strings`,
5
+ so the loader simply wraps those dictionaries (or any user-provided overrides).
6
+ """
7
+
8
+ from __future__ import annotations
9
+
10
+ from copy import deepcopy
11
+ from typing import Any, Mapping, Optional, cast
12
+
13
+ from .translation_strings import LANGUAGE_SETTINGS
14
+
15
+ SettingsSource = Optional[Mapping[str, Any]]
16
+
17
+
18
+ def load_settings_mapping(settings_source: Optional[SettingsSource] = None) -> Mapping[str, Any]:
19
+ """
20
+ Resolve the configuration mapping from the provided source.
21
+
22
+ Args:
23
+ settings_source (Mapping | None): Optional overrides for the bundled
24
+ language settings. When provided, keys and nested dictionaries are
25
+ merged on top of the default values.
26
+
27
+ Returns:
28
+ Mapping[str, Any]: The resolved configuration dictionary.
29
+ """
30
+ language_settings = deepcopy(LANGUAGE_SETTINGS)
31
+
32
+ if settings_source:
33
+ overrides = cast(Mapping[str, Any], settings_source)
34
+ if "language_settings" in overrides:
35
+ overrides = cast(Mapping[str, Any], overrides["language_settings"])
36
+ language_settings = _deep_merge(language_settings, overrides)
37
+
38
+ return {"language_settings": language_settings}
39
+
40
+
41
+ def _deep_merge(base: Mapping[str, Any], overrides: Mapping[str, Any]) -> dict[str, Any]:
42
+ merged: dict[str, Any] = {key: deepcopy(value) for key, value in base.items()}
43
+ for key, value in overrides.items():
44
+ if key in merged and isinstance(merged[key], Mapping) and isinstance(value, Mapping):
45
+ merged[key] = _deep_merge(cast(Mapping[str, Any], merged[key]), cast(Mapping[str, Any], value))
46
+ else:
47
+ merged[key] = deepcopy(value)
48
+ return merged
49
+
50
+ # Keep the public surface area explicit for downstream imports.
51
+ __all__ = ["SettingsSource", "load_settings_mapping", "LANGUAGE_SETTINGS"]