kerykeion 4.12.3__py3-none-any.whl → 4.18.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 (36) hide show
  1. kerykeion/__init__.py +3 -1
  2. kerykeion/aspects/aspects_utils.py +40 -123
  3. kerykeion/aspects/natal_aspects.py +34 -25
  4. kerykeion/aspects/synastry_aspects.py +34 -28
  5. kerykeion/astrological_subject.py +199 -196
  6. kerykeion/charts/charts_utils.py +701 -62
  7. kerykeion/charts/draw_planets.py +407 -0
  8. kerykeion/charts/kerykeion_chart_svg.py +534 -1140
  9. kerykeion/charts/templates/aspect_grid_only.xml +452 -0
  10. kerykeion/charts/templates/chart.xml +88 -70
  11. kerykeion/charts/templates/wheel_only.xml +499 -0
  12. kerykeion/charts/themes/classic.css +82 -0
  13. kerykeion/charts/themes/dark-high-contrast.css +121 -0
  14. kerykeion/charts/themes/dark.css +121 -0
  15. kerykeion/charts/themes/light.css +117 -0
  16. kerykeion/enums.py +1 -0
  17. kerykeion/ephemeris_data.py +178 -0
  18. kerykeion/fetch_geonames.py +2 -3
  19. kerykeion/kr_types/chart_types.py +6 -16
  20. kerykeion/kr_types/kr_literals.py +12 -3
  21. kerykeion/kr_types/kr_models.py +77 -32
  22. kerykeion/kr_types/settings_models.py +4 -10
  23. kerykeion/relationship_score/__init__.py +2 -0
  24. kerykeion/relationship_score/relationship_score.py +175 -0
  25. kerykeion/relationship_score/relationship_score_factory.py +275 -0
  26. kerykeion/report.py +6 -3
  27. kerykeion/settings/kerykeion_settings.py +6 -1
  28. kerykeion/settings/kr.config.json +256 -102
  29. kerykeion/utilities.py +122 -217
  30. {kerykeion-4.12.3.dist-info → kerykeion-4.18.0.dist-info}/METADATA +40 -10
  31. kerykeion-4.18.0.dist-info/RECORD +42 -0
  32. kerykeion/relationship_score.py +0 -205
  33. kerykeion-4.12.3.dist-info/RECORD +0 -32
  34. {kerykeion-4.12.3.dist-info → kerykeion-4.18.0.dist-info}/LICENSE +0 -0
  35. {kerykeion-4.12.3.dist-info → kerykeion-4.18.0.dist-info}/WHEEL +0 -0
  36. {kerykeion-4.12.3.dist-info → kerykeion-4.18.0.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,82 @@
1
+ :root {
2
+ /* Main Colors */
3
+ --kerykeion-chart-color-paper-0: #000000;
4
+ --kerykeion-chart-color-paper-1: #ffffff;
5
+ --kerykeion-chart-color-zodiac-bg-0: #ff7200;
6
+ --kerykeion-chart-color-zodiac-bg-1: #6b3d00;
7
+ --kerykeion-chart-color-zodiac-bg-2: #69acf1;
8
+ --kerykeion-chart-color-zodiac-bg-3: #2b4972;
9
+ --kerykeion-chart-color-zodiac-bg-4: #ff7200;
10
+ --kerykeion-chart-color-zodiac-bg-5: #6b3d00;
11
+ --kerykeion-chart-color-zodiac-bg-6: #69acf1;
12
+ --kerykeion-chart-color-zodiac-bg-7: #2b4972;
13
+ --kerykeion-chart-color-zodiac-bg-8: #ff7200;
14
+ --kerykeion-chart-color-zodiac-bg-9: #6b3d00;
15
+ --kerykeion-chart-color-zodiac-bg-10: #69acf1;
16
+ --kerykeion-chart-color-zodiac-bg-11: #2b4972;
17
+ --kerykeion-chart-color-zodiac-icon-0: #ff7200;
18
+ --kerykeion-chart-color-zodiac-icon-1: #6b3d00;
19
+ --kerykeion-chart-color-zodiac-icon-2: #69acf1;
20
+ --kerykeion-chart-color-zodiac-icon-3: #2b4972;
21
+ --kerykeion-chart-color-zodiac-icon-4: #ff7200;
22
+ --kerykeion-chart-color-zodiac-icon-5: #6b3d00;
23
+ --kerykeion-chart-color-zodiac-icon-6: #69acf1;
24
+ --kerykeion-chart-color-zodiac-icon-7: #2b4972;
25
+ --kerykeion-chart-color-zodiac-icon-8: #ff7200;
26
+ --kerykeion-chart-color-zodiac-icon-9: #6b3d00;
27
+ --kerykeion-chart-color-zodiac-icon-10: #69acf1;
28
+ --kerykeion-chart-color-zodiac-icon-11: #2b4972;
29
+ --kerykeion-chart-color-zodiac-radix-ring-0: #ff0000;
30
+ --kerykeion-chart-color-zodiac-radix-ring-1: #ff0000;
31
+ --kerykeion-chart-color-zodiac-radix-ring-2: #ff0000;
32
+ --kerykeion-chart-color-zodiac-transit-ring-0: #ff0000;
33
+ --kerykeion-chart-color-zodiac-transit-ring-1: #ff0000;
34
+ --kerykeion-chart-color-zodiac-transit-ring-2: #0000ff;
35
+ --kerykeion-chart-color-zodiac-transit-ring-3: #0000ff;
36
+ --kerykeion-chart-color-houses-radix-line: #ff0000;
37
+ --kerykeion-chart-color-houses-transit-line: #0000ff;
38
+ --kerykeion-chart-color-lunar-phase-0: #000000;
39
+ --kerykeion-chart-color-lunar-phase-1: #ffffff;
40
+
41
+ /* Aspects */
42
+ --kerykeion-chart-color-conjunction: #5757e2;
43
+ --kerykeion-chart-color-semi-sextile: #810757;
44
+ --kerykeion-chart-color-semi-square: #b14e58;
45
+ --kerykeion-chart-color-sextile: #d59e28;
46
+ --kerykeion-chart-color-quintile: #1f99b3;
47
+ --kerykeion-chart-color-square: #dc0000;
48
+ --kerykeion-chart-color-trine: #36d100;
49
+ --kerykeion-chart-color-sesquiquadrate: #985a10;
50
+ --kerykeion-chart-color-biquintile: #7a9810;
51
+ --kerykeion-chart-color-quincunx: #26bbcf;
52
+ --kerykeion-chart-color-opposition: #510060;
53
+
54
+ /* Planets */
55
+ --kerykeion-chart-color-sun: #984b00;
56
+ --kerykeion-chart-color-moon: #150052;
57
+ --kerykeion-chart-color-mercury: #520800;
58
+ --kerykeion-chart-color-venus: #400052;
59
+ --kerykeion-chart-color-mars: #540000;
60
+ --kerykeion-chart-color-jupiter: #47133d;
61
+ --kerykeion-chart-color-saturn: #124500;
62
+ --kerykeion-chart-color-uranus: #6f0766;
63
+ --kerykeion-chart-color-neptune: #06537f;
64
+ --kerykeion-chart-color-pluto: #713f04;
65
+ --kerykeion-chart-color-mean-node: #4c1541;
66
+ --kerykeion-chart-color-true-node: #4c1541;
67
+ --kerykeion-chart-color-chiron: #666f06;
68
+ --kerykeion-chart-color-first-house: #ff7e00;
69
+ --kerykeion-chart-color-tenth-house: #ff0000;
70
+ --kerykeion-chart-color-seventh-house: #0000ff;
71
+ --kerykeion-chart-color-fourth-house: #000000;
72
+ --kerykeion-chart-color-mean-lilith: #000000;
73
+
74
+ /* Elements Percentage */
75
+ --kerykeion-chart-color-air-percentage: #6f76d1;
76
+ --kerykeion-chart-color-earth-percentage: #6a2d04;
77
+ --kerykeion-chart-color-fire-percentage: #ff6600;
78
+ --kerykeion-chart-color-water-percentage: #630e73;
79
+
80
+ /* Other */
81
+ --kerykeion-chart-color-house-number: #f00;
82
+ }
@@ -0,0 +1,121 @@
1
+ :root {
2
+ /* -------- */
3
+ /* General */
4
+ /* ------- */
5
+ --kerykeion-color-black: #000000;
6
+ --kerykeion-color-white: #ffffff;
7
+
8
+ --kerykeion-color-neutral-content: #c8cbd0;
9
+ --kerykeion-color-base-content: #ccd0d4;
10
+ --kerykeion-color-primary: #38bdf8;
11
+ --kerykeion-color-secondary: #818cf8;
12
+ --kerykeion-color-accent: #f471b5;
13
+ --kerykeion-color-neutral: #1e293b;
14
+ --kerykeion-color-base-100: #0f172a;
15
+ --kerykeion-color-info: #0ca5e9;
16
+ --kerykeion-color-info-content: #000000;
17
+ --kerykeion-color-success: #2dd4bf;
18
+ --kerykeion-color-warning: #f4bf50;
19
+ --kerykeion-color-error: #fb7085;
20
+
21
+ /* Zodiac */
22
+ --kerykeion-color-base-200: #0a1020;
23
+ --kerykeion-color-base-300: #27303c;
24
+
25
+ /* ----------- */
26
+ /* Chart Color */
27
+ /* ----------- */
28
+
29
+ /* Main colors */
30
+ --kerykeion-chart-color-paper-0: var(--kerykeion-color-neutral-content);
31
+ --kerykeion-chart-color-paper-1: var(--kerykeion-color-base-100);
32
+
33
+ /* Zodiac Sign Sectors */
34
+ --kerykeion-chart-color-zodiac-bg-0: var(--kerykeion-color-base-200);
35
+ --kerykeion-chart-color-zodiac-bg-1: var(--kerykeion-color-base-300);
36
+ --kerykeion-chart-color-zodiac-bg-2: var(--kerykeion-color-base-200);
37
+ --kerykeion-chart-color-zodiac-bg-3: var(--kerykeion-color-base-300);
38
+ --kerykeion-chart-color-zodiac-bg-4: var(--kerykeion-color-base-200);
39
+ --kerykeion-chart-color-zodiac-bg-5: var(--kerykeion-color-base-300);
40
+ --kerykeion-chart-color-zodiac-bg-6: var(--kerykeion-color-base-200);
41
+ --kerykeion-chart-color-zodiac-bg-7: var(--kerykeion-color-base-300);
42
+ --kerykeion-chart-color-zodiac-bg-8: var(--kerykeion-color-base-200);
43
+ --kerykeion-chart-color-zodiac-bg-9: var(--kerykeion-color-base-300);
44
+ --kerykeion-chart-color-zodiac-bg-10: var(--kerykeion-color-base-200);
45
+ --kerykeion-chart-color-zodiac-bg-11: var(--kerykeion-color-base-300);
46
+
47
+ /* Zodiac Sign Rings */
48
+ --kerykeion-chart-color-zodiac-radix-ring-0: var(--kerykeion-color-neutral);
49
+ --kerykeion-chart-color-zodiac-radix-ring-1: var(--kerykeion-color-neutral);
50
+ --kerykeion-chart-color-zodiac-radix-ring-2: var(--kerykeion-color-neutral);
51
+ --kerykeion-chart-color-zodiac-transit-ring-0: var(--kerykeion-color-neutral);
52
+ --kerykeion-chart-color-zodiac-transit-ring-1: var(--kerykeion-color-neutral);
53
+ --kerykeion-chart-color-zodiac-transit-ring-2: var(--kerykeion-color-neutral);
54
+ --kerykeion-chart-color-zodiac-transit-ring-3: var(--kerykeion-color-neutral);
55
+ --kerykeion-chart-color-houses-radix-line: var(
56
+ --kerykeion-color-base-content
57
+ );
58
+ --kerykeion-chart-color-houses-transit-line: var(
59
+ --kerykeion-color-base-content
60
+ );
61
+
62
+ /* Aspects */
63
+ --kerykeion-chart-color-conjunction: var(--kerykeion-color-success);
64
+ --kerykeion-chart-color-semi-sextile: var(--kerykeion-color-success);
65
+ --kerykeion-chart-color-semi-square: var(--kerykeion-color-error);
66
+ --kerykeion-chart-color-sextile: var(--kerykeion-color-success);
67
+ --kerykeion-chart-color-quintile: var(--kerykeion-color-secondary);
68
+ --kerykeion-chart-color-square: var(--kerykeion-color-error);
69
+ --kerykeion-chart-color-trine: var(--kerykeion-color-success);
70
+ --kerykeion-chart-color-sesquiquadrate: var(--kerykeion-color-error);
71
+ --kerykeion-chart-color-biquintile: var(--kerykeion-color-secondary);
72
+ --kerykeion-chart-color-quincunx: var(--kerykeion-color-secondary);
73
+ --kerykeion-chart-color-opposition: var(--kerykeion-color-error);
74
+
75
+ /* Planets */
76
+ --kerykeion-chart-color-sun: var(--kerykeion-color-warning);
77
+ --kerykeion-chart-color-moon: var(--kerykeion-color-secondary);
78
+ --kerykeion-chart-color-mercury: var(--kerykeion-color-primary);
79
+ --kerykeion-chart-color-venus: var(--kerykeion-color-accent);
80
+ --kerykeion-chart-color-mars: var(--kerykeion-color-warning);
81
+ --kerykeion-chart-color-jupiter: var(--kerykeion-color-primary);
82
+ --kerykeion-chart-color-saturn: var(--kerykeion-color-secondary);
83
+ --kerykeion-chart-color-uranus: var(--kerykeion-color-accent);
84
+ --kerykeion-chart-color-neptune: var(--kerykeion-color-primary);
85
+ --kerykeion-chart-color-pluto: var(--kerykeion-color-secondary);
86
+ --kerykeion-chart-color-mean-node: var(--kerykeion-color-warning);
87
+ --kerykeion-chart-color-true-node: var(--kerykeion-color-warning);
88
+ --kerykeion-chart-color-chiron: var(--kerykeion-color-secondary);
89
+ --kerykeion-chart-color-first-house: var(--kerykeion-color-warning);
90
+ --kerykeion-chart-color-tenth-house: var(--kerykeion-color-warning);
91
+ --kerykeion-chart-color-seventh-house: var(--kerykeion-color-warning);
92
+ --kerykeion-chart-color-fourth-house: var(--kerykeion-color-warning);
93
+ --kerykeion-chart-color-mean-lilith: var(--kerykeion-color-secondary);
94
+
95
+ /* Zodiac Signs */
96
+ --kerykeion-chart-color-zodiac-icon-0: var(--kerykeion-color-accent);
97
+ --kerykeion-chart-color-zodiac-icon-1: var(--kerykeion-color-warning);
98
+ --kerykeion-chart-color-zodiac-icon-2: var(--kerykeion-color-primary);
99
+ --kerykeion-chart-color-zodiac-icon-3: var(--kerykeion-color-secondary);
100
+ --kerykeion-chart-color-zodiac-icon-4: var(--kerykeion-color-accent);
101
+ --kerykeion-chart-color-zodiac-icon-5: var(--kerykeion-color-warning);
102
+ --kerykeion-chart-color-zodiac-icon-6: var(--kerykeion-color-primary);
103
+ --kerykeion-chart-color-zodiac-icon-7: var(--kerykeion-color-secondary);
104
+ --kerykeion-chart-color-zodiac-icon-8: var(--kerykeion-color-accent);
105
+ --kerykeion-chart-color-zodiac-icon-9: var(--kerykeion-color-warning);
106
+ --kerykeion-chart-color-zodiac-icon-10: var(--kerykeion-color-primary);
107
+ --kerykeion-chart-color-zodiac-icon-11: var(--kerykeion-color-secondary);
108
+
109
+ /* Elements Percentage */
110
+ --kerykeion-chart-color-air-percentage: var(--kerykeion-color-primary);
111
+ --kerykeion-chart-color-earth-percentage: var(--kerykeion-color-warning);
112
+ --kerykeion-chart-color-fire-percentage: var(--kerykeion-color-accent);
113
+ --kerykeion-chart-color-water-percentage: var(--kerykeion-color-secondary);
114
+
115
+ /* Aspects */
116
+ --kerykeion-chart-color-lunar-phase-0: var(--kerykeion-color-black);
117
+ --kerykeion-chart-color-lunar-phase-1: var(--kerykeion-color-white);
118
+
119
+ /* Houses Numbers */
120
+ --kerykeion-chart-color-house-number: var(--kerykeion-color-base-content);
121
+ }
@@ -0,0 +1,121 @@
1
+ :root {
2
+ /* -------- */
3
+ /* General */
4
+ /* ------- */
5
+ --kerykeion-color-black: #000000;
6
+ --kerykeion-color-white: #ffffff;
7
+
8
+ --kerykeion-color-neutral-content: #c8cbd0;
9
+ --kerykeion-color-base-content: #ccd0d4;
10
+ --kerykeion-color-primary: #38bdf8;
11
+ --kerykeion-color-secondary: #818cf8;
12
+ --kerykeion-color-accent: #f471b5;
13
+ --kerykeion-color-neutral: #1e293b;
14
+ --kerykeion-color-base-100: #0f172a;
15
+ --kerykeion-color-info: #0ca5e9;
16
+ --kerykeion-color-info-content: #000000;
17
+ --kerykeion-color-success: #2dd4bf;
18
+ --kerykeion-color-warning: #f4bf50;
19
+ --kerykeion-color-error: #fb7085;
20
+
21
+ /* Zodiac */
22
+ --kerykeion-color-base-200: #0a1020;
23
+ --kerykeion-color-base-300: #171f2c;
24
+
25
+ /* ----------- */
26
+ /* Chart Color */
27
+ /* ----------- */
28
+
29
+ /* Main colors */
30
+ --kerykeion-chart-color-paper-0: var(--kerykeion-color-neutral-content);
31
+ --kerykeion-chart-color-paper-1: var(--kerykeion-color-base-100);
32
+
33
+ /* Zodiac Sign Sectors */
34
+ --kerykeion-chart-color-zodiac-bg-0: var(--kerykeion-color-base-200);
35
+ --kerykeion-chart-color-zodiac-bg-1: var(--kerykeion-color-base-300);
36
+ --kerykeion-chart-color-zodiac-bg-2: var(--kerykeion-color-base-200);
37
+ --kerykeion-chart-color-zodiac-bg-3: var(--kerykeion-color-base-300);
38
+ --kerykeion-chart-color-zodiac-bg-4: var(--kerykeion-color-base-200);
39
+ --kerykeion-chart-color-zodiac-bg-5: var(--kerykeion-color-base-300);
40
+ --kerykeion-chart-color-zodiac-bg-6: var(--kerykeion-color-base-200);
41
+ --kerykeion-chart-color-zodiac-bg-7: var(--kerykeion-color-base-300);
42
+ --kerykeion-chart-color-zodiac-bg-8: var(--kerykeion-color-base-200);
43
+ --kerykeion-chart-color-zodiac-bg-9: var(--kerykeion-color-base-300);
44
+ --kerykeion-chart-color-zodiac-bg-10: var(--kerykeion-color-base-200);
45
+ --kerykeion-chart-color-zodiac-bg-11: var(--kerykeion-color-base-300);
46
+
47
+ /* Zodiac Sign Rings */
48
+ --kerykeion-chart-color-zodiac-radix-ring-0: var(--kerykeion-color-neutral);
49
+ --kerykeion-chart-color-zodiac-radix-ring-1: var(--kerykeion-color-neutral);
50
+ --kerykeion-chart-color-zodiac-radix-ring-2: var(--kerykeion-color-neutral);
51
+ --kerykeion-chart-color-zodiac-transit-ring-0: var(--kerykeion-color-neutral);
52
+ --kerykeion-chart-color-zodiac-transit-ring-1: var(--kerykeion-color-neutral);
53
+ --kerykeion-chart-color-zodiac-transit-ring-2: var(--kerykeion-color-neutral);
54
+ --kerykeion-chart-color-zodiac-transit-ring-3: var(--kerykeion-color-neutral);
55
+ --kerykeion-chart-color-houses-radix-line: var(
56
+ --kerykeion-color-base-content
57
+ );
58
+ --kerykeion-chart-color-houses-transit-line: var(
59
+ --kerykeion-color-base-content
60
+ );
61
+
62
+ /* Aspects */
63
+ --kerykeion-chart-color-conjunction: var(--kerykeion-color-success);
64
+ --kerykeion-chart-color-semi-sextile: var(--kerykeion-color-success);
65
+ --kerykeion-chart-color-semi-square: var(--kerykeion-color-error);
66
+ --kerykeion-chart-color-sextile: var(--kerykeion-color-success);
67
+ --kerykeion-chart-color-quintile: var(--kerykeion-color-secondary);
68
+ --kerykeion-chart-color-square: var(--kerykeion-color-error);
69
+ --kerykeion-chart-color-trine: var(--kerykeion-color-success);
70
+ --kerykeion-chart-color-sesquiquadrate: var(--kerykeion-color-error);
71
+ --kerykeion-chart-color-biquintile: var(--kerykeion-color-secondary);
72
+ --kerykeion-chart-color-quincunx: var(--kerykeion-color-secondary);
73
+ --kerykeion-chart-color-opposition: var(--kerykeion-color-error);
74
+
75
+ /* Planets */
76
+ --kerykeion-chart-color-sun: var(--kerykeion-color-warning);
77
+ --kerykeion-chart-color-moon: var(--kerykeion-color-secondary);
78
+ --kerykeion-chart-color-mercury: var(--kerykeion-color-primary);
79
+ --kerykeion-chart-color-venus: var(--kerykeion-color-accent);
80
+ --kerykeion-chart-color-mars: var(--kerykeion-color-warning);
81
+ --kerykeion-chart-color-jupiter: var(--kerykeion-color-primary);
82
+ --kerykeion-chart-color-saturn: var(--kerykeion-color-secondary);
83
+ --kerykeion-chart-color-uranus: var(--kerykeion-color-accent);
84
+ --kerykeion-chart-color-neptune: var(--kerykeion-color-primary);
85
+ --kerykeion-chart-color-pluto: var(--kerykeion-color-secondary);
86
+ --kerykeion-chart-color-mean-node: var(--kerykeion-color-warning);
87
+ --kerykeion-chart-color-true-node: var(--kerykeion-color-warning);
88
+ --kerykeion-chart-color-chiron: var(--kerykeion-color-secondary);
89
+ --kerykeion-chart-color-first-house: var(--kerykeion-color-warning);
90
+ --kerykeion-chart-color-tenth-house: var(--kerykeion-color-warning);
91
+ --kerykeion-chart-color-seventh-house: var(--kerykeion-color-warning);
92
+ --kerykeion-chart-color-fourth-house: var(--kerykeion-color-warning);
93
+ --kerykeion-chart-color-mean-lilith: var(--kerykeion-color-secondary);
94
+
95
+ /* Zodiac Signs */
96
+ --kerykeion-chart-color-zodiac-icon-0: var(--kerykeion-color-accent);
97
+ --kerykeion-chart-color-zodiac-icon-1: var(--kerykeion-color-warning);
98
+ --kerykeion-chart-color-zodiac-icon-2: var(--kerykeion-color-primary);
99
+ --kerykeion-chart-color-zodiac-icon-3: var(--kerykeion-color-secondary);
100
+ --kerykeion-chart-color-zodiac-icon-4: var(--kerykeion-color-accent);
101
+ --kerykeion-chart-color-zodiac-icon-5: var(--kerykeion-color-warning);
102
+ --kerykeion-chart-color-zodiac-icon-6: var(--kerykeion-color-primary);
103
+ --kerykeion-chart-color-zodiac-icon-7: var(--kerykeion-color-secondary);
104
+ --kerykeion-chart-color-zodiac-icon-8: var(--kerykeion-color-accent);
105
+ --kerykeion-chart-color-zodiac-icon-9: var(--kerykeion-color-warning);
106
+ --kerykeion-chart-color-zodiac-icon-10: var(--kerykeion-color-primary);
107
+ --kerykeion-chart-color-zodiac-icon-11: var(--kerykeion-color-secondary);
108
+
109
+ /* Elements Percentage */
110
+ --kerykeion-chart-color-air-percentage: var(--kerykeion-color-primary);
111
+ --kerykeion-chart-color-earth-percentage: var(--kerykeion-color-warning);
112
+ --kerykeion-chart-color-fire-percentage: var(--kerykeion-color-accent);
113
+ --kerykeion-chart-color-water-percentage: var(--kerykeion-color-secondary);
114
+
115
+ /* Aspects */
116
+ --kerykeion-chart-color-lunar-phase-0: var(--kerykeion-color-black);
117
+ --kerykeion-chart-color-lunar-phase-1: var(--kerykeion-color-white);
118
+
119
+ /* Houses Numbers */
120
+ --kerykeion-chart-color-house-number: var(--kerykeion-color-base-content);
121
+ }
@@ -0,0 +1,117 @@
1
+ :root {
2
+ /* -------- */
3
+ /* General */
4
+ /* ------- */
5
+ --kerykeion-color-black: #000000;
6
+ --kerykeion-color-white: #ffffff;
7
+
8
+ --kerykeion-color-neutral-content: #333c4d;
9
+ --kerykeion-color-base-content: #333c4d;
10
+ --kerykeion-color-primary: #65cc8a;
11
+ --kerykeion-color-secondary: #367bfb;
12
+ --kerykeion-color-accent: #f68067;
13
+ --kerykeion-color-neutral: #333c4d;
14
+ --kerykeion-color-base-100: #ffffff;
15
+ --kerykeion-color-info: #00b5ff;
16
+ --kerykeion-color-info-content: #000000;
17
+ --kerykeion-color-success: #00a96e;
18
+ --kerykeion-color-warning: #ffbe00;
19
+ --kerykeion-color-error: #ff5761;
20
+
21
+ /* Zodiac */
22
+ --kerykeion-color-base-200: #d1d1d1;
23
+ --kerykeion-color-base-300: rgb(113 113 122);
24
+
25
+ /* ----------- */
26
+ /* Chart Color */
27
+ /* ----------- */
28
+
29
+ /* Main colors */
30
+ --kerykeion-chart-color-paper-0: var(--kerykeion-color-neutral-content);
31
+ --kerykeion-chart-color-paper-1: var(--kerykeion-color-base-100);
32
+
33
+ /* Zodiac Sign Sectors */
34
+ --kerykeion-chart-color-zodiac-bg-0: var(--kerykeion-color-base-200);
35
+ --kerykeion-chart-color-zodiac-bg-1: var(--kerykeion-color-base-300);
36
+ --kerykeion-chart-color-zodiac-bg-2: var(--kerykeion-color-base-200);
37
+ --kerykeion-chart-color-zodiac-bg-3: var(--kerykeion-color-base-300);
38
+ --kerykeion-chart-color-zodiac-bg-4: var(--kerykeion-color-base-200);
39
+ --kerykeion-chart-color-zodiac-bg-5: var(--kerykeion-color-base-300);
40
+ --kerykeion-chart-color-zodiac-bg-6: var(--kerykeion-color-base-200);
41
+ --kerykeion-chart-color-zodiac-bg-7: var(--kerykeion-color-base-300);
42
+ --kerykeion-chart-color-zodiac-bg-8: var(--kerykeion-color-base-200);
43
+ --kerykeion-chart-color-zodiac-bg-9: var(--kerykeion-color-base-300);
44
+ --kerykeion-chart-color-zodiac-bg-10: var(--kerykeion-color-base-200);
45
+ --kerykeion-chart-color-zodiac-bg-11: var(--kerykeion-color-base-300);
46
+
47
+ /* Zodiac Sign Rings */
48
+ --kerykeion-chart-color-zodiac-radix-ring-0: var(--kerykeion-color-neutral);
49
+ --kerykeion-chart-color-zodiac-radix-ring-1: var(--kerykeion-color-neutral);
50
+ --kerykeion-chart-color-zodiac-radix-ring-2: var(--kerykeion-color-neutral);
51
+ --kerykeion-chart-color-zodiac-transit-ring-0: var(--kerykeion-color-neutral);
52
+ --kerykeion-chart-color-zodiac-transit-ring-1: var(--kerykeion-color-neutral);
53
+ --kerykeion-chart-color-zodiac-transit-ring-2: var(--kerykeion-color-neutral);
54
+ --kerykeion-chart-color-zodiac-transit-ring-3: var(--kerykeion-color-neutral);
55
+ --kerykeion-chart-color-houses-radix-line: var(--kerykeion-color-base-content);
56
+ --kerykeion-chart-color-houses-transit-line: var(--kerykeion-color-base-content);
57
+
58
+ /* Aspects */
59
+ --kerykeion-chart-color-conjunction: var(--kerykeion-color-success);
60
+ --kerykeion-chart-color-semi-sextile: var(--kerykeion-color-success);
61
+ --kerykeion-chart-color-semi-square: var(--kerykeion-color-error);
62
+ --kerykeion-chart-color-sextile: var(--kerykeion-color-success);
63
+ --kerykeion-chart-color-quintile: var(--kerykeion-color-secondary);
64
+ --kerykeion-chart-color-square: var(--kerykeion-color-error);
65
+ --kerykeion-chart-color-trine: var(--kerykeion-color-success);
66
+ --kerykeion-chart-color-sesquiquadrate: var(--kerykeion-color-error);
67
+ --kerykeion-chart-color-biquintile: var(--kerykeion-color-secondary);
68
+ --kerykeion-chart-color-quincunx: var(--kerykeion-color-secondary);
69
+ --kerykeion-chart-color-opposition: var(--kerykeion-color-error);
70
+
71
+ /* Planets */
72
+ --kerykeion-chart-color-sun: var(--kerykeion-color-warning);
73
+ --kerykeion-chart-color-moon: var(--kerykeion-color-secondary);
74
+ --kerykeion-chart-color-mercury: var(--kerykeion-color-primary);
75
+ --kerykeion-chart-color-venus: var(--kerykeion-color-accent);
76
+ --kerykeion-chart-color-mars: var(--kerykeion-color-warning);
77
+ --kerykeion-chart-color-jupiter: var(--kerykeion-color-primary);
78
+ --kerykeion-chart-color-saturn: var(--kerykeion-color-secondary);
79
+ --kerykeion-chart-color-uranus: var(--kerykeion-color-accent);
80
+ --kerykeion-chart-color-neptune: var(--kerykeion-color-primary);
81
+ --kerykeion-chart-color-pluto: var(--kerykeion-color-secondary);
82
+ --kerykeion-chart-color-mean-node: var(--kerykeion-color-warning);
83
+ --kerykeion-chart-color-true-node: var(--kerykeion-color-warning);
84
+ --kerykeion-chart-color-chiron: var(--kerykeion-color-secondary);
85
+ --kerykeion-chart-color-first-house: var(--kerykeion-color-warning);
86
+ --kerykeion-chart-color-tenth-house: var(--kerykeion-color-warning);
87
+ --kerykeion-chart-color-seventh-house: var(--kerykeion-color-warning);
88
+ --kerykeion-chart-color-fourth-house: var(--kerykeion-color-warning);
89
+ --kerykeion-chart-color-mean-lilith: var(--kerykeion-color-secondary);
90
+
91
+ /* Zodiac Signs */
92
+ --kerykeion-chart-color-zodiac-icon-0: var(--kerykeion-color-accent);
93
+ --kerykeion-chart-color-zodiac-icon-1: var(--kerykeion-color-warning);
94
+ --kerykeion-chart-color-zodiac-icon-2: var(--kerykeion-color-primary);
95
+ --kerykeion-chart-color-zodiac-icon-3: var(--kerykeion-color-secondary);
96
+ --kerykeion-chart-color-zodiac-icon-4: var(--kerykeion-color-accent);
97
+ --kerykeion-chart-color-zodiac-icon-5: var(--kerykeion-color-warning);
98
+ --kerykeion-chart-color-zodiac-icon-6: var(--kerykeion-color-primary);
99
+ --kerykeion-chart-color-zodiac-icon-7: var(--kerykeion-color-secondary);
100
+ --kerykeion-chart-color-zodiac-icon-8: var(--kerykeion-color-accent);
101
+ --kerykeion-chart-color-zodiac-icon-9: var(--kerykeion-color-warning);
102
+ --kerykeion-chart-color-zodiac-icon-10: var(--kerykeion-color-primary);
103
+ --kerykeion-chart-color-zodiac-icon-11: var(--kerykeion-color-secondary);
104
+
105
+ /* Elements Percentage */
106
+ --kerykeion-chart-color-air-percentage: var(--kerykeion-color-primary);
107
+ --kerykeion-chart-color-earth-percentage: var(--kerykeion-color-warning);
108
+ --kerykeion-chart-color-fire-percentage: var(--kerykeion-color-accent);
109
+ --kerykeion-chart-color-water-percentage: var(--kerykeion-color-secondary);
110
+
111
+ /* Aspects */
112
+ --kerykeion-chart-color-lunar-phase-0: var(--kerykeion-color-black);
113
+ --kerykeion-chart-color-lunar-phase-1: var(--kerykeion-color-white);
114
+
115
+ /* Houses Numbers */
116
+ --kerykeion-chart-color-house-number: var(--kerykeion-color-base-content);
117
+ }
kerykeion/enums.py CHANGED
@@ -15,6 +15,7 @@ class Planets(Enum):
15
15
  CHIRON = "Chiron"
16
16
  TRUE_NODE = "True_Node"
17
17
  MEAN_NODE = "Mean_Node"
18
+ MEAN_LILITH = "Mean_Lilith"
18
19
 
19
20
 
20
21
  class Aspects(Enum):
@@ -0,0 +1,178 @@
1
+ from kerykeion import AstrologicalSubject
2
+ from kerykeion.utilities import get_houses_list, get_available_planets_list
3
+ from kerykeion.astrological_subject import DEFAULT_HOUSES_SYSTEM_IDENTIFIER, DEFAULT_PERSPECTIVE_TYPE, DEFAULT_ZODIAC_TYPE
4
+ from kerykeion.kr_types import EphemerisDictModel
5
+ from kerykeion.kr_types import SiderealMode, HousesSystemIdentifier, PerspectiveType, ZodiacType
6
+ from datetime import datetime, timedelta
7
+ from typing import Literal, Union
8
+ import logging
9
+
10
+
11
+ class EphemerisDataFactory:
12
+ """
13
+ This class is used to generate ephemeris data for a given date range.
14
+
15
+ Parameters:
16
+ - start_datetime: datetime object representing the start date and time.
17
+ - end_datetime: datetime object representing the end date and time.
18
+ - step_type: string representing the step type. It can be "days", "hours", or "minutes". Default is "days".
19
+ - step: integer representing the step value. Default is 1.
20
+ - lat: float representing the latitude. Default is 51.4769 (Greenwich).
21
+ - lng: float representing the longitude. Default is 0.0005 (Greenwich).
22
+ - tz_str: string representing the timezone. Default is "Etc/UTC".
23
+ - is_dst: boolean representing if daylight saving time is active. Default is False.
24
+ - disable_chiron_and_lilith: boolean representing if Chiron and Lilith should be disabled. Default is False.
25
+ - zodiac_type: ZodiacType object representing the zodiac type. Default is DEFAULT_ZODIAC_TYPE.
26
+ - sidereal_mode: SiderealMode object representing the sidereal mode. Default is None.
27
+ - houses_system_identifier: HousesSystemIdentifier object representing the houses system identifier. Default is DEFAULT_HOUSES_SYSTEM_IDENTIFIER.
28
+ - perspective_type: PerspectiveType object representing the perspective type. Default is DEFAULT_PERSPECTIVE_TYPE.
29
+ - max_days: integer representing the maximum number of days.
30
+ Set it to None to disable the check. Default is 730.
31
+ - max_hours: integer representing the maximum number of hours.
32
+ Set it to None to disable the check. Default is 8760.
33
+ - max_minutes: integer representing the maximum number of minutes.
34
+ Set it to None to disable the check. Default is 525600.
35
+
36
+ Raises:
37
+ - ValueError: if the step type is invalid.
38
+ - ValueError: if the number of days, hours, or minutes is greater than the maximum allowed.
39
+ """
40
+
41
+ def __init__(
42
+ self,
43
+ start_datetime: datetime,
44
+ end_datetime: datetime,
45
+ step_type: Literal["days", "hours", "minutes"] = "days",
46
+ step: int = 1,
47
+ lat: float = 51.4769,
48
+ lng: float = 0.0005,
49
+ tz_str: str = "Etc/UTC",
50
+ is_dst: bool = False,
51
+ disable_chiron_and_lilith: bool = False,
52
+ zodiac_type: ZodiacType = DEFAULT_ZODIAC_TYPE,
53
+ sidereal_mode: Union[SiderealMode, None] = None,
54
+ houses_system_identifier: HousesSystemIdentifier = DEFAULT_HOUSES_SYSTEM_IDENTIFIER,
55
+ perspective_type: PerspectiveType = DEFAULT_PERSPECTIVE_TYPE,
56
+ max_days: Union[int, None] = 730,
57
+ max_hours: Union[int, None] = 8760,
58
+ max_minutes: Union[int, None] = 525600,
59
+ ):
60
+ self.start_datetime = start_datetime
61
+ self.end_datetime = end_datetime
62
+ self.step_type = step_type
63
+ self.step = step
64
+ self.lat = lat
65
+ self.lng = lng
66
+ self.tz_str = tz_str
67
+ self.is_dst = is_dst
68
+ self.disable_chiron_and_lilith = disable_chiron_and_lilith
69
+ self.zodiac_type = zodiac_type
70
+ self.sidereal_mode = sidereal_mode
71
+ self.houses_system_identifier = houses_system_identifier
72
+ self.perspective_type = perspective_type
73
+ self.max_days = max_days
74
+ self.max_hours = max_hours
75
+ self.max_minutes = max_minutes
76
+
77
+ self.dates_list = []
78
+ if self.step_type == "days":
79
+ self.dates_list = [self.start_datetime + timedelta(days=i) for i in range((self.end_datetime - self.start_datetime).days)]
80
+ if max_days and (len(self.dates_list) > max_days):
81
+ raise ValueError(f"Too many days: {len(self.dates_list)} > {self.max_days}. To prevent this error, set max_days to a higher value or reduce the date range.")
82
+
83
+ elif self.step_type == "hours":
84
+ self.dates_list = [self.start_datetime + timedelta(hours=i) for i in range((self.end_datetime - self.start_datetime).days * 24)]
85
+ if max_hours and (len(self.dates_list) > max_hours):
86
+ raise ValueError(f"Too many hours: {len(self.dates_list)} > {self.max_hours}. To prevent this error, set max_hours to a higher value or reduce the date range.")
87
+
88
+ elif self.step_type == "minutes":
89
+ self.dates_list = [self.start_datetime + timedelta(minutes=i) for i in range((self.end_datetime - self.start_datetime).days * 24 * 60)]
90
+ if max_minutes and (len(self.dates_list) > max_minutes):
91
+ raise ValueError(f"Too many minutes: {len(self.dates_list)} > {self.max_minutes}. To prevent this error, set max_minutes to a higher value or reduce the date range.")
92
+
93
+ else:
94
+ raise ValueError(f"Invalid step type: {self.step_type}")
95
+
96
+ if not self.dates_list:
97
+ raise ValueError("No dates found. Check the date range and step values.")
98
+
99
+ if len(self.dates_list) > 1000:
100
+ logging.warning(f"Large number of dates: {len(self.dates_list)}. The calculation may take a while.")
101
+
102
+ def get_ephemeris_data(self, as_model: bool = False) -> list:
103
+ """
104
+ Generate ephemeris data for the specified date range.
105
+ The data is structured as a list of dictionaries, where each dictionary contains the date, planets, and houses data.
106
+ Example:
107
+ [
108
+ {
109
+ "date": "2020-01-01T00:00:00",
110
+ "planets": [{...}, {...}, ...],
111
+ "houses": [{...}, {...}, ...]
112
+ },
113
+ ...
114
+ ]
115
+
116
+ Args:
117
+ - as_model (bool): If True, the ephemeris data will be returned as model instances. Default is False.
118
+
119
+ Returns:
120
+ - list: A list of dictionaries representing the ephemeris data. If as_model is True, a list of EphemerisDictModel instances is returned.
121
+ """
122
+ ephemeris_data_list = []
123
+ for date in self.dates_list:
124
+ subject = AstrologicalSubject(
125
+ year=date.year,
126
+ month=date.month,
127
+ day=date.day,
128
+ hour=date.hour,
129
+ minute=date.minute,
130
+ lng=self.lng,
131
+ lat=self.lat,
132
+ tz_str=self.tz_str,
133
+ city="Placeholder",
134
+ nation="Placeholder",
135
+ online=False,
136
+ disable_chiron_and_lilith=self.disable_chiron_and_lilith,
137
+ zodiac_type=self.zodiac_type,
138
+ sidereal_mode=self.sidereal_mode,
139
+ houses_system_identifier=self.houses_system_identifier,
140
+ perspective_type=self.perspective_type,
141
+ is_dst=self.is_dst,
142
+ )
143
+
144
+ houses_list = get_houses_list(subject)
145
+ available_planets = get_available_planets_list(subject)
146
+
147
+ ephemeris_data_list.append({"date": date.isoformat(), "planets": available_planets, "houses": houses_list})
148
+
149
+ if as_model:
150
+ return [EphemerisDictModel(**data) for data in ephemeris_data_list]
151
+
152
+ return ephemeris_data_list
153
+
154
+
155
+ if "__main__" == __name__:
156
+ start_date = datetime.fromisoformat("2020-01-01")
157
+ end_date = datetime.fromisoformat("2020-01-03")
158
+
159
+ factory = EphemerisDataFactory(
160
+ start_datetime=start_date,
161
+ end_datetime=end_date,
162
+ step_type="minutes",
163
+ step=1,
164
+ lat=37.9838,
165
+ lng=23.7275,
166
+ tz_str="Europe/Athens",
167
+ is_dst=False,
168
+ max_hours=None,
169
+ max_minutes=None,
170
+ max_days=None,
171
+ )
172
+
173
+ ephemeris_data = factory.get_ephemeris_data_as_model()
174
+ print(ephemeris_data[0])
175
+ print(len(ephemeris_data))
176
+
177
+ for ephe in ephemeris_data:
178
+ print(ephe.planets[0]["abs_pos"])
@@ -79,12 +79,11 @@ class FetchGeonames:
79
79
 
80
80
  params = {
81
81
  "q": city_name,
82
- "contry": country_code,
82
+ "country": country_code,
83
83
  "username": self.username,
84
84
  "maxRows": 1,
85
85
  "style": "SHORT",
86
- "featureClass": "A",
87
- "featureClass": "P",
86
+ "featureClass": ["A", "P"],
88
87
  }
89
88
 
90
89
  prepared_request = Request("GET", self.base_url, params=params).prepare()