kerykeion 5.0.0a12__py3-none-any.whl → 5.0.0b2__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 (51) hide show
  1. kerykeion/__init__.py +30 -6
  2. kerykeion/aspects/aspects_factory.py +40 -24
  3. kerykeion/aspects/aspects_utils.py +75 -6
  4. kerykeion/astrological_subject_factory.py +377 -226
  5. kerykeion/backword.py +680 -0
  6. kerykeion/chart_data_factory.py +484 -0
  7. kerykeion/charts/{kerykeion_chart_svg.py → chart_drawer.py} +688 -440
  8. kerykeion/charts/charts_utils.py +157 -94
  9. kerykeion/charts/draw_planets.py +38 -28
  10. kerykeion/charts/templates/aspect_grid_only.xml +188 -17
  11. kerykeion/charts/templates/chart.xml +153 -47
  12. kerykeion/charts/templates/wheel_only.xml +195 -24
  13. kerykeion/charts/themes/classic.css +11 -0
  14. kerykeion/charts/themes/dark-high-contrast.css +11 -0
  15. kerykeion/charts/themes/dark.css +11 -0
  16. kerykeion/charts/themes/light.css +11 -0
  17. kerykeion/charts/themes/strawberry.css +10 -0
  18. kerykeion/composite_subject_factory.py +4 -4
  19. kerykeion/ephemeris_data_factory.py +12 -9
  20. kerykeion/house_comparison/__init__.py +0 -3
  21. kerykeion/house_comparison/house_comparison_factory.py +3 -3
  22. kerykeion/house_comparison/house_comparison_utils.py +3 -4
  23. kerykeion/planetary_return_factory.py +8 -4
  24. kerykeion/relationship_score_factory.py +3 -3
  25. kerykeion/report.py +748 -67
  26. kerykeion/{kr_types → schemas}/__init__.py +44 -4
  27. kerykeion/schemas/chart_template_model.py +367 -0
  28. kerykeion/{kr_types → schemas}/kr_literals.py +7 -3
  29. kerykeion/{kr_types → schemas}/kr_models.py +220 -11
  30. kerykeion/{kr_types → schemas}/settings_models.py +7 -7
  31. kerykeion/settings/config_constants.py +75 -8
  32. kerykeion/settings/kerykeion_settings.py +1 -1
  33. kerykeion/settings/kr.config.json +132 -42
  34. kerykeion/settings/legacy/legacy_celestial_points_settings.py +8 -8
  35. kerykeion/sweph/ast136/s136108s.se1 +0 -0
  36. kerykeion/sweph/ast136/s136199s.se1 +0 -0
  37. kerykeion/sweph/ast136/s136472s.se1 +0 -0
  38. kerykeion/sweph/ast28/se28978s.se1 +0 -0
  39. kerykeion/sweph/ast50/se50000s.se1 +0 -0
  40. kerykeion/sweph/ast90/se90377s.se1 +0 -0
  41. kerykeion/sweph/ast90/se90482s.se1 +0 -0
  42. kerykeion/transits_time_range_factory.py +7 -7
  43. kerykeion/utilities.py +61 -38
  44. {kerykeion-5.0.0a12.dist-info → kerykeion-5.0.0b2.dist-info}/METADATA +507 -120
  45. kerykeion-5.0.0b2.dist-info/RECORD +58 -0
  46. kerykeion/house_comparison/house_comparison_models.py +0 -76
  47. kerykeion/kr_types/chart_types.py +0 -106
  48. kerykeion-5.0.0a12.dist-info/RECORD +0 -50
  49. /kerykeion/{kr_types → schemas}/kerykeion_exception.py +0 -0
  50. {kerykeion-5.0.0a12.dist-info → kerykeion-5.0.0b2.dist-info}/WHEEL +0 -0
  51. {kerykeion-5.0.0a12.dist-info → kerykeion-5.0.0b2.dist-info}/licenses/LICENSE +0 -0
@@ -5,7 +5,7 @@
5
5
  xmlns:kr="https://www.kerykeion.net/"
6
6
  width="100%"
7
7
  height="100%"
8
- viewBox="90 40 500 500"
8
+ viewBox="$viewbox"
9
9
  preserveAspectRatio="xMidYMid"
10
10
  style="background-color: $background_color"
11
11
  >
@@ -85,6 +85,82 @@
85
85
  <circle cx="10" cy="10" r="2" style="fill: $planets_color_0" />
86
86
  </g>
87
87
  </symbol>
88
+ <!-- OTHER POINTS -->
89
+ <symbol id="Earth">
90
+ <g transform="translate(2,2)">
91
+ <circle cx="10" cy="10" r="9" style="stroke: $planets_color_21; stroke-width: 2px; fill: none;" />
92
+ <line x1="10" y1="1" x2="10" y2="19" style="stroke: $planets_color_21; stroke-width: 2px;" />
93
+ <line x1="1" y1="10" x2="19" y2="10" style="stroke: $planets_color_21; stroke-width: 2px;" />
94
+ </g>
95
+ </symbol>
96
+ <symbol id="Pholus">
97
+ <g transform="translate(2,2)">
98
+ <circle cx="10" cy="10" r="9" style="stroke: $planets_color_22; stroke-width: 2px; fill: none;" />
99
+ <path d="M 6,8 Q 10,4 14,8 Q 10,12 6,8" style="stroke: $planets_color_22; stroke-width: 2px; fill: none;" />
100
+ <path d="M 10,8 L 10,16" style="stroke: $planets_color_22; stroke-width: 2px;" />
101
+ </g>
102
+ </symbol>
103
+ <symbol id="Sedna">
104
+ <g transform="translate(2,2)">
105
+ <circle cx="10" cy="10" r="9" style="stroke: $planets_color_28; stroke-width: 2px; fill: none;" />
106
+ <path d="M 5,10 Q 10,5 15,10 Q 10,15 5,10" style="stroke: $planets_color_28; stroke-width: 2px; fill: none;" />
107
+ <circle cx="10" cy="10" r="2" style="fill: $planets_color_28;" />
108
+ </g>
109
+ </symbol>
110
+ <symbol id="Haumea">
111
+ <g transform="translate(2,2)">
112
+ <ellipse cx="10" cy="10" rx="9" ry="6" style="stroke: $planets_color_29; stroke-width: 2px; fill: none;" />
113
+ <path d="M 4,10 L 7,7 M 13,7 L 16,10 M 16,10 L 13,13 M 7,13 L 4,10" style="stroke: $planets_color_29; stroke-width: 2px;" />
114
+ </g>
115
+ </symbol>
116
+ <symbol id="Makemake">
117
+ <g transform="translate(2,2)">
118
+ <circle cx="10" cy="10" r="9" style="stroke: $planets_color_30; stroke-width: 2px; fill: none;" />
119
+ <path d="M 6,6 L 10,10 L 14,6" style="stroke: $planets_color_30; stroke-width: 2px; fill: none;" />
120
+ <path d="M 6,14 L 10,10 L 14,14" style="stroke: $planets_color_30; stroke-width: 2px; fill: none;" />
121
+ <circle cx="10" cy="10" r="1.5" style="fill: $planets_color_30;" />
122
+ </g>
123
+ </symbol>
124
+ <symbol id="Ixion">
125
+ <g transform="translate(2,2)">
126
+ <circle cx="10" cy="10" r="9" style="stroke: $planets_color_31; stroke-width: 2px; fill: none;" />
127
+ <path d="M 3,3 L 17,17 M 17,3 L 3,17" style="stroke: $planets_color_31; stroke-width: 2px;" />
128
+ <circle cx="10" cy="10" r="3" style="stroke: $planets_color_31; stroke-width: 2px; fill: none;" />
129
+ </g>
130
+ </symbol>
131
+ <symbol id="Orcus">
132
+ <g transform="translate(2,2)">
133
+ <circle cx="10" cy="10" r="9" style="stroke: $planets_color_32; stroke-width: 2px; fill: none;" />
134
+ <path d="M 6,6 L 14,14 M 14,6 L 6,14" style="stroke: $planets_color_32; stroke-width: 2px;" />
135
+ <path d="M 10,3 L 10,17 M 3,10 L 17,10" style="stroke: $planets_color_32; stroke-width: 2px;" />
136
+ </g>
137
+ </symbol>
138
+ <symbol id="Quaoar">
139
+ <g transform="translate(2,2)">
140
+ <circle cx="10" cy="10" r="9" style="stroke: $planets_color_33; stroke-width: 2px; fill: none;" />
141
+ <path d="M 7,7 Q 10,4 13,7 Q 16,10 13,13 Q 10,16 7,13 Q 4,10 7,7" style="stroke: $planets_color_33; stroke-width: 2px; fill: none;" />
142
+ </g>
143
+ </symbol>
144
+ <symbol id="Regulus">
145
+ <g transform="translate(2,2)">
146
+ <circle cx="10" cy="10" r="9" style="stroke: $planets_color_34; stroke-width: 2px; fill: none;" />
147
+ <path d="M 10,3 L 7,7 L 13,7 Z" style="stroke: $planets_color_34; stroke-width: 2px; fill: $planets_color_34;" />
148
+ <circle cx="10" cy="12" r="3" style="stroke: $planets_color_34; stroke-width: 2px; fill: none;" />
149
+ </g>
150
+ </symbol>
151
+ <symbol id="Spica">
152
+ <g transform="translate(2,2)">
153
+ <circle cx="10" cy="10" r="9" style="stroke: $planets_color_35; stroke-width: 2px; fill: none;" />
154
+ <path d="M 10,4 L 8,8 L 4,8 L 7,11 L 6,15 L 10,13 L 14,15 L 13,11 L 16,8 L 12,8 Z" style="stroke: $planets_color_35; stroke-width: 2px; fill: $planets_color_35;" />
155
+ </g>
156
+ </symbol>
157
+ <symbol id="Anti_Vertex">
158
+ <g transform="translate(2,2)">
159
+ <circle cx="10" cy="10" r="9" style="stroke: $planets_color_41; stroke-width: 2px; fill: none;" />
160
+ <path d="M 6,6 L 14,14 M 14,6 L 6,14" style="stroke: $planets_color_41; stroke-width: 2px;" />
161
+ <circle cx="10" cy="10" r="3" style="fill: $planets_color_41;" />
162
+ </g>
163
+ </symbol>
88
164
  <symbol id="Moon">
89
165
  <g transform="translate(4,3)">
90
166
  <g transform="scale(.8)">
@@ -183,7 +259,7 @@
183
259
  </g>
184
260
  </g>
185
261
  </symbol>
186
- <symbol id="Mean_Node">
262
+ <symbol id="Mean_North_Lunar_Node">
187
263
  <g transform="translate(0,3)">
188
264
  <path
189
265
  d="M 8.8096046,0.075666897 C 6.4157536,0.66123962 4.3767769,2.5306837 3.6634656,4.9007514 C 3.0536071,6.6809264 3.6868682,8.6238901 4.5878988,10.186437 C 5.1323997,11.124622 5.9615753,11.90895 6.1907302,13.007906 C 6.5917202,14.484488 6.4887156,16.387523 5.1723788,17.382576 C 4.3329974,18.053413 3.0775741,17.455034 2.8200136,16.481196 C 2.3916552,15.100793 3.3231898,13.396456 4.7793316,13.163806 C 5.5157861,13.448489 5.7362353,13.008331 4.988051,12.739101 C 3.4767696,11.980761 1.2431896,12.83969 1.0351476,14.635394 C 0.77445715,16.298582 1.9528847,17.991835 3.5895963,18.357459 C 5.4276662,18.994165 7.6661839,17.968534 8.2979039,16.110162 C 8.8571025,14.716527 8.5465481,13.186139 8.0289868,11.832653 C 7.4702885,10.206884 6.2553663,8.8709674 5.9299056,7.1525838 C 5.49146,5.4929965 5.8875498,3.5735629 7.2329607,2.4327213 C 8.7388591,1.0134451 11.318931,0.7557082 12.919818,2.1627723 C 14.891174,3.6769345 15.295065,6.5692028 14.330237,8.7671933 C 13.910484,9.9193658 13.154353,10.902679 12.615877,11.991299 C 12.038045,13.54826 12.080599,15.364813 12.777455,16.875163 C 14.076946,19.110943 17.903376,18.945033 19.042078,16.628703 C 19.757242,15.261227 19.306819,13.244929 17.7659,12.671902 C 16.75835,12.210961 15.462093,12.442951 14.729366,13.290014 C 15.679849,13.276153 16.980294,13.262754 17.343502,14.364203 C 17.903263,15.492679 17.769677,17.305972 16.414949,17.781895 C 15.218418,18.13084 14.150303,16.902947 14.092184,15.781666 C 13.782117,14.101403 14.140346,12.270315 15.27519,10.958042 C 16.519893,9.4948763 17.256525,7.5240659 16.867526,5.5994751 C 16.36409,2.5657249 13.605001,0.065760543 10.507309,-0.0047547265 C 9.941073,-0.015830692 9.3722594,0.0093478619 8.8096046,0.075666897 z"
@@ -191,7 +267,7 @@
191
267
  />
192
268
  </g>
193
269
  </symbol>
194
- <symbol id="True_Node">
270
+ <symbol id="True_North_Lunar_Node">
195
271
  <g transform="translate(0,3)">
196
272
  <path
197
273
  d="M 8.8096046,0.075666897 C 6.4157536,0.66123962 4.3767769,2.5306837 3.6634656,4.9007514 C 3.0536071,6.6809264 3.6868682,8.6238901 4.5878988,10.186437 C 5.1323997,11.124622 5.9615753,11.90895 6.1907302,13.007906 C 6.5917202,14.484488 6.4887156,16.387523 5.1723788,17.382576 C 4.3329974,18.053413 3.0775741,17.455034 2.8200136,16.481196 C 2.3916552,15.100793 3.3231898,13.396456 4.7793316,13.163806 C 5.5157861,13.448489 5.7362353,13.008331 4.988051,12.739101 C 3.4767696,11.980761 1.2431896,12.83969 1.0351476,14.635394 C 0.77445715,16.298582 1.9528847,17.991835 3.5895963,18.357459 C 5.4276662,18.994165 7.6661839,17.968534 8.2979039,16.110162 C 8.8571025,14.716527 8.5465481,13.186139 8.0289868,11.832653 C 7.4702885,10.206884 6.2553663,8.8709674 5.9299056,7.1525838 C 5.49146,5.4929965 5.8875498,3.5735629 7.2329607,2.4327213 C 8.7388591,1.0134451 11.318931,0.7557082 12.919818,2.1627723 C 14.891174,3.6769345 15.295065,6.5692028 14.330237,8.7671933 C 13.910484,9.9193658 13.154353,10.902679 12.615877,11.991299 C 12.038045,13.54826 12.080599,15.364813 12.777455,16.875163 C 14.076946,19.110943 17.903376,18.945033 19.042078,16.628703 C 19.757242,15.261227 19.306819,13.244929 17.7659,12.671902 C 16.75835,12.210961 15.462093,12.442951 14.729366,13.290014 C 15.679849,13.276153 16.980294,13.262754 17.343502,14.364203 C 17.903263,15.492679 17.769677,17.305972 16.414949,17.781895 C 15.218418,18.13084 14.150303,16.902947 14.092184,15.781666 C 13.782117,14.101403 14.140346,12.270315 15.27519,10.958042 C 16.519893,9.4948763 17.256525,7.5240659 16.867526,5.5994751 C 16.36409,2.5657249 13.605001,0.065760543 10.507309,-0.0047547265 C 9.941073,-0.015830692 9.3722594,0.0093478619 8.8096046,0.075666897 z"
@@ -199,49 +275,144 @@
199
275
  />
200
276
  </g>
201
277
  </symbol>
202
- <symbol id="Mean_South_Node">
278
+ <symbol id="Mean_South_Lunar_Node">
203
279
  <g transform="translate(2,5)">
204
280
  <g transform="scale(.75)">
205
- <path
206
- d="M 13.891439,23.899148 C 16.831061,23.16167 19.42871,20.957929 20.393204,18.051853 C 21.020409,16.655337 20.990829,15.041667 20.533362,13.600675 C 20.114218,11.835116 19.107819,10.284901 18.004613,8.8731359 C 17.010334,7.1652064 16.695528,4.9968194 17.378257,3.1191925 C 17.758616,2.134839 18.612459,1.1290194 19.747609,1.122205 C 20.856714,1.1522691 21.68807,2.1940507 21.762984,3.2502572 C 21.912267,4.7681974 20.969993,6.4261707 19.471746,6.8713331 C 19.067889,7.1616711 18.25164,6.6059847 18.085179,6.9788263 C 19.290894,8.1433226 21.294758,8.0903554 22.639135,7.1933294 C 23.815746,6.4142182 24.244753,4.8354574 23.866042,3.513777 C 23.579596,1.951978 22.299181,0.68814445 20.784404,0.28003765 C 19.338156,-0.21325355 17.636132,-0.074257846 16.389677,0.85208495 C 14.815514,1.7718962 14.147431,3.6918765 14.163087,5.4368764 C 14.158082,6.4844752 14.521263,7.4854719 14.829092,8.4735115 C 15.207397,9.5849835 15.743054,10.635344 16.373553,11.623268 C 17.391254,13.444769 18.097991,15.578055 17.73759,17.680935 C 17.264619,20.303885 14.771995,22.367369 12.114619,22.391402 C 10.221592,22.570108 8.4623977,21.408784 7.3640695,19.946934 C 5.9800493,18.024601 5.7632677,15.423089 6.5407261,13.21741 C 7.0447364,11.683217 7.9039267,10.303136 8.7551602,8.9442496 C 9.3673378,7.7170077 9.5453858,6.3050768 9.4520188,4.9498232 C 9.3273658,3.5827422 9.055649,2.055641 7.9264908,1.1408811 C 5.9170924,-0.45587205 2.5879904,-0.21634735 1.0121097,1.878869 C -0.10699561,3.3638861 -0.077071356,5.7321616 1.3439679,7.0142862 C 2.2628957,7.7723325 3.5523542,8.1172364 4.7082249,7.7533106 C 5.2902186,7.5823499 5.8305214,7.2547717 6.2290478,6.7948231 C 5.2075081,6.7604711 3.9811354,6.8872988 3.2192579,6.0602046 C 2.4586494,4.9643087 2.1899922,3.4530691 2.7277339,2.20348 C 3.1104121,1.3003657 4.160788,0.64048665 5.1397626,0.98349485 C 6.2468062,1.3370711 6.9552792,2.4455554 7.0537996,3.5696899 C 7.3808409,5.492555 7.1315,7.5939422 5.9619608,9.2041629 C 5.2025142,10.29701 4.2871193,11.315357 3.8562083,12.598809 C 2.7918212,15.240251 3.4299247,18.367596 5.1702811,20.571791 C 6.8286269,22.84876 9.6781638,24.154892 12.482992,23.997045 C 12.953784,23.989488 13.423977,23.955037 13.891439,23.899148 z "
207
- style="fill: $planets_color_10" />
281
+ <path
282
+ d="M 13.891439,23.899148 C 16.831061,23.16167 19.42871,20.957929 20.393204,18.051853 C 21.020409,16.655337 20.990829,15.041667 20.533362,13.600675 C 20.114218,11.835116 19.107819,10.284901 18.004613,8.8731359 C 17.010334,7.1652064 16.695528,4.9968194 17.378257,3.1191925 C 17.758616,2.134839 18.612459,1.1290194 19.747609,1.122205 C 20.856714,1.1522691 21.68807,2.1940507 21.762984,3.2502572 C 21.912267,4.7681974 20.969993,6.4261707 19.471746,6.8713331 C 19.067889,7.1616711 18.25164,6.6059847 18.085179,6.9788263 C 19.290894,8.1433226 21.294758,8.0903554 22.639135,7.1933294 C 23.815746,6.4142182 24.244753,4.8354574 23.866042,3.513777 C 23.579596,1.951978 22.299181,0.68814445 20.784404,0.28003765 C 19.338156,-0.21325355 17.636132,-0.074257846 16.389677,0.85208495 C 14.815514,1.7718962 14.147431,3.6918765 14.163087,5.4368764 C 14.158082,6.4844752 14.521263,7.4854719 14.829092,8.4735115 C 15.207397,9.5849835 15.743054,10.635344 16.373553,11.623268 C 17.391254,13.444769 18.097991,15.578055 17.73759,17.680935 C 17.264619,20.303885 14.771995,22.367369 12.114619,22.391402 C 10.221592,22.570108 8.4623977,21.408784 7.3640695,19.946934 C 5.9800493,18.024601 5.7632677,15.423089 6.5407261,13.21741 C 7.0447364,11.683217 7.9039267,10.303136 8.7551602,8.9442496 C 9.3673378,7.7170077 9.5453858,6.3050768 9.4520188,4.9498232 C 9.3273658,3.5827422 9.055649,2.055641 7.9264908,1.1408811 C 5.9170924,-0.45587205 2.5879904,-0.21634735 1.0121097,1.878869 C -0.10699561,3.3638861 -0.077071356,5.7321616 1.3439679,7.0142862 C 2.2628957,7.7723325 3.5523542,8.1172364 4.7082249,7.7533106 C 5.2902186,7.5823499 5.8305214,7.2547717 6.2290478,6.7948231 C 5.2075081,6.7604711 3.9811354,6.8872988 3.2192579,6.0602046 C 2.4586494,4.9643087 2.1899922,3.4530691 2.7277339,2.20348 C 3.1104121,1.3003657 4.160788,0.64048665 5.1397626,0.98349485 C 6.2468062,1.3370711 6.9552792,2.4455554 7.0537996,3.5696899 C 7.3808409,5.492555 7.1315,7.5939422 5.9619608,9.2041629 C 5.2025142,10.29701 4.2871193,11.315357 3.8562083,12.598809 C 2.7918212,15.240251 3.4299247,18.367596 5.1702811,20.571791 C 6.8286269,22.84876 9.6781638,24.154892 12.482992,23.997045 C 12.953784,23.989488 13.423977,23.955037 13.891439,23.899148 z "
283
+ style="fill: $planets_color_18" />
208
284
  </g>
209
285
  </g>
210
286
  </symbol>
211
- <symbol id="True_South_Node">
287
+ <symbol id="True_South_Lunar_Node">
212
288
  <g transform="translate(2,5)">
213
289
  <g transform="scale(.75)">
214
- <path
215
- d="M 13.891439,23.899148 C 16.831061,23.16167 19.42871,20.957929 20.393204,18.051853 C 21.020409,16.655337 20.990829,15.041667 20.533362,13.600675 C 20.114218,11.835116 19.107819,10.284901 18.004613,8.8731359 C 17.010334,7.1652064 16.695528,4.9968194 17.378257,3.1191925 C 17.758616,2.134839 18.612459,1.1290194 19.747609,1.122205 C 20.856714,1.1522691 21.68807,2.1940507 21.762984,3.2502572 C 21.912267,4.7681974 20.969993,6.4261707 19.471746,6.8713331 C 19.067889,7.1616711 18.25164,6.6059847 18.085179,6.9788263 C 19.290894,8.1433226 21.294758,8.0903554 22.639135,7.1933294 C 23.815746,6.4142182 24.244753,4.8354574 23.866042,3.513777 C 23.579596,1.951978 22.299181,0.68814445 20.784404,0.28003765 C 19.338156,-0.21325355 17.636132,-0.074257846 16.389677,0.85208495 C 14.815514,1.7718962 14.147431,3.6918765 14.163087,5.4368764 C 14.158082,6.4844752 14.521263,7.4854719 14.829092,8.4735115 C 15.207397,9.5849835 15.743054,10.635344 16.373553,11.623268 C 17.391254,13.444769 18.097991,15.578055 17.73759,17.680935 C 17.264619,20.303885 14.771995,22.367369 12.114619,22.391402 C 10.221592,22.570108 8.4623977,21.408784 7.3640695,19.946934 C 5.9800493,18.024601 5.7632677,15.423089 6.5407261,13.21741 C 7.0447364,11.683217 7.9039267,10.303136 8.7551602,8.9442496 C 9.3673378,7.7170077 9.5453858,6.3050768 9.4520188,4.9498232 C 9.3273658,3.5827422 9.055649,2.055641 7.9264908,1.1408811 C 5.9170924,-0.45587205 2.5879904,-0.21634735 1.0121097,1.878869 C -0.10699561,3.3638861 -0.077071356,5.7321616 1.3439679,7.0142862 C 2.2628957,7.7723325 3.5523542,8.1172364 4.7082249,7.7533106 C 5.2902186,7.5823499 5.8305214,7.2547717 6.2290478,6.7948231 C 5.2075081,6.7604711 3.9811354,6.8872988 3.2192579,6.0602046 C 2.4586494,4.9643087 2.1899922,3.4530691 2.7277339,2.20348 C 3.1104121,1.3003657 4.160788,0.64048665 5.1397626,0.98349485 C 6.2468062,1.3370711 6.9552792,2.4455554 7.0537996,3.5696899 C 7.3808409,5.492555 7.1315,7.5939422 5.9619608,9.2041629 C 5.2025142,10.29701 4.2871193,11.315357 3.8562083,12.598809 C 2.7918212,15.240251 3.4299247,18.367596 5.1702811,20.571791 C 6.8286269,22.84876 9.6781638,24.154892 12.482992,23.997045 C 12.953784,23.989488 13.423977,23.955037 13.891439,23.899148 z "
216
- style="fill: $planets_color_11" />
290
+ <path
291
+ d="M 13.891439,23.899148 C 16.831061,23.16167 19.42871,20.957929 20.393204,18.051853 C 21.020409,16.655337 20.990829,15.041667 20.533362,13.600675 C 20.114218,11.835116 19.107819,10.284901 18.004613,8.8731359 C 17.010334,7.1652064 16.695528,4.9968194 17.378257,3.1191925 C 17.758616,2.134839 18.612459,1.1290194 19.747609,1.122205 C 20.856714,1.1522691 21.68807,2.1940507 21.762984,3.2502572 C 21.912267,4.7681974 20.969993,6.4261707 19.471746,6.8713331 C 19.067889,7.1616711 18.25164,6.6059847 18.085179,6.9788263 C 19.290894,8.1433226 21.294758,8.0903554 22.639135,7.1933294 C 23.815746,6.4142182 24.244753,4.8354574 23.866042,3.513777 C 23.579596,1.951978 22.299181,0.68814445 20.784404,0.28003765 C 19.338156,-0.21325355 17.636132,-0.074257846 16.389677,0.85208495 C 14.815514,1.7718962 14.147431,3.6918765 14.163087,5.4368764 C 14.158082,6.4844752 14.521263,7.4854719 14.829092,8.4735115 C 15.207397,9.5849835 15.743054,10.635344 16.373553,11.623268 C 17.391254,13.444769 18.097991,15.578055 17.73759,17.680935 C 17.264619,20.303885 14.771995,22.367369 12.114619,22.391402 C 10.221592,22.570108 8.4623977,21.408784 7.3640695,19.946934 C 5.9800493,18.024601 5.7632677,15.423089 6.5407261,13.21741 C 7.0447364,11.683217 7.9039267,10.303136 8.7551602,8.9442496 C 9.3673378,7.7170077 9.5453858,6.3050768 9.4520188,4.9498232 C 9.3273658,3.5827422 9.055649,2.055641 7.9264908,1.1408811 C 5.9170924,-0.45587205 2.5879904,-0.21634735 1.0121097,1.878869 C -0.10699561,3.3638861 -0.077071356,5.7321616 1.3439679,7.0142862 C 2.2628957,7.7723325 3.5523542,8.1172364 4.7082249,7.7533106 C 5.2902186,7.5823499 5.8305214,7.2547717 6.2290478,6.7948231 C 5.2075081,6.7604711 3.9811354,6.8872988 3.2192579,6.0602046 C 2.4586494,4.9643087 2.1899922,3.4530691 2.7277339,2.20348 C 3.1104121,1.3003657 4.160788,0.64048665 5.1397626,0.98349485 C 6.2468062,1.3370711 6.9552792,2.4455554 7.0537996,3.5696899 C 7.3808409,5.492555 7.1315,7.5939422 5.9619608,9.2041629 C 5.2025142,10.29701 4.2871193,11.315357 3.8562083,12.598809 C 2.7918212,15.240251 3.4299247,18.367596 5.1702811,20.571791 C 6.8286269,22.84876 9.6781638,24.154892 12.482992,23.997045 C 12.953784,23.989488 13.423977,23.955037 13.891439,23.899148 z "
292
+ style="fill: $planets_color_19" />
217
293
  </g>
218
294
  </g>
219
295
  </symbol>
220
296
  <symbol id="Chiron">
221
297
  <path
222
298
  d="M 10.019873,13.068981 L 10.185542,0.80951431 M 10.195591,6.7442901 L 15.496983,2.2712408 M 10.214831,6.6321726 L 15.516217,11.105216 M 17.192934,17.998774 C 17.192934,20.8646 14.867052,23.190487 12.001226,23.190487 C 9.1353988,23.190487 6.8095128,20.8646 6.8095128,17.998774 C 6.8095128,15.132953 9.1353988,12.807066 12.001226,12.807066 C 14.867052,12.807066 17.192934,15.132953 17.192934,17.998774 z "
223
- style="stroke: $planets_color_16;stroke-width:2px; fill:none;" />
299
+ style="stroke: $planets_color_12;stroke-width:2px; fill:none;" />
224
300
  </symbol>
225
301
  <symbol id="Mean_Lilith">
226
- <g transform="translate(1,2)">
227
- <path
228
- d="M 5.2255055,0.5001842 C 4.5318761,0.5265765 3.8737679,0.6459111 3.2335607,0.83217502 C 6.682099,1.8494555 9.2093951,5.0469634 9.2093951,8.8236674 C 9.2093953,12.600373 6.682099,15.797873 3.2335607,16.815161 C 3.9722573,17.030079 4.7497456,17.147152 5.5574963,17.147152 C 6.4110015,17.147152 7.2245796,17.006704 8,16.767734 L 8,19.803079 L 4.490383,19.803079 L 4.490383,21.629028 L 8,21.629028 L 8,23.739541 L 9.7785222,23.739541 L 9.7785222,21.629028 L 13.430421,21.629028 L 13.430421,19.803079 L 9.7785222,19.803079 L 9.7785222,15.985184 C 12.226487,14.535184 13.88098,11.873186 13.88098,8.8236674 C 13.88098,4.2284374 10.152727,0.5001842 5.5574963,0.5001842 C 5.4497948,0.5001842 5.3322206,0.4961168 5.2255055,0.5001842 z"
229
- style="fill: $planets_color_16;" />
230
- </g>
302
+ <g transform="translate(1,2)">
303
+ <path
304
+ d="M 5.2255055,0.5001842 C 4.5318761,0.5265765 3.8737679,0.6459111 3.2335607,0.83217502 C 6.682099,1.8494555 9.2093951,5.0469634 9.2093951,8.8236674 C 9.2093953,12.600373 6.682099,15.797873 3.2335607,16.815161 C 3.9722573,17.030079 4.7497456,17.147152 5.5574963,17.147152 C 6.4110015,17.147152 7.2245796,17.006704 8,16.767734 L 8,19.803079 L 4.490383,19.803079 L 4.490383,21.629028 L 8,21.629028 L 8,23.739541 L 9.7785222,23.739541 L 9.7785222,21.629028 L 13.430421,21.629028 L 13.430421,19.803079 L 9.7785222,19.803079 L 9.7785222,15.985184 C 12.226487,14.535184 13.88098,11.873186 13.88098,8.8236674 C 13.88098,4.2284374 10.152727,0.5001842 5.5574963,0.5001842 C 5.4497948,0.5001842 5.3322206,0.4961168 5.2255055,0.5001842 z"
305
+ style="fill: $planets_color_17;" />
306
+ </g>
231
307
  </symbol>
232
308
  <symbol id="Ascendant">
233
- <text y="20" style="font-size: 22px; fill: $planets_color_12">As</text>
309
+ <text y="20" style="font-size: 22px; fill: $planets_color_13">As</text>
234
310
  </symbol>
235
311
  <symbol id="Medium_Coeli">
236
- <text y="20" style="font-size: 20px; fill: $planets_color_13">Mc</text>
312
+ <text y="20" style="font-size: 20px; fill: $planets_color_14">Mc</text>
237
313
  </symbol>
238
314
  <symbol id="Descendant">
239
- <text y="20" style="font-size: 22px; fill: $planets_color_14">Ds</text>
315
+ <text y="20" style="font-size: 22px; fill: $planets_color_15">Ds</text>
240
316
  </symbol>
241
317
  <symbol id="Imum_Coeli">
242
- <text y="20" style="font-size: 22px; fill: $planets_color_15">Ic</text>
318
+ <text y="20" style="font-size: 22px; fill: $planets_color_16">Ic</text>
243
319
  </symbol>
244
- <!-- Zodiac -->
320
+
321
+ <!-- Asteroids and additional points -->
322
+ <symbol id="Ceres">
323
+ <g transform="translate(1,2)">
324
+ <path d="M 11.5,0.5 L 11.5,21.5 M 7.5,4 L 15.5,4 M 5,10 L 17,10"
325
+ style="stroke: $planets_color_23; stroke-width: 2px; fill: none;" />
326
+ <circle cx="11.5" cy="15" r="5"
327
+ style="stroke: $planets_color_23; stroke-width: 2px; fill: none;" />
328
+ </g>
329
+ </symbol>
330
+
331
+ <symbol id="Pallas">
332
+ <g transform="translate(1,2)">
333
+ <path d="M 11,0.5 L 11,21.5 M 6,6 L 16,6 M 4,12 L 18,12"
334
+ style="stroke: $planets_color_24; stroke-width: 2px; fill: none;" />
335
+ </g>
336
+ </symbol>
337
+
338
+ <symbol id="Juno">
339
+ <g transform="translate(1,2)">
340
+ <path d="M 5,5 C 5,2 11,0 11,0 C 11,0 17,2 17,5 C 17,9 13,9 11,15 C 9,9 5,9 5,5 z M 7,18 L 15,18 M 11,15 L 11,21"
341
+ style="stroke: $planets_color_25; stroke-width: 2px; fill: none;" />
342
+ </g>
343
+ </symbol>
344
+
345
+ <symbol id="Vesta">
346
+ <g transform="translate(1,2)">
347
+ <path d="M 7,0.5 L 15,0.5 M 11,0.5 L 11,13 M 6,6 L 16,6 M 7,20 C 7,16 15,16 15,20 C 15,24 7,24 7,20 z"
348
+ style="stroke: $planets_color_26; stroke-width: 2px; fill: none;" />
349
+ </g>
350
+ </symbol>
351
+
352
+ <symbol id="Vertex">
353
+ <text y="20" style="font-size: 22px; fill: $planets_color_40">Vx</text>
354
+ </symbol>
355
+
356
+ <symbol id="East_Point">
357
+ <text y="20" style="font-size: 22px; fill: $planets_color_23">EP</text>
358
+ </symbol>
359
+
360
+ <symbol id="True_Lilith">
361
+ <g transform="translate(1,2)">
362
+ <path
363
+ d="M 5.2255055,0.5001842 C 4.5318761,0.5265765 3.8737679,0.6459111 3.2335607,0.83217502 C 6.682099,1.8494555 9.2093951,5.0469634 9.2093951,8.8236674 C 9.2093953,12.600373 6.682099,15.797873 3.2335607,16.815161 C 3.9722573,17.030079 4.7497456,17.147152 5.5574963,17.147152 C 6.4110015,17.147152 7.2245796,17.006704 8,16.767734 L 8,19.803079 L 4.490383,19.803079 L 4.490383,21.629028 L 8,21.629028 L 8,23.739541 L 9.7785222,23.739541 L 9.7785222,21.629028 L 13.430421,21.629028 L 13.430421,19.803079 L 9.7785222,19.803079 L 9.7785222,15.985184 C 12.226487,14.535184 13.88098,11.873186 13.88098,8.8236674 C 13.88098,4.2284374 10.152727,0.5001842 5.5574963,0.5001842 C 5.4497948,0.5001842 5.3322206,0.4961168 5.2255055,0.5001842 z"
364
+ style="fill: $planets_color_20;" />
365
+ </g>
366
+ </symbol>
367
+
368
+ <symbol id="Eris">
369
+ <g transform="translate(1,2)">
370
+ <path d="M 8,4 L 14,4 M 6,8 L 16,8 M 4,12 L 18,12 M 6,16 L 16,16 M 8,20 L 14,20"
371
+ style="stroke: $planets_color_27; stroke-width: 2px; fill: none;" />
372
+ <circle cx="11" cy="11" r="10"
373
+ style="fill: none; stroke: $planets_color_27; stroke-width: 2px" />
374
+ </g>
375
+ </symbol>
376
+
377
+ <symbol id="Pars_Fortunae">
378
+ <g transform="translate(1,2)">
379
+ <circle cx="11" cy="11" r="9"
380
+ style="fill: none; stroke: $planets_color_36; stroke-width: 2px" />
381
+ <path d="M 5,5 L 17,17 M 17,5 L 5,17"
382
+ style="stroke: $planets_color_36; stroke-width: 2px; fill: none;" />
383
+ </g>
384
+ </symbol>
385
+
386
+ <symbol id="Pars_Spiritus">
387
+ <g transform="translate(1,2)">
388
+ <circle cx="11" cy="11" r="9"
389
+ style="fill: none; stroke: $planets_color_37; stroke-width: 2px" />
390
+ <path d="M 7,11 L 15,11 M 11,7 L 11,15"
391
+ style="stroke: $planets_color_37; stroke-width: 2px; fill: none;" />
392
+ <path d="M 7,7 L 15,15 M 7,15 L 15,7"
393
+ style="stroke: $planets_color_37; stroke-width: 2px; fill: none;" />
394
+ </g>
395
+ </symbol>
396
+
397
+ <symbol id="Pars_Amoris">
398
+ <g transform="translate(1,2)">
399
+ <circle cx="11" cy="11" r="9"
400
+ style="fill: none; stroke: $planets_color_38; stroke-width: 2px" />
401
+ <path d="M 7,7 C 9,5 13,5 15,7 C 17,9 17,13 15,15 C 13,17 9,17 7,15 C 5,13 5,9 7,7 Z"
402
+ style="stroke: $planets_color_38; stroke-width: 2px; fill: none;" />
403
+ </g>
404
+ </symbol>
405
+
406
+ <symbol id="Pars_Fidei">
407
+ <g transform="translate(1,2)">
408
+ <circle cx="11" cy="11" r="9"
409
+ style="fill: none; stroke: $planets_color_39; stroke-width: 2px" />
410
+ <path d="M 6,11 L 16,11 M 11,6 L 11,16 M 8,8 L 14,14"
411
+ style="stroke: $planets_color_39; stroke-width: 2px; fill: none;" />
412
+ </g>
413
+ </symbol>
414
+
415
+ <!-- Zodiac -->
245
416
  <symbol id="Ari">
246
417
  <path
247
418
  d="M 14.833536,31 C 14.832186,29.72825 14.845936,28.45584 14.780346,27.18523 C 14.640926,24.23046 14.271927,21.28979 13.761657,18.3776 C 13.321987,15.91911 12.787787,13.46983 11.990517,11.10075 C 11.530267,9.76243 10.992887,8.44912 10.357087,7.1849 C 9.7764065,6.054 9.1143465,4.94296 8.2160065,4.03494 C 7.6282465,3.4465 6.9007265,2.94535 6.0649765,2.81624 C 5.3237266,2.70142 4.5304666,2.87571 3.9356966,3.34384 C 3.2136565,3.90519 2.7654365,4.75625 2.5438365,5.63289 C 2.3053765,6.59995 2.2959765,7.61358 2.4292165,8.5973 C 2.6464465,10.15587 3.2689665,11.63258 4.0815466,12.96908 C 3.2924465,12.96908 2.5033465,12.96908 1.7142465,12.96908 C 0.89724651,11.48481 0.25799651,9.87299 0.060256514,8.17899 C -0.071203486,7.00695 0.0037165138,5.79903 0.37149651,4.67421 C 0.76442651,3.47499 1.5195865,2.3932 2.5232565,1.6304 C 3.2809665,1.05478 4.2059366,0.71268 5.1519466,0.63781 C 6.1938265,0.54496 7.2610465,0.74619 8.1909265,1.22976 C 9.3998665,1.85021 10.363677,2.85944 11.145277,3.95766 C 12.190347,5.44147 12.965067,7.10101 13.584287,8.80382 C 14.630766,11.7176 15.212626,14.77861 15.575146,17.84795 C 15.664836,18.61648 15.739556,19.38675 15.801446,20.15803 C 15.933606,20.15803 16.065776,20.15803 16.197936,20.15803 C 16.431516,16.78332 16.919066,13.40761 17.920236,10.17029 C 18.536746,8.19886 19.343216,6.2733 20.460106,4.53209 C 21.232966,3.34246 22.178396,2.22691 23.393236,1.47473 C 24.303946,0.906 25.375406,0.59315 26.449836,0.61744 C 27.406076,0.6265 28.366336,0.88414 29.173386,1.40571 C 29.918276,1.88417 30.536726,2.54825 31.007306,3.29688 C 31.640376,4.30981 31.942786,5.5036 31.990526,6.69149 C 32.064366,8.24898 31.700306,9.79841 31.118136,11.23409 C 30.878056,11.82774 30.600746,12.40584 30.296796,12.96908 C 29.503806,12.96908 28.710826,12.96908 27.917836,12.96908 C 28.695646,11.56825 29.330906,10.06044 29.565756,8.46485 C 29.705436,7.49053 29.689976,6.48739 29.469736,5.52616 C 29.266586,4.67296 28.870956,3.83354 28.201276,3.25079 C 27.718386,2.82263 27.078466,2.59021 26.436216,2.58446 C 25.680306,2.56059 24.950086,2.87303 24.358336,3.32879 C 23.494556,3.99307 22.844986,4.89198 22.282956,5.81679 C 21.451756,7.21072 20.811436,8.71018 20.250396,10.23124 C 19.437586,12.49802 18.893326,14.85166 18.440286,17.21432 C 17.839016,20.40325 17.413216,23.6291 17.246136,26.8715 C 17.183796,28.01857 17.173966,29.16745 17.177516,30.31595 C 17.177516,30.54397 17.177516,30.77198 17.177516,31 C 16.396186,31 15.614856,31 14.833536,31 z"
@@ -314,7 +485,7 @@
314
485
  style="fill: $zodiac_color_11"
315
486
  />
316
487
  </symbol>
317
- <!-- Aspects 12x12 -->
488
+ <!-- Aspects 12x12 -->
318
489
  <symbol id="orb0">
319
490
  <path
320
491
  d="M 6.0697539,7.3234852 C 6.0697539,8.7354882 4.9173651,9.8801442 3.4958214,9.8801442 C 2.0742775,9.8801442 0.92188857,8.7354882 0.92188857,7.3234852 C 0.92188857,5.9114822 2.0742775,4.7668272 3.4958214,4.7668272 C 4.9173651,4.7668272 6.0697539,5.9114822 6.0697539,7.3234852 L 6.0697539,7.3234852 z M 5.6252609,5.2113202 C 10.07019,0.76639018 10.07019,0.76639018 10.07019,0.76639018"
@@ -512,7 +683,7 @@
512
683
  "
513
684
  />
514
685
  </symbol>
515
- <!-- retrograde symbol (12x12) -->
686
+ <!-- retrograde symbol (12x12) -->
516
687
  <symbol id="retrograde">
517
688
  <path
518
689
  d="M 5.1695089,0.06514307 C 3.7597989,0.21597207 2.3317349,0.33149007 0.91358191,0.23513107 C 1.5490329,0.81902207 1.4024849,1.7100011 1.4228379,2.4700431 C 1.4174159,5.2174481 1.4337709,7.9652731 1.4145019,10.712411 C 1.5149409,11.170848 0.96799791,11.834471 0.90284691,11.964302 C 1.9976889,11.964302 3.0925299,11.964302 4.1873719,11.964302 C 3.6018439,11.577975 3.6510929,10.820034 3.6417399,10.219838 C 3.6417399,8.8974601 3.6417399,7.5750831 3.6417399,6.2527051 C 4.5026259,7.3972911 5.3635109,8.5418771 6.2243959,9.6864631 C 5.6030699,10.013049 5.0721439,10.497354 4.3692489,10.672393 C 4.5753769,10.955706 4.7815039,11.23902 4.9876319,11.522333 C 5.4939219,11.018036 6.1426389,10.672218 6.7336529,10.264421 C 7.3897039,11.216912 8.4697479,12.048392 9.7419399,12.011579 C 10.143603,12.002199 11.067691,11.885824 11.063775,11.676075 C 9.9004969,11.128054 9.0018849,10.179085 8.4069229,9.1085041 C 8.9670439,8.6756641 9.5056289,8.1870051 10.177382,7.9086731 C 10.419881,7.8661501 10.031668,7.5763571 9.9815039,7.4190951 C 9.7896089,6.9062931 9.6214379,7.4694661 9.2950839,7.6239451 C 8.8453989,7.8927681 8.3078839,8.3646011 7.8614459,8.4454351 C 7.2551369,7.5898671 6.6488279,6.7342991 6.0425199,5.8787321 C 7.2451939,5.6174351 8.5827839,5.0853891 9.0704409,3.9368981 C 9.4063139,3.1120211 9.2637339,2.1667931 8.9107889,1.3734701 C 8.1684869,0.41091107 6.8692049,-0.072451931 5.6199729,0.02510607 C 5.4693279,0.03287207 5.3190519,0.04651007 5.1695089,0.06514307 L 5.1695089,0.06514307 z M 4.0054949,0.98307806 C 4.9274209,0.87516007 6.0752839,0.95659406 6.6119469,1.7769821 C 7.1995489,2.7436231 6.9771779,4.0277241 6.2388859,4.8694001 C 5.6053289,5.5549031 4.5521059,5.6780771 3.6417399,5.5727531 C 3.6417399,4.0655271 3.6417399,2.5583001 3.6417399,1.0510731 C 3.7629919,1.0284081 3.8842429,1.0057431 4.0054949,0.98307806 z"
@@ -79,6 +79,17 @@
79
79
  --kerykeion-chart-color-vertex: #52064e;
80
80
  --kerykeion-chart-color-east-point: #482b7f;
81
81
  --kerykeion-chart-color-eris: #800000;
82
+ --kerykeion-chart-color-earth: #6a2d04;
83
+ --kerykeion-chart-color-pholus: #5a5a5a;
84
+ --kerykeion-chart-color-sedna: #b8860b;
85
+ --kerykeion-chart-color-haumea: #8b4513;
86
+ --kerykeion-chart-color-makemake: #a0522d;
87
+ --kerykeion-chart-color-ixion: #556b2f;
88
+ --kerykeion-chart-color-orcus: #2f4f4f;
89
+ --kerykeion-chart-color-quaoar: #8a2be2;
90
+ --kerykeion-chart-color-regulus: #ffd700;
91
+ --kerykeion-chart-color-spica: #87ceeb;
92
+ --kerykeion-chart-color-anti-vertex: #4b0082;
82
93
 
83
94
  /* Arab Parts */
84
95
  --kerykeion-chart-color-pars-spiritus: #095242;
@@ -107,6 +107,17 @@
107
107
  --kerykeion-chart-color-vertex: var(--kerykeion-color-secondary);
108
108
  --kerykeion-chart-color-east-point: var(--kerykeion-color-primary);
109
109
  --kerykeion-chart-color-eris: var(--kerykeion-color-error);
110
+ --kerykeion-chart-color-earth: var(--kerykeion-color-warning);
111
+ --kerykeion-chart-color-pholus: var(--kerykeion-color-secondary);
112
+ --kerykeion-chart-color-sedna: var(--kerykeion-color-warning);
113
+ --kerykeion-chart-color-haumea: var(--kerykeion-color-accent);
114
+ --kerykeion-chart-color-makemake: var(--kerykeion-color-primary);
115
+ --kerykeion-chart-color-ixion: var(--kerykeion-color-secondary);
116
+ --kerykeion-chart-color-orcus: var(--kerykeion-color-accent);
117
+ --kerykeion-chart-color-quaoar: var(--kerykeion-color-primary);
118
+ --kerykeion-chart-color-regulus: var(--kerykeion-color-warning);
119
+ --kerykeion-chart-color-spica: var(--kerykeion-color-accent);
120
+ --kerykeion-chart-color-anti-vertex: var(--kerykeion-color-secondary);
110
121
 
111
122
  /* Arab Parts */
112
123
  --kerykeion-chart-color-pars-spiritus: var(--kerykeion-color-success);
@@ -108,6 +108,17 @@
108
108
  --kerykeion-chart-color-vertex: var(--kerykeion-color-secondary);
109
109
  --kerykeion-chart-color-east-point: var(--kerykeion-color-primary);
110
110
  --kerykeion-chart-color-eris: var(--kerykeion-color-error);
111
+ --kerykeion-chart-color-earth: var(--kerykeion-color-warning);
112
+ --kerykeion-chart-color-pholus: var(--kerykeion-color-secondary);
113
+ --kerykeion-chart-color-sedna: var(--kerykeion-color-warning);
114
+ --kerykeion-chart-color-haumea: var(--kerykeion-color-accent);
115
+ --kerykeion-chart-color-makemake: var(--kerykeion-color-primary);
116
+ --kerykeion-chart-color-ixion: var(--kerykeion-color-secondary);
117
+ --kerykeion-chart-color-orcus: var(--kerykeion-color-accent);
118
+ --kerykeion-chart-color-quaoar: var(--kerykeion-color-primary);
119
+ --kerykeion-chart-color-regulus: var(--kerykeion-color-warning);
120
+ --kerykeion-chart-color-spica: var(--kerykeion-color-accent);
121
+ --kerykeion-chart-color-anti-vertex: var(--kerykeion-color-secondary);
111
122
 
112
123
  /* Arab Parts */
113
124
  --kerykeion-chart-color-pars-spiritus: var(--kerykeion-color-success);
@@ -108,6 +108,17 @@
108
108
  --kerykeion-chart-color-vertex: var(--kerykeion-color-secondary);
109
109
  --kerykeion-chart-color-east-point: var(--kerykeion-color-primary);
110
110
  --kerykeion-chart-color-eris: var(--kerykeion-color-error);
111
+ --kerykeion-chart-color-earth: var(--kerykeion-color-warning);
112
+ --kerykeion-chart-color-pholus: var(--kerykeion-color-secondary);
113
+ --kerykeion-chart-color-sedna: var(--kerykeion-color-warning);
114
+ --kerykeion-chart-color-haumea: var(--kerykeion-color-accent);
115
+ --kerykeion-chart-color-makemake: var(--kerykeion-color-primary);
116
+ --kerykeion-chart-color-ixion: var(--kerykeion-color-secondary);
117
+ --kerykeion-chart-color-orcus: var(--kerykeion-color-accent);
118
+ --kerykeion-chart-color-quaoar: var(--kerykeion-color-primary);
119
+ --kerykeion-chart-color-regulus: var(--kerykeion-color-warning);
120
+ --kerykeion-chart-color-spica: var(--kerykeion-color-accent);
121
+ --kerykeion-chart-color-anti-vertex: var(--kerykeion-color-secondary);
111
122
 
112
123
  /* Arab Parts */
113
124
  --kerykeion-chart-color-pars-spiritus: var(--kerykeion-color-success);
@@ -107,6 +107,16 @@
107
107
  --kerykeion-chart-color-east-point: var(--kerykeion-color-primary);
108
108
  --kerykeion-chart-color-eris: var(--kerykeion-color-error);
109
109
  --kerykeion-chart-color-earth: var(--kerykeion-color-warning);
110
+ --kerykeion-chart-color-pholus: var(--kerykeion-color-secondary);
111
+ --kerykeion-chart-color-sedna: var(--kerykeion-color-warning);
112
+ --kerykeion-chart-color-haumea: var(--kerykeion-color-accent);
113
+ --kerykeion-chart-color-makemake: var(--kerykeion-color-primary);
114
+ --kerykeion-chart-color-ixion: var(--kerykeion-color-secondary);
115
+ --kerykeion-chart-color-orcus: var(--kerykeion-color-accent);
116
+ --kerykeion-chart-color-quaoar: var(--kerykeion-color-primary);
117
+ --kerykeion-chart-color-regulus: var(--kerykeion-color-warning);
118
+ --kerykeion-chart-color-spica: var(--kerykeion-color-accent);
119
+ --kerykeion-chart-color-anti-vertex: var(--kerykeion-color-secondary);
110
120
 
111
121
  /* Arab Parts */
112
122
  --kerykeion-chart-color-pars-spiritus: var(--kerykeion-color-success);
@@ -23,7 +23,7 @@ Classes:
23
23
 
24
24
  Dependencies:
25
25
  - AstrologicalSubjectFactory: For working with individual astrological subjects
26
- - Various kr_types modules: For type definitions and models
26
+ - Various schemas modules: For type definitions and models
27
27
  - utilities module: For astrological calculations and helper functions
28
28
 
29
29
  Example Usage:
@@ -42,9 +42,9 @@ from typing import Union
42
42
 
43
43
  # Fix the circular import by changing this import
44
44
  from kerykeion.astrological_subject_factory import AstrologicalSubjectFactory
45
- from kerykeion.kr_types.kerykeion_exception import KerykeionException
46
- from kerykeion.kr_types.kr_models import CompositeSubjectModel, AstrologicalSubjectModel
47
- from kerykeion.kr_types.kr_literals import ZodiacType, PerspectiveType, HousesSystemIdentifier, SiderealMode, AstrologicalPoint, Houses, CompositeChartType
45
+ from kerykeion.schemas.kerykeion_exception import KerykeionException
46
+ from kerykeion.schemas.kr_models import CompositeSubjectModel, AstrologicalSubjectModel
47
+ from kerykeion.schemas.kr_literals import ZodiacType, PerspectiveType, HousesSystemIdentifier, SiderealMode, AstrologicalPoint, Houses, CompositeChartType
48
48
  from kerykeion.utilities import (
49
49
  get_kerykeion_point_from_degree,
50
50
  get_planet_house,
@@ -25,7 +25,7 @@ Classes:
25
25
  Dependencies:
26
26
  - kerykeion.AstrologicalSubjectFactory: For creating astrological subjects
27
27
  - kerykeion.utilities: For house and planetary data extraction
28
- - kerykeion.kr_types: For type definitions and model structures
28
+ - kerykeion.schemas: For type definitions and model structures
29
29
  - datetime: For date/time handling
30
30
  - logging: For performance warnings
31
31
 
@@ -47,11 +47,11 @@ License: AGPL-3.0
47
47
  """
48
48
 
49
49
  from kerykeion import AstrologicalSubjectFactory
50
- from kerykeion.kr_types.kr_models import AstrologicalSubjectModel
50
+ from kerykeion.schemas.kr_models import AstrologicalSubjectModel
51
51
  from kerykeion.utilities import get_houses_list, get_available_astrological_points_list
52
52
  from kerykeion.astrological_subject_factory import DEFAULT_HOUSES_SYSTEM_IDENTIFIER, DEFAULT_PERSPECTIVE_TYPE, DEFAULT_ZODIAC_TYPE
53
- from kerykeion.kr_types import EphemerisDictModel
54
- from kerykeion.kr_types import SiderealMode, HousesSystemIdentifier, PerspectiveType, ZodiacType
53
+ from kerykeion.schemas import EphemerisDictModel
54
+ from kerykeion.schemas import SiderealMode, HousesSystemIdentifier, PerspectiveType, ZodiacType
55
55
  from datetime import datetime, timedelta
56
56
  from typing import Literal, Union, List
57
57
  import logging
@@ -279,7 +279,8 @@ class EphemerisDataFactory:
279
279
  ephemeris_data_list.append({"date": date.isoformat(), "planets": available_planets, "houses": houses_list})
280
280
 
281
281
  if as_model:
282
- return [EphemerisDictModel(**data) for data in ephemeris_data_list]
282
+ # Type narrowing: at this point, the dict structure matches EphemerisDictModel
283
+ return [EphemerisDictModel(date=data["date"], planets=data["planets"], houses=data["houses"]) for data in ephemeris_data_list] # type: ignore
283
284
 
284
285
  return ephemeris_data_list
285
286
 
@@ -385,14 +386,14 @@ class EphemerisDataFactory:
385
386
  )
386
387
 
387
388
  if as_model:
388
- subjects_list.append(subject.model())
389
+ subjects_list.append(subject)
389
390
  else:
390
391
  subjects_list.append(subject)
391
392
 
392
393
  return subjects_list
393
394
 
394
395
 
395
- if "__main__" == __name__:
396
+ if __name__ == "__main__":
396
397
  start_date = datetime.fromisoformat("2020-01-01")
397
398
  end_date = datetime.fromisoformat("2020-01-03")
398
399
 
@@ -422,10 +423,12 @@ if "__main__" == __name__:
422
423
 
423
424
  # Example of accessing more data from the first subject
424
425
  first_subject = subjects[0]
425
- print(f"Sun sign: {first_subject.sun['sign']}")
426
+ if first_subject.sun is not None:
427
+ print(f"Sun sign: {first_subject.sun['sign']}")
426
428
 
427
429
  # Compare sun positions from both methods
428
430
  for i in range(min(3, len(subjects))):
429
431
  print(f"Date: {ephemeris_data[i].date}")
430
- print(f"Sun position from dict: {ephemeris_data[i].planets[0]['abs_pos']}")
432
+ if len(ephemeris_data[i].planets) > 0:
433
+ print(f"Sun position from dict: {ephemeris_data[i].planets[0]['abs_pos']}")
431
434
  print("---")
@@ -1,9 +1,6 @@
1
1
 
2
2
  from .house_comparison_factory import HouseComparisonFactory
3
- from .house_comparison_models import HouseComparisonModel, PointInHouseModel
4
3
 
5
4
  __all__ = [
6
5
  "HouseComparisonFactory",
7
- "HouseComparisonModel",
8
- "PointInHouseModel",
9
6
  ]
@@ -12,10 +12,10 @@ License: AGPL-3.0
12
12
  from kerykeion.house_comparison.house_comparison_utils import calculate_points_in_reciprocal_houses
13
13
  from typing import Union
14
14
  from kerykeion.settings.config_constants import DEFAULT_ACTIVE_POINTS
15
- from kerykeion.house_comparison.house_comparison_models import HouseComparisonModel
15
+ from kerykeion.schemas.kr_models import HouseComparisonModel
16
16
  from kerykeion.astrological_subject_factory import AstrologicalSubjectFactory
17
- from kerykeion.kr_types import AstrologicalSubjectModel, PlanetReturnModel
18
- from kerykeion.kr_types.kr_literals import AstrologicalPoint
17
+ from kerykeion.schemas import AstrologicalSubjectModel, PlanetReturnModel
18
+ from kerykeion.schemas.kr_literals import AstrologicalPoint
19
19
 
20
20
 
21
21
  class HouseComparisonFactory:
@@ -10,11 +10,10 @@ Copyright: (C) 2025 Kerykeion Project
10
10
  License: AGPL-3.0
11
11
  """
12
12
 
13
- from kerykeion.kr_types.kr_models import AstrologicalSubjectModel, PlanetReturnModel
14
- from kerykeion.kr_types.kr_literals import AstrologicalPoint
13
+ from kerykeion.schemas.kr_models import AstrologicalSubjectModel, PlanetReturnModel, PointInHouseModel
14
+ from kerykeion.schemas.kr_literals import AstrologicalPoint
15
15
  from kerykeion.settings.config_constants import DEFAULT_ACTIVE_POINTS
16
16
  from kerykeion.utilities import get_planet_house, get_house_number
17
- from kerykeion.house_comparison.house_comparison_models import PointInHouseModel
18
17
  from typing import Union
19
18
 
20
19
 
@@ -47,7 +46,7 @@ def calculate_points_in_reciprocal_houses(
47
46
 
48
47
  Example:
49
48
  >>> points_in_houses = calculate_points_in_reciprocal_houses(
50
- ... natal_chart, partner_chart, [AstrologicalPoint.SUN, AstrologicalPoint.MOON]
49
+ ... natal_chart, partner_chart, ["Sun", "Moon"]
51
50
  ... )
52
51
  >>> sun_placement = points_in_houses[0] # Assuming Sun is first
53
52
  >>> print(f"Sun falls in house: {sun_placement.projected_house_name}")
@@ -33,7 +33,7 @@ Dependencies:
33
33
  - kerykeion.AstrologicalSubjectFactory: For creating complete chart data
34
34
  - kerykeion.fetch_geonames: For online location data retrieval
35
35
  - kerykeion.utilities: For date/time conversions and astronomical functions
36
- - kerykeion.kr_types: For type definitions and model structures
36
+ - kerykeion.schemas: For type definitions and model structures
37
37
 
38
38
  Example:
39
39
  Basic Solar Return calculation for a specific year:
@@ -73,7 +73,7 @@ import swisseph as swe
73
73
  from datetime import datetime, timezone
74
74
  from typing import Union
75
75
 
76
- from kerykeion.kr_types import KerykeionException
76
+ from kerykeion.schemas import KerykeionException
77
77
  from kerykeion.fetch_geonames import FetchGeonames
78
78
  from kerykeion.utilities import julian_to_datetime, datetime_to_julian
79
79
  from kerykeion.astrological_subject_factory import (
@@ -82,8 +82,8 @@ from kerykeion.astrological_subject_factory import (
82
82
  DEFAULT_GEONAMES_USERNAME,
83
83
  )
84
84
  from kerykeion.astrological_subject_factory import AstrologicalSubjectFactory
85
- from kerykeion.kr_types.kr_literals import ReturnType
86
- from kerykeion.kr_types.kr_models import PlanetReturnModel, AstrologicalSubjectModel
85
+ from kerykeion.schemas.kr_literals import ReturnType
86
+ from kerykeion.schemas.kr_models import PlanetReturnModel, AstrologicalSubjectModel
87
87
 
88
88
 
89
89
  class PlanetaryReturnFactory:
@@ -486,11 +486,15 @@ class PlanetaryReturnFactory:
486
486
 
487
487
  return_julian_date = None
488
488
  if return_type == "Solar":
489
+ if self.subject.sun is None:
490
+ raise KerykeionException("Sun position is required for Solar return but is not available in the subject.")
489
491
  return_julian_date = swe.solcross_ut(
490
492
  self.subject.sun.abs_pos,
491
493
  julian_day,
492
494
  )
493
495
  elif return_type == "Lunar":
496
+ if self.subject.moon is None:
497
+ raise KerykeionException("Moon position is required for Lunar return but is not available in the subject.")
494
498
  return_julian_date = swe.mooncross_ut(
495
499
  self.subject.moon.abs_pos,
496
500
  julian_day,
@@ -44,8 +44,8 @@ License: AGPL-3.0
44
44
  from kerykeion import AstrologicalSubjectFactory
45
45
  from kerykeion.aspects import AspectsFactory
46
46
  import logging
47
- from kerykeion.kr_types.kr_models import AstrologicalSubjectModel, RelationshipScoreAspectModel, RelationshipScoreModel
48
- from kerykeion.kr_types.kr_literals import RelationshipScoreDescription
47
+ from kerykeion.schemas.kr_models import AstrologicalSubjectModel, RelationshipScoreAspectModel, RelationshipScoreModel
48
+ from kerykeion.schemas.kr_literals import RelationshipScoreDescription
49
49
 
50
50
  # Scoring constants
51
51
  DESTINY_SIGN_POINTS = 5
@@ -105,7 +105,7 @@ class RelationshipScoreFactory:
105
105
 
106
106
  self.score_value = 0
107
107
  self.relationship_score_description: RelationshipScoreDescription = "Minimal"
108
- self.is_destiny_sign = True
108
+ self.is_destiny_sign = False
109
109
  self.relationship_score_aspects: list[RelationshipScoreAspectModel] = []
110
110
  self._synastry_aspects = AspectsFactory.dual_chart_aspects(self.first_subject, self.second_subject).all_aspects
111
111