kerykeion 5.1.1__tar.gz → 5.1.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of kerykeion might be problematic. Click here for more details.

Files changed (246) hide show
  1. {kerykeion-5.1.1 → kerykeion-5.1.3}/PKG-INFO +1 -1
  2. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/charts/charts_utils.py +98 -71
  3. {kerykeion-5.1.1 → kerykeion-5.1.3}/pyproject.toml +1 -1
  4. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/Albert Einstein - Natal Chart.svg +3 -3
  5. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/Amitabh Bachchan - Natal Chart.svg +2 -2
  6. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/Angelina Jolie and Brad Pitt Composite Chart - Black and White Theme - Composite Chart.svg +2 -2
  7. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/Angelina Jolie and Brad Pitt Composite Chart - Composite Chart.svg +2 -2
  8. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/Antonio Banderas - Natal Chart.svg +3 -3
  9. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/Cristiano Ronaldo - Natal Chart.svg +3 -3
  10. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/Hua Chenyu - Natal Chart.svg +3 -3
  11. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/Jeanne Moreau - Natal Chart.svg +2 -2
  12. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - All Active Points - Natal Chart.svg +3 -3
  13. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - Black and White Theme - DualReturnChart Chart - Solar Return.svg +3 -3
  14. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - Black and White Theme - Natal Chart.svg +3 -3
  15. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - Black and White Theme - Transit Chart.svg +3 -3
  16. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - Dark High Contrast Theme - Natal Chart.svg +3 -3
  17. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - Dark Theme - Natal Chart.svg +3 -3
  18. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - Dark Theme External - Natal Chart.svg +3 -3
  19. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - DualReturnChart Chart - Lunar Return.svg +3 -3
  20. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - DualReturnChart Chart - Solar Return.svg +3 -3
  21. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - ExternalNatal - Natal Chart.svg +3 -3
  22. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - Heliocentric - Natal Chart.svg +2 -2
  23. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - House System Morinus - Natal Chart.svg +3 -3
  24. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - Light Theme - Natal Chart.svg +3 -3
  25. kerykeion-5.1.3/tests/charts/svg/John Lennon - Minified - Natal Chart.svg +1 -0
  26. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - Natal Chart.svg +3 -3
  27. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - TCWTG - Transit Chart.svg +3 -3
  28. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - Topocentric - Natal Chart.svg +3 -3
  29. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - Transit Chart.svg +3 -3
  30. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - Transparent Background - Natal Chart.svg +3 -3
  31. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - True Geocentric - Natal Chart.svg +3 -3
  32. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon DeLuce - Natal Chart.svg +3 -3
  33. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon Fagan-Bradley - Natal Chart.svg +3 -3
  34. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon J2000 - Natal Chart.svg +3 -3
  35. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon Lahiri - Natal Chart.svg +3 -3
  36. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon Lunar Return - SingleReturnChart Chart.svg +2 -2
  37. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon Solar Return - Black and White Theme - SingleReturnChart Chart.svg +3 -3
  38. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon Solar Return - SingleReturnChart Chart.svg +3 -3
  39. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/Kanye - Natal Chart.svg +3 -3
  40. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/Mehmet Oz - Natal Chart.svg +3 -3
  41. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/Mikhail Bulgakov - Natal Chart.svg +2 -2
  42. kerykeion-5.1.3/tests/charts/svg/Moon Phases.svg +102 -0
  43. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/Sophia Loren - Natal Chart.svg +3 -3
  44. kerykeion-5.1.3/tests/charts/test_lunar_phase_svg.py +51 -0
  45. kerykeion-5.1.1/tests/charts/svg/John Lennon - Minified - Natal Chart.svg +0 -1
  46. {kerykeion-5.1.1 → kerykeion-5.1.3}/.coveragerc +0 -0
  47. {kerykeion-5.1.1 → kerykeion-5.1.3}/.github/FUNDING.yml +0 -0
  48. {kerykeion-5.1.1 → kerykeion-5.1.3}/.gitignore +0 -0
  49. {kerykeion-5.1.1 → kerykeion-5.1.3}/CHANGELOG.md +0 -0
  50. {kerykeion-5.1.1 → kerykeion-5.1.3}/DEVELOPMENT.md +0 -0
  51. {kerykeion-5.1.1 → kerykeion-5.1.3}/LICENSE +0 -0
  52. {kerykeion-5.1.1 → kerykeion-5.1.3}/MANIFEST.in +0 -0
  53. {kerykeion-5.1.1 → kerykeion-5.1.3}/README.md +0 -0
  54. {kerykeion-5.1.1 → kerykeion-5.1.3}/TODO.md +0 -0
  55. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/index.html +0 -0
  56. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/kerykeion/aspects/aspects_utils.html +0 -0
  57. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/kerykeion/aspects/natal_aspects.html +0 -0
  58. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/kerykeion/aspects/synastry_aspects.html +0 -0
  59. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/kerykeion/aspects/transits_time_range.html +0 -0
  60. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/kerykeion/aspects.html +0 -0
  61. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/kerykeion/astrological_subject.html +0 -0
  62. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/kerykeion/charts/charts_utils.html +0 -0
  63. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/kerykeion/charts/draw_planets.html +0 -0
  64. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/kerykeion/charts/kerykeion_chart_svg.html +0 -0
  65. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/kerykeion/charts.html +0 -0
  66. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/kerykeion/composite_subject_factory.html +0 -0
  67. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/kerykeion/enums.html +0 -0
  68. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/kerykeion/ephemeris_data.html +0 -0
  69. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/kerykeion/fetch_geonames.html +0 -0
  70. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/kerykeion/kr_types/chart_types.html +0 -0
  71. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/kerykeion/kr_types/kerykeion_exception.html +0 -0
  72. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/kerykeion/kr_types/kr_literals.html +0 -0
  73. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/kerykeion/kr_types/kr_models.html +0 -0
  74. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/kerykeion/kr_types/settings_models.html +0 -0
  75. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/kerykeion/kr_types.html +0 -0
  76. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/kerykeion/relationship_score/relationship_score.html +0 -0
  77. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/kerykeion/relationship_score/relationship_score_factory.html +0 -0
  78. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/kerykeion/relationship_score.html +0 -0
  79. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/kerykeion/report.html +0 -0
  80. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/kerykeion/settings/config_constants.html +0 -0
  81. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/kerykeion/settings/kerykeion_settings.html +0 -0
  82. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/kerykeion/settings.html +0 -0
  83. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/kerykeion/transits_time_range.html +0 -0
  84. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/kerykeion/utilities.html +0 -0
  85. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/kerykeion.html +0 -0
  86. {kerykeion-5.1.1 → kerykeion-5.1.3}/docs/search.js +0 -0
  87. {kerykeion-5.1.1 → kerykeion-5.1.3}/examples/aspects_synastry.py +0 -0
  88. {kerykeion-5.1.1 → kerykeion-5.1.3}/examples/composite_report_example.py +0 -0
  89. {kerykeion-5.1.1 → kerykeion-5.1.3}/examples/current_time_report.py +0 -0
  90. {kerykeion-5.1.1 → kerykeion-5.1.3}/examples/dual_return_report_example.py +0 -0
  91. {kerykeion-5.1.1 → kerykeion-5.1.3}/examples/natal_report_example.py +0 -0
  92. {kerykeion-5.1.1 → kerykeion-5.1.3}/examples/planetary_return.py +0 -0
  93. {kerykeion-5.1.1 → kerykeion-5.1.3}/examples/quickstart_natal_chart.py +0 -0
  94. {kerykeion-5.1.1 → kerykeion-5.1.3}/examples/solar_return_report_example.py +0 -0
  95. {kerykeion-5.1.1 → kerykeion-5.1.3}/examples/subject_report_example.py +0 -0
  96. {kerykeion-5.1.1 → kerykeion-5.1.3}/examples/synastry_report_example.py +0 -0
  97. {kerykeion-5.1.1 → kerykeion-5.1.3}/examples/transit_report_example.py +0 -0
  98. {kerykeion-5.1.1 → kerykeion-5.1.3}/examples/transits_time_range.py +0 -0
  99. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/__init__.py +0 -0
  100. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/aspects/__init__.py +0 -0
  101. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/aspects/aspects_factory.py +0 -0
  102. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/aspects/aspects_utils.py +0 -0
  103. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/astrological_subject_factory.py +0 -0
  104. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/backword.py +0 -0
  105. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/chart_data_factory.py +0 -0
  106. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/charts/__init__.py +0 -0
  107. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/charts/chart_drawer.py +0 -0
  108. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/charts/draw_planets.py +0 -0
  109. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/charts/templates/aspect_grid_only.xml +0 -0
  110. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/charts/templates/chart.xml +0 -0
  111. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/charts/templates/wheel_only.xml +0 -0
  112. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/charts/themes/black-and-white.css +0 -0
  113. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/charts/themes/classic.css +0 -0
  114. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/charts/themes/dark-high-contrast.css +0 -0
  115. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/charts/themes/dark.css +0 -0
  116. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/charts/themes/light.css +0 -0
  117. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/charts/themes/strawberry.css +0 -0
  118. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/composite_subject_factory.py +0 -0
  119. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/ephemeris_data_factory.py +0 -0
  120. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/fetch_geonames.py +0 -0
  121. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/house_comparison/__init__.py +0 -0
  122. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/house_comparison/house_comparison_factory.py +0 -0
  123. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/house_comparison/house_comparison_utils.py +0 -0
  124. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/kr_types/__init__.py +0 -0
  125. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/kr_types/chart_template_model.py +0 -0
  126. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/kr_types/kerykeion_exception.py +0 -0
  127. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/kr_types/kr_literals.py +0 -0
  128. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/kr_types/kr_models.py +0 -0
  129. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/kr_types/settings_models.py +0 -0
  130. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/planetary_return_factory.py +0 -0
  131. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/relationship_score_factory.py +0 -0
  132. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/report.py +0 -0
  133. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/schemas/__init__.py +0 -0
  134. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/schemas/chart_template_model.py +0 -0
  135. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/schemas/kerykeion_exception.py +0 -0
  136. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/schemas/kr_literals.py +0 -0
  137. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/schemas/kr_models.py +0 -0
  138. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/schemas/settings_models.py +0 -0
  139. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/settings/__init__.py +0 -0
  140. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/settings/chart_defaults.py +0 -0
  141. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/settings/config_constants.py +0 -0
  142. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/settings/kerykeion_settings.py +0 -0
  143. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/settings/translation_strings.py +0 -0
  144. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/settings/translations.py +0 -0
  145. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/sweph/README.md +0 -0
  146. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/sweph/ast136/s136108s.se1 +0 -0
  147. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/sweph/ast136/s136199s.se1 +0 -0
  148. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/sweph/ast136/s136472s.se1 +0 -0
  149. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/sweph/ast28/se28978s.se1 +0 -0
  150. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/sweph/ast50/se50000s.se1 +0 -0
  151. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/sweph/ast90/se90377s.se1 +0 -0
  152. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/sweph/ast90/se90482s.se1 +0 -0
  153. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/sweph/seas_18.se1 +0 -0
  154. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/sweph/sefstars.txt +0 -0
  155. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/transits_time_range_factory.py +0 -0
  156. {kerykeion-5.1.1 → kerykeion-5.1.3}/kerykeion/utilities.py +0 -0
  157. {kerykeion-5.1.1 → kerykeion-5.1.3}/release_notes/V4.14.0.md +0 -0
  158. {kerykeion-5.1.1 → kerykeion-5.1.3}/release_notes/V4.16.0.md +0 -0
  159. {kerykeion-5.1.1 → kerykeion-5.1.3}/release_notes/V4.17.0.md +0 -0
  160. {kerykeion-5.1.1 → kerykeion-5.1.3}/release_notes/V4.19.0.md +0 -0
  161. {kerykeion-5.1.1 → kerykeion-5.1.3}/release_notes/V4.21.0.md +0 -0
  162. {kerykeion-5.1.1 → kerykeion-5.1.3}/release_notes/V4.22.0.md +0 -0
  163. {kerykeion-5.1.1 → kerykeion-5.1.3}/release_notes/V4.23.0.md +0 -0
  164. {kerykeion-5.1.1 → kerykeion-5.1.3}/release_notes/V4.24.0.md +0 -0
  165. {kerykeion-5.1.1 → kerykeion-5.1.3}/release_notes/V4.25.0.md +0 -0
  166. {kerykeion-5.1.1 → kerykeion-5.1.3}/release_notes/V4.26.0.md +0 -0
  167. {kerykeion-5.1.1 → kerykeion-5.1.3}/release_notes/v5.0.0.md +0 -0
  168. {kerykeion-5.1.1 → kerykeion-5.1.3}/release_notes/v5.0.0a.md +0 -0
  169. {kerykeion-5.1.1 → kerykeion-5.1.3}/release_notes/v5.0.0b.md +0 -0
  170. {kerykeion-5.1.1 → kerykeion-5.1.3}/release_notes/v5.1.0.md +0 -0
  171. {kerykeion-5.1.1 → kerykeion-5.1.3}/scripts/README.md +0 -0
  172. {kerykeion-5.1.1 → kerykeion-5.1.3}/scripts/__init__.py +0 -0
  173. {kerykeion-5.1.1 → kerykeion-5.1.3}/scripts/quality_check.py +0 -0
  174. {kerykeion-5.1.1 → kerykeion-5.1.3}/scripts/regenerate_expected_aspects.py +0 -0
  175. {kerykeion-5.1.1 → kerykeion-5.1.3}/scripts/regenerate_synastry_aspects.py +0 -0
  176. {kerykeion-5.1.1 → kerykeion-5.1.3}/scripts/regenerate_synastry_from_test.py +0 -0
  177. {kerykeion-5.1.1 → kerykeion-5.1.3}/scripts/regenerate_test_charts.py +0 -0
  178. {kerykeion-5.1.1 → kerykeion-5.1.3}/scripts/test_markdown_snippets.py +0 -0
  179. {kerykeion-5.1.1 → kerykeion-5.1.3}/site-docs/aspects.md +0 -0
  180. {kerykeion-5.1.1 → kerykeion-5.1.3}/site-docs/astrological_subject_factory.md +0 -0
  181. {kerykeion-5.1.1 → kerykeion-5.1.3}/site-docs/chart_data_factory.md +0 -0
  182. {kerykeion-5.1.1 → kerykeion-5.1.3}/site-docs/charts.md +0 -0
  183. {kerykeion-5.1.1 → kerykeion-5.1.3}/site-docs/composite_subject_factory.md +0 -0
  184. {kerykeion-5.1.1 → kerykeion-5.1.3}/site-docs/element_quality_distribution.md +0 -0
  185. {kerykeion-5.1.1 → kerykeion-5.1.3}/site-docs/ephemeris_data_factory.md +0 -0
  186. {kerykeion-5.1.1 → kerykeion-5.1.3}/site-docs/house_comparison.md +0 -0
  187. {kerykeion-5.1.1 → kerykeion-5.1.3}/site-docs/planetary_return_factory.md +0 -0
  188. {kerykeion-5.1.1 → kerykeion-5.1.3}/site-docs/relationship_score_factory.md +0 -0
  189. {kerykeion-5.1.1 → kerykeion-5.1.3}/site-docs/report.md +0 -0
  190. {kerykeion-5.1.1 → kerykeion-5.1.3}/site-docs/transits_time_range_factory.md +0 -0
  191. {kerykeion-5.1.1 → kerykeion-5.1.3}/site-docs/utilities.md +0 -0
  192. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/__init__.py +0 -0
  193. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/aspects/__init__.py +0 -0
  194. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/aspects/expected_natal_aspects.py +0 -0
  195. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/aspects/expected_synastry_aspects.py +0 -0
  196. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/aspects/test_natal_aspects.py +0 -0
  197. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/aspects/test_synastry_aspects.py +0 -0
  198. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/__init__.py +0 -0
  199. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/compare_svg_lines.py +0 -0
  200. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - All Active Points - Natal Chart - Aspect Grid Only.svg +0 -0
  201. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - All Active Points - Natal Chart - Wheel Only.svg +0 -0
  202. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - All Active Points - Synastry Chart - Aspect Grid Only.svg +0 -0
  203. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - All Active Points - Synastry Chart - Grid.svg +0 -0
  204. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - All Active Points - Synastry Chart - List.svg +0 -0
  205. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - All Active Points - Synastry Chart - Wheel Only.svg +0 -0
  206. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - Aspect Grid Dark Synastry - Synastry Chart - Aspect Grid Only.svg +0 -0
  207. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - Aspect Grid Dark Theme - Natal Chart - Aspect Grid Only.svg +0 -0
  208. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - Aspect Grid Light Theme - Natal Chart - Aspect Grid Only.svg +0 -0
  209. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - Aspect Grid Only - Natal Chart - Aspect Grid Only.svg +0 -0
  210. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - Aspect Grid Synastry - Synastry Chart - Aspect Grid Only.svg +0 -0
  211. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - Aspect Grid Transit - Transit Chart - Aspect Grid Only.svg +0 -0
  212. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - Black and White Theme - Synastry Chart.svg +0 -0
  213. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - DTS - Synastry Chart.svg +0 -0
  214. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - SCTWL - Synastry Chart.svg +0 -0
  215. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - Wheel External Only - ExternalNatal Chart - Wheel Only.svg +0 -0
  216. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - Wheel Only - Natal Chart - Wheel Only.svg +0 -0
  217. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - Wheel Synastry Only - Synastry Chart - Wheel Only.svg +0 -0
  218. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon - Wheel Transit Only - Transit Chart - Wheel Only.svg +0 -0
  219. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon Fagan-Bradley - Light Theme - Natal Chart - Wheel Only.svg +0 -0
  220. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/svg/John Lennon Lahiri - Dark Theme - Natal Chart - Wheel Only.svg +0 -0
  221. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/test_charts.py +0 -0
  222. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/charts/test_draw_planets.py +0 -0
  223. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/settings/test_settings.py +0 -0
  224. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/test_all_active_points.py +0 -0
  225. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/test_astrological_subject.py +0 -0
  226. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/test_astrological_subject_jyotish.py +0 -0
  227. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/test_backward_compatibility.py +0 -0
  228. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/test_backword.py +0 -0
  229. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/test_chart_data_factory.py +0 -0
  230. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/test_chart_data_factory_complete.py +0 -0
  231. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/test_chart_drawer_complete.py +0 -0
  232. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/test_composite_subject_factory_complete.py +0 -0
  233. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/test_ephemeris_data.py +0 -0
  234. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/test_ephemeris_data_factory_complete.py +0 -0
  235. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/test_fetch_geonames.py +0 -0
  236. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/test_json_dump.py +0 -0
  237. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/test_planetary_return_factory_complete.py +0 -0
  238. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/test_relationship_score.py +0 -0
  239. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/test_relationship_score_factory_complete.py +0 -0
  240. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/test_report.py +0 -0
  241. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/test_transits_time_range_factory_complete.py +0 -0
  242. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/test_utc.py +0 -0
  243. {kerykeion-5.1.1 → kerykeion-5.1.3}/tests/test_utilities.py +0 -0
  244. {kerykeion-5.1.1 → kerykeion-5.1.3}/uv.lock +0 -0
  245. {kerykeion-5.1.1 → kerykeion-5.1.3}/workspace/README.md +0 -0
  246. {kerykeion-5.1.1 → kerykeion-5.1.3}/workspace/main.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kerykeion
3
- Version: 5.1.1
3
+ Version: 5.1.3
4
4
  Summary: A Python library for astrological calculations, including natal charts, houses, planetary aspects, and SVG chart generation.
5
5
  Project-URL: Homepage, https://www.kerykeion.net/
6
6
  Project-URL: Repository, https://github.com/g-battaglia/kerykeion
@@ -1023,65 +1023,34 @@ def draw_transit_aspect_list(
1023
1023
 
1024
1024
 
1025
1025
  def calculate_moon_phase_chart_params(
1026
- degrees_between_sun_and_moon: float,
1027
- latitude: float
1026
+ degrees_between_sun_and_moon: float
1028
1027
  ) -> dict:
1029
1028
  """
1030
- Calculate the parameters for the moon phase chart.
1029
+ Calculate normalized parameters used by the moon phase icon.
1031
1030
 
1032
1031
  Parameters:
1033
- - degrees_between_sun_and_moon (float): The degrees between the sun and the moon.
1034
- - latitude (float): The latitude for rotation calculation.
1032
+ - degrees_between_sun_and_moon (float): The elongation between the sun and moon.
1035
1033
 
1036
1034
  Returns:
1037
- - dict: The moon phase chart parameters.
1038
- """
1039
- deg = degrees_between_sun_and_moon
1040
-
1041
- # Initialize variables for lunar phase properties
1042
- circle_center_x = None
1043
- circle_radius = None
1044
-
1045
- # Determine lunar phase properties based on the degree
1046
- if deg < 90.0:
1047
- max_radius = deg
1048
- if deg > 80.0:
1049
- max_radius = max_radius * max_radius
1050
- circle_center_x = 20.0 + (deg / 90.0) * (max_radius + 10.0)
1051
- circle_radius = 10.0 + (deg / 90.0) * max_radius
1052
-
1053
- elif deg < 180.0:
1054
- max_radius = 180.0 - deg
1055
- if deg < 100.0:
1056
- max_radius = max_radius * max_radius
1057
- circle_center_x = 20.0 + ((deg - 90.0) / 90.0 * (max_radius + 10.0)) - (max_radius + 10.0)
1058
- circle_radius = 10.0 + max_radius - ((deg - 90.0) / 90.0 * max_radius)
1059
-
1060
- elif deg < 270.0:
1061
- max_radius = deg - 180.0
1062
- if deg > 260.0:
1063
- max_radius = max_radius * max_radius
1064
- circle_center_x = 20.0 + ((deg - 180.0) / 90.0 * (max_radius + 10.0))
1065
- circle_radius = 10.0 + ((deg - 180.0) / 90.0 * max_radius)
1066
-
1067
- elif deg < 361.0:
1068
- max_radius = 360.0 - deg
1069
- if deg < 280.0:
1070
- max_radius = max_radius * max_radius
1071
- circle_center_x = 20.0 + ((deg - 270.0) / 90.0 * (max_radius + 10.0)) - (max_radius + 10.0)
1072
- circle_radius = 10.0 + max_radius - ((deg - 270.0) / 90.0 * max_radius)
1073
-
1074
- else:
1075
- raise KerykeionException(f"Invalid degree value: {deg}")
1035
+ - dict: Normalized phase data (angle, illuminated fraction, shadow ellipse radius).
1036
+ """
1037
+ if not math.isfinite(degrees_between_sun_and_moon):
1038
+ raise KerykeionException(
1039
+ f"Invalid degree value: {degrees_between_sun_and_moon}"
1040
+ )
1076
1041
 
1042
+ phase_angle = degrees_between_sun_and_moon % 360.0
1043
+ radians = math.radians(phase_angle)
1044
+ cosine = math.cos(radians)
1045
+ illuminated_fraction = (1.0 - cosine) / 2.0
1077
1046
 
1078
- # Calculate rotation based on latitude
1079
- lunar_phase_rotate = -90.0 - latitude
1047
+ # Guard against floating point spillover outside [0, 1].
1048
+ illuminated_fraction = max(0.0, min(1.0, illuminated_fraction))
1080
1049
 
1081
1050
  return {
1082
- "circle_center_x": circle_center_x,
1083
- "circle_radius": circle_radius,
1084
- "lunar_phase_rotate": lunar_phase_rotate,
1051
+ "phase_angle": phase_angle,
1052
+ "illuminated_fraction": illuminated_fraction,
1053
+ "shadow_ellipse_rx": 10.0 * cosine,
1085
1054
  }
1086
1055
 
1087
1056
 
@@ -1697,34 +1666,92 @@ def makeLunarPhase(degrees_between_sun_and_moon: float, latitude: float) -> str:
1697
1666
 
1698
1667
  Parameters:
1699
1668
  - degrees_between_sun_and_moon (float): Angle between sun and moon in degrees
1700
- - latitude (float): Observer's latitude for correct orientation
1669
+ - latitude (float): Observer's latitude (no longer used, kept for backward compatibility)
1701
1670
 
1702
1671
  Returns:
1703
1672
  - str: SVG representation of lunar phase
1704
1673
  """
1705
- # Calculate parameters for the lunar phase visualization
1706
- params = calculate_moon_phase_chart_params(degrees_between_sun_and_moon, latitude)
1707
-
1708
- # Extract the calculated values
1709
- lunar_phase_circle_center_x = params["circle_center_x"]
1710
- lunar_phase_circle_radius = params["circle_radius"]
1711
- lunar_phase_rotate = params["lunar_phase_rotate"]
1712
-
1713
- # Generate the SVG for the lunar phase
1714
- svg = (
1715
- f'<g transform="rotate({lunar_phase_rotate} 20 10)">\n'
1716
- f' <defs>\n'
1717
- f' <clipPath id="moonPhaseCutOffCircle">\n'
1718
- f' <circle cx="20" cy="10" r="10" />\n'
1719
- f' </clipPath>\n'
1720
- f' </defs>\n'
1721
- f' <circle cx="20" cy="10" r="10" style="fill: var(--kerykeion-chart-color-lunar-phase-0)" />\n'
1722
- f' <circle cx="{lunar_phase_circle_center_x}" cy="10" r="{lunar_phase_circle_radius}" style="fill: var(--kerykeion-chart-color-lunar-phase-1)" clip-path="url(#moonPhaseCutOffCircle)" />\n'
1723
- f' <circle cx="20" cy="10" r="10" style="fill: none; stroke: var(--kerykeion-chart-color-lunar-phase-0); stroke-width: 0.5px; stroke-opacity: 0.5" />\n'
1724
- f'</g>'
1674
+ params = calculate_moon_phase_chart_params(degrees_between_sun_and_moon)
1675
+
1676
+ phase_angle = params["phase_angle"]
1677
+ illuminated_fraction = params["illuminated_fraction"]
1678
+ shadow_ellipse_rx = abs(params["shadow_ellipse_rx"])
1679
+
1680
+ radius = 10.0
1681
+ center_x = 20.0
1682
+ center_y = 10.0
1683
+
1684
+ bright_color = "var(--kerykeion-chart-color-lunar-phase-1)"
1685
+ shadow_color = "var(--kerykeion-chart-color-lunar-phase-0)"
1686
+
1687
+ is_waxing = phase_angle <= 180.0
1688
+
1689
+ if illuminated_fraction <= 1e-6:
1690
+ base_fill = shadow_color
1691
+ overlay_path = ""
1692
+ overlay_fill = ""
1693
+ elif 1.0 - illuminated_fraction <= 1e-6:
1694
+ base_fill = bright_color
1695
+ overlay_path = ""
1696
+ overlay_fill = ""
1697
+ else:
1698
+ is_lit_major = illuminated_fraction >= 0.5
1699
+ if is_lit_major:
1700
+ base_fill = bright_color
1701
+ overlay_fill = shadow_color
1702
+ overlay_side = "left" if is_waxing else "right"
1703
+ else:
1704
+ base_fill = shadow_color
1705
+ overlay_fill = bright_color
1706
+ overlay_side = "right" if is_waxing else "left"
1707
+
1708
+ # The illuminated limb is the orthographic projection of the lunar terminator;
1709
+ # it appears as an ellipse with vertical radius equal to the lunar radius and
1710
+ # horizontal radius scaled by |cos(phase)|.
1711
+ def build_lune_path(side: str, ellipse_rx: float) -> str:
1712
+ ellipse_rx = max(0.0, min(radius, ellipse_rx))
1713
+ top_y = center_y - radius
1714
+ bottom_y = center_y + radius
1715
+ circle_sweep = 1 if side == "right" else 0
1716
+
1717
+ if ellipse_rx <= 1e-6:
1718
+ return (
1719
+ f"M {center_x:.4f} {top_y:.4f}"
1720
+ f" A {radius:.4f} {radius:.4f} 0 0 {circle_sweep} {center_x:.4f} {bottom_y:.4f}"
1721
+ f" L {center_x:.4f} {top_y:.4f}"
1722
+ " Z"
1723
+ )
1724
+
1725
+ return (
1726
+ f"M {center_x:.4f} {top_y:.4f}"
1727
+ f" A {radius:.4f} {radius:.4f} 0 0 {circle_sweep} {center_x:.4f} {bottom_y:.4f}"
1728
+ f" A {ellipse_rx:.4f} {radius:.4f} 0 0 {circle_sweep} {center_x:.4f} {top_y:.4f}"
1729
+ " Z"
1730
+ )
1731
+
1732
+ overlay_path = build_lune_path(overlay_side, shadow_ellipse_rx)
1733
+
1734
+ svg_lines = [
1735
+ '<g transform="rotate(0 20 10)">',
1736
+ ' <defs>',
1737
+ ' <clipPath id="moonPhaseCutOffCircle">',
1738
+ ' <circle cx="20" cy="10" r="10" />',
1739
+ ' </clipPath>',
1740
+ ' </defs>',
1741
+ f' <circle cx="20" cy="10" r="10" style="fill: {base_fill}" />',
1742
+ ]
1743
+
1744
+ if overlay_path:
1745
+ svg_lines.append(
1746
+ f' <path d="{overlay_path}" style="fill: {overlay_fill}" clip-path="url(#moonPhaseCutOffCircle)" />'
1747
+ )
1748
+
1749
+ svg_lines.append(
1750
+ ' <circle cx="20" cy="10" r="10" style="fill: none; stroke: var(--kerykeion-chart-color-lunar-phase-0); stroke-width: 0.5px; stroke-opacity: 0.5" />'
1725
1751
  )
1752
+ svg_lines.append('</g>')
1726
1753
 
1727
- return svg
1754
+ return "\n".join(svg_lines)
1728
1755
 
1729
1756
 
1730
1757
  def calculate_quality_points(
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "kerykeion"
3
- version = "5.1.1"
3
+ version = "5.1.3"
4
4
  authors = [
5
5
  { name = "Giacomo Battaglia", email = "kerykeion.astrology@gmail.com" }
6
6
  ]
@@ -183,14 +183,14 @@
183
183
 
184
184
  <!-- Lunar Phase -->
185
185
  <g kr:node='Lunar_Phase' transform='translate(10,518)'>
186
- <g transform='rotate(-138.39841 20 10)'>
186
+ <g transform='rotate(0 20 10)'>
187
187
  <defs>
188
188
  <clipPath id='moonPhaseCutOffCircle'>
189
189
  <circle cx='20' cy='10' r='10' />
190
190
  </clipPath>
191
191
  </defs>
192
- <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' />
193
- <circle cx='5912.372097077524' cy='10' r='5893.383042129719' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' clip-path='url(#moonPhaseCutOffCircle)' />
192
+ <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' />
193
+ <path d='M 20.0000 0.0000 A 10.0000 10.0000 0 0 1 20.0000 20.0000 A 1.5813 10.0000 0 0 1 20.0000 0.0000 Z' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' clip-path='url(#moonPhaseCutOffCircle)' />
194
194
  <circle cx='20' cy='10' r='10' style='fill: none; stroke: var(--kerykeion-chart-color-lunar-phase-0); stroke-width: 0.5px; stroke-opacity: 0.5' />
195
195
  </g>
196
196
  </g>
@@ -183,14 +183,14 @@
183
183
 
184
184
  <!-- Lunar Phase -->
185
185
  <g kr:node='Lunar_Phase' transform='translate(10,518)'>
186
- <g transform='rotate(-115.44478000000001 20 10)'>
186
+ <g transform='rotate(0 20 10)'>
187
187
  <defs>
188
188
  <clipPath id='moonPhaseCutOffCircle'>
189
189
  <circle cx='20' cy='10' r='10' />
190
190
  </clipPath>
191
191
  </defs>
192
192
  <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' />
193
- <circle cx='22.020579486809215' cy='10' r='10.978095526587532' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' clip-path='url(#moonPhaseCutOffCircle)' />
193
+ <path d='M 20.0000 0.0000 A 10.0000 10.0000 0 0 1 20.0000 20.0000 A 9.8662 10.0000 0 0 1 20.0000 0.0000 Z' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' clip-path='url(#moonPhaseCutOffCircle)' />
194
194
  <circle cx='20' cy='10' r='10' style='fill: none; stroke: var(--kerykeion-chart-color-lunar-phase-0); stroke-width: 0.5px; stroke-opacity: 0.5' />
195
195
  </g>
196
196
  </g>
@@ -218,14 +218,14 @@
218
218
 
219
219
  <!-- Lunar Phase -->
220
220
  <g kr:node='Lunar_Phase' transform='translate(10,518)'>
221
- <g transform='rotate(-124.61500000000001 20 10)'>
221
+ <g transform='rotate(0 20 10)'>
222
222
  <defs>
223
223
  <clipPath id='moonPhaseCutOffCircle'>
224
224
  <circle cx='20' cy='10' r='10' />
225
225
  </clipPath>
226
226
  </defs>
227
227
  <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' />
228
- <circle cx='15.053478816545088' cy='10' r='13.092766334850829' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' clip-path='url(#moonPhaseCutOffCircle)' />
228
+ <path d='M 20.0000 0.0000 A 10.0000 10.0000 0 0 0 20.0000 20.0000 A 9.5790 10.0000 0 0 0 20.0000 0.0000 Z' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' clip-path='url(#moonPhaseCutOffCircle)' />
229
229
  <circle cx='20' cy='10' r='10' style='fill: none; stroke: var(--kerykeion-chart-color-lunar-phase-0); stroke-width: 0.5px; stroke-opacity: 0.5' />
230
230
  </g>
231
231
  </g>
@@ -183,14 +183,14 @@
183
183
 
184
184
  <!-- Lunar Phase -->
185
185
  <g kr:node='Lunar_Phase' transform='translate(10,518)'>
186
- <g transform='rotate(-124.61500000000001 20 10)'>
186
+ <g transform='rotate(0 20 10)'>
187
187
  <defs>
188
188
  <clipPath id='moonPhaseCutOffCircle'>
189
189
  <circle cx='20' cy='10' r='10' />
190
190
  </clipPath>
191
191
  </defs>
192
192
  <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' />
193
- <circle cx='15.053478816545088' cy='10' r='13.092766334850829' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' clip-path='url(#moonPhaseCutOffCircle)' />
193
+ <path d='M 20.0000 0.0000 A 10.0000 10.0000 0 0 0 20.0000 20.0000 A 9.5790 10.0000 0 0 0 20.0000 0.0000 Z' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' clip-path='url(#moonPhaseCutOffCircle)' />
194
194
  <circle cx='20' cy='10' r='10' style='fill: none; stroke: var(--kerykeion-chart-color-lunar-phase-0); stroke-width: 0.5px; stroke-opacity: 0.5' />
195
195
  </g>
196
196
  </g>
@@ -183,14 +183,14 @@
183
183
 
184
184
  <!-- Lunar Phase -->
185
185
  <g kr:node='Lunar_Phase' transform='translate(10,518)'>
186
- <g transform='rotate(-126.72015999999999 20 10)'>
186
+ <g transform='rotate(0 20 10)'>
187
187
  <defs>
188
188
  <clipPath id='moonPhaseCutOffCircle'>
189
189
  <circle cx='20' cy='10' r='10' />
190
190
  </clipPath>
191
191
  </defs>
192
- <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' />
193
- <circle cx='47.344736345470295' cy='10' r='32.360284467893244' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' clip-path='url(#moonPhaseCutOffCircle)' />
192
+ <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' />
193
+ <path d='M 20.0000 0.0000 A 10.0000 10.0000 0 0 1 20.0000 20.0000 A 7.0883 10.0000 0 0 1 20.0000 0.0000 Z' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' clip-path='url(#moonPhaseCutOffCircle)' />
194
194
  <circle cx='20' cy='10' r='10' style='fill: none; stroke: var(--kerykeion-chart-color-lunar-phase-0); stroke-width: 0.5px; stroke-opacity: 0.5' />
195
195
  </g>
196
196
  </g>
@@ -183,14 +183,14 @@
183
183
 
184
184
  <!-- Lunar Phase -->
185
185
  <g kr:node='Lunar_Phase' transform='translate(10,518)'>
186
- <g transform='rotate(-122.66568000000001 20 10)'>
186
+ <g transform='rotate(0 20 10)'>
187
187
  <defs>
188
188
  <clipPath id='moonPhaseCutOffCircle'>
189
189
  <circle cx='20' cy='10' r='10' />
190
190
  </clipPath>
191
191
  </defs>
192
- <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' />
193
- <circle cx='19.051697612147102' cy='10' r='10.336677025493326' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' clip-path='url(#moonPhaseCutOffCircle)' />
192
+ <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' />
193
+ <path d='M 20.0000 0.0000 A 10.0000 10.0000 0 0 0 20.0000 20.0000 A 9.9539 10.0000 0 0 0 20.0000 0.0000 Z' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' clip-path='url(#moonPhaseCutOffCircle)' />
194
194
  <circle cx='20' cy='10' r='10' style='fill: none; stroke: var(--kerykeion-chart-color-lunar-phase-0); stroke-width: 0.5px; stroke-opacity: 0.5' />
195
195
  </g>
196
196
  </g>
@@ -183,14 +183,14 @@
183
183
 
184
184
  <!-- Lunar Phase -->
185
185
  <g kr:node='Lunar_Phase' transform='translate(10,518)'>
186
- <g transform='rotate(-118.19874 20 10)'>
186
+ <g transform='rotate(0 20 10)'>
187
187
  <defs>
188
188
  <clipPath id='moonPhaseCutOffCircle'>
189
189
  <circle cx='20' cy='10' r='10' />
190
190
  </clipPath>
191
191
  </defs>
192
- <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' />
193
- <circle cx='4.398470682093873' cy='10' r='21.95664744972116' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' clip-path='url(#moonPhaseCutOffCircle)' />
192
+ <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' />
193
+ <path d='M 20.0000 0.0000 A 10.0000 10.0000 0 0 0 20.0000 20.0000 A 8.4053 10.0000 0 0 0 20.0000 0.0000 Z' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' clip-path='url(#moonPhaseCutOffCircle)' />
194
194
  <circle cx='20' cy='10' r='10' style='fill: none; stroke: var(--kerykeion-chart-color-lunar-phase-0); stroke-width: 0.5px; stroke-opacity: 0.5' />
195
195
  </g>
196
196
  </g>
@@ -183,14 +183,14 @@
183
183
 
184
184
  <!-- Lunar Phase -->
185
185
  <g kr:node='Lunar_Phase' transform='translate(10,518)'>
186
- <g transform='rotate(-138.85341 20 10)'>
186
+ <g transform='rotate(0 20 10)'>
187
187
  <defs>
188
188
  <clipPath id='moonPhaseCutOffCircle'>
189
189
  <circle cx='20' cy='10' r='10' />
190
190
  </clipPath>
191
191
  </defs>
192
192
  <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' />
193
- <circle cx='21.34181873974424' cy='10' r='10.55590059591707' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' clip-path='url(#moonPhaseCutOffCircle)' />
193
+ <path d='M 20.0000 0.0000 A 10.0000 10.0000 0 0 1 20.0000 20.0000 A 9.9239 10.0000 0 0 1 20.0000 0.0000 Z' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' clip-path='url(#moonPhaseCutOffCircle)' />
194
194
  <circle cx='20' cy='10' r='10' style='fill: none; stroke: var(--kerykeion-chart-color-lunar-phase-0); stroke-width: 0.5px; stroke-opacity: 0.5' />
195
195
  </g>
196
196
  </g>
@@ -183,14 +183,14 @@
183
183
 
184
184
  <!-- Lunar Phase -->
185
185
  <g kr:node='Lunar_Phase' transform='translate(10,694)'>
186
- <g transform='rotate(-143.41058 20 10)'>
186
+ <g transform='rotate(0 20 10)'>
187
187
  <defs>
188
188
  <clipPath id='moonPhaseCutOffCircle'>
189
189
  <circle cx='20' cy='10' r='10' />
190
190
  </clipPath>
191
191
  </defs>
192
- <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' />
193
- <circle cx='-46.840031081194645' cy='10' r='68.75988497581749' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' clip-path='url(#moonPhaseCutOffCircle)' />
192
+ <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' />
193
+ <path d='M 20.0000 0.0000 A 10.0000 10.0000 0 0 0 20.0000 20.0000 A 2.9702 10.0000 0 0 0 20.0000 0.0000 Z' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' clip-path='url(#moonPhaseCutOffCircle)' />
194
194
  <circle cx='20' cy='10' r='10' style='fill: none; stroke: var(--kerykeion-chart-color-lunar-phase-0); stroke-width: 0.5px; stroke-opacity: 0.5' />
195
195
  </g>
196
196
  </g>
@@ -218,14 +218,14 @@
218
218
 
219
219
  <!-- Lunar Phase -->
220
220
  <g kr:node='Lunar_Phase' transform='translate(10,518)'>
221
- <g transform='rotate(-143.4 20 10)'>
221
+ <g transform='rotate(0 20 10)'>
222
222
  <defs>
223
223
  <clipPath id='moonPhaseCutOffCircle'>
224
224
  <circle cx='20' cy='10' r='10' />
225
225
  </clipPath>
226
226
  </defs>
227
- <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' />
228
- <circle cx='-46.840031081194645' cy='10' r='68.75988497581749' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' clip-path='url(#moonPhaseCutOffCircle)' />
227
+ <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' />
228
+ <path d='M 20.0000 0.0000 A 10.0000 10.0000 0 0 0 20.0000 20.0000 A 2.9702 10.0000 0 0 0 20.0000 0.0000 Z' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' clip-path='url(#moonPhaseCutOffCircle)' />
229
229
  <circle cx='20' cy='10' r='10' style='fill: none; stroke: var(--kerykeion-chart-color-lunar-phase-0); stroke-width: 0.5px; stroke-opacity: 0.5' />
230
230
  </g>
231
231
  </g>
@@ -218,14 +218,14 @@
218
218
 
219
219
  <!-- Lunar Phase -->
220
220
  <g kr:node='Lunar_Phase' transform='translate(10,518)'>
221
- <g transform='rotate(-143.41058 20 10)'>
221
+ <g transform='rotate(0 20 10)'>
222
222
  <defs>
223
223
  <clipPath id='moonPhaseCutOffCircle'>
224
224
  <circle cx='20' cy='10' r='10' />
225
225
  </clipPath>
226
226
  </defs>
227
- <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' />
228
- <circle cx='-46.840031081194645' cy='10' r='68.75988497581749' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' clip-path='url(#moonPhaseCutOffCircle)' />
227
+ <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' />
228
+ <path d='M 20.0000 0.0000 A 10.0000 10.0000 0 0 0 20.0000 20.0000 A 2.9702 10.0000 0 0 0 20.0000 0.0000 Z' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' clip-path='url(#moonPhaseCutOffCircle)' />
229
229
  <circle cx='20' cy='10' r='10' style='fill: none; stroke: var(--kerykeion-chart-color-lunar-phase-0); stroke-width: 0.5px; stroke-opacity: 0.5' />
230
230
  </g>
231
231
  </g>
@@ -218,14 +218,14 @@
218
218
 
219
219
  <!-- Lunar Phase -->
220
220
  <g kr:node='Lunar_Phase' transform='translate(10,518)'>
221
- <g transform='rotate(-143.41058 20 10)'>
221
+ <g transform='rotate(0 20 10)'>
222
222
  <defs>
223
223
  <clipPath id='moonPhaseCutOffCircle'>
224
224
  <circle cx='20' cy='10' r='10' />
225
225
  </clipPath>
226
226
  </defs>
227
- <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' />
228
- <circle cx='-46.840031081194645' cy='10' r='68.75988497581749' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' clip-path='url(#moonPhaseCutOffCircle)' />
227
+ <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' />
228
+ <path d='M 20.0000 0.0000 A 10.0000 10.0000 0 0 0 20.0000 20.0000 A 2.9702 10.0000 0 0 0 20.0000 0.0000 Z' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' clip-path='url(#moonPhaseCutOffCircle)' />
229
229
  <circle cx='20' cy='10' r='10' style='fill: none; stroke: var(--kerykeion-chart-color-lunar-phase-0); stroke-width: 0.5px; stroke-opacity: 0.5' />
230
230
  </g>
231
231
  </g>
@@ -229,14 +229,14 @@
229
229
 
230
230
  <!-- Lunar Phase -->
231
231
  <g kr:node='Lunar_Phase' transform='translate(10,518)'>
232
- <g transform='rotate(-143.41058 20 10)'>
232
+ <g transform='rotate(0 20 10)'>
233
233
  <defs>
234
234
  <clipPath id='moonPhaseCutOffCircle'>
235
235
  <circle cx='20' cy='10' r='10' />
236
236
  </clipPath>
237
237
  </defs>
238
- <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' />
239
- <circle cx='-46.840031081194645' cy='10' r='68.75988497581749' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' clip-path='url(#moonPhaseCutOffCircle)' />
238
+ <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' />
239
+ <path d='M 20.0000 0.0000 A 10.0000 10.0000 0 0 0 20.0000 20.0000 A 2.9702 10.0000 0 0 0 20.0000 0.0000 Z' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' clip-path='url(#moonPhaseCutOffCircle)' />
240
240
  <circle cx='20' cy='10' r='10' style='fill: none; stroke: var(--kerykeion-chart-color-lunar-phase-0); stroke-width: 0.5px; stroke-opacity: 0.5' />
241
241
  </g>
242
242
  </g>
@@ -230,14 +230,14 @@
230
230
 
231
231
  <!-- Lunar Phase -->
232
232
  <g kr:node='Lunar_Phase' transform='translate(10,518)'>
233
- <g transform='rotate(-143.41058 20 10)'>
233
+ <g transform='rotate(0 20 10)'>
234
234
  <defs>
235
235
  <clipPath id='moonPhaseCutOffCircle'>
236
236
  <circle cx='20' cy='10' r='10' />
237
237
  </clipPath>
238
238
  </defs>
239
- <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' />
240
- <circle cx='-46.840031081194645' cy='10' r='68.75988497581749' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' clip-path='url(#moonPhaseCutOffCircle)' />
239
+ <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' />
240
+ <path d='M 20.0000 0.0000 A 10.0000 10.0000 0 0 0 20.0000 20.0000 A 2.9702 10.0000 0 0 0 20.0000 0.0000 Z' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' clip-path='url(#moonPhaseCutOffCircle)' />
241
241
  <circle cx='20' cy='10' r='10' style='fill: none; stroke: var(--kerykeion-chart-color-lunar-phase-0); stroke-width: 0.5px; stroke-opacity: 0.5' />
242
242
  </g>
243
243
  </g>
@@ -230,14 +230,14 @@
230
230
 
231
231
  <!-- Lunar Phase -->
232
232
  <g kr:node='Lunar_Phase' transform='translate(10,518)'>
233
- <g transform='rotate(-143.41058 20 10)'>
233
+ <g transform='rotate(0 20 10)'>
234
234
  <defs>
235
235
  <clipPath id='moonPhaseCutOffCircle'>
236
236
  <circle cx='20' cy='10' r='10' />
237
237
  </clipPath>
238
238
  </defs>
239
- <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' />
240
- <circle cx='-46.840031081194645' cy='10' r='68.75988497581749' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' clip-path='url(#moonPhaseCutOffCircle)' />
239
+ <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' />
240
+ <path d='M 20.0000 0.0000 A 10.0000 10.0000 0 0 0 20.0000 20.0000 A 2.9702 10.0000 0 0 0 20.0000 0.0000 Z' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' clip-path='url(#moonPhaseCutOffCircle)' />
241
241
  <circle cx='20' cy='10' r='10' style='fill: none; stroke: var(--kerykeion-chart-color-lunar-phase-0); stroke-width: 0.5px; stroke-opacity: 0.5' />
242
242
  </g>
243
243
  </g>
@@ -183,14 +183,14 @@
183
183
 
184
184
  <!-- Lunar Phase -->
185
185
  <g kr:node='Lunar_Phase' transform='translate(10,518)'>
186
- <g transform='rotate(-143.4 20 10)'>
186
+ <g transform='rotate(0 20 10)'>
187
187
  <defs>
188
188
  <clipPath id='moonPhaseCutOffCircle'>
189
189
  <circle cx='20' cy='10' r='10' />
190
190
  </clipPath>
191
191
  </defs>
192
- <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' />
193
- <circle cx='-46.840031081194645' cy='10' r='68.75988497581749' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' clip-path='url(#moonPhaseCutOffCircle)' />
192
+ <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' />
193
+ <path d='M 20.0000 0.0000 A 10.0000 10.0000 0 0 0 20.0000 20.0000 A 2.9702 10.0000 0 0 0 20.0000 0.0000 Z' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' clip-path='url(#moonPhaseCutOffCircle)' />
194
194
  <circle cx='20' cy='10' r='10' style='fill: none; stroke: var(--kerykeion-chart-color-lunar-phase-0); stroke-width: 0.5px; stroke-opacity: 0.5' />
195
195
  </g>
196
196
  </g>
@@ -183,14 +183,14 @@
183
183
 
184
184
  <!-- Lunar Phase -->
185
185
  <g kr:node='Lunar_Phase' transform='translate(10,518)'>
186
- <g transform='rotate(-143.4 20 10)'>
186
+ <g transform='rotate(0 20 10)'>
187
187
  <defs>
188
188
  <clipPath id='moonPhaseCutOffCircle'>
189
189
  <circle cx='20' cy='10' r='10' />
190
190
  </clipPath>
191
191
  </defs>
192
- <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' />
193
- <circle cx='-46.840031081194645' cy='10' r='68.75988497581749' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' clip-path='url(#moonPhaseCutOffCircle)' />
192
+ <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' />
193
+ <path d='M 20.0000 0.0000 A 10.0000 10.0000 0 0 0 20.0000 20.0000 A 2.9702 10.0000 0 0 0 20.0000 0.0000 Z' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' clip-path='url(#moonPhaseCutOffCircle)' />
194
194
  <circle cx='20' cy='10' r='10' style='fill: none; stroke: var(--kerykeion-chart-color-lunar-phase-0); stroke-width: 0.5px; stroke-opacity: 0.5' />
195
195
  </g>
196
196
  </g>
@@ -183,14 +183,14 @@
183
183
 
184
184
  <!-- Lunar Phase -->
185
185
  <g kr:node='Lunar_Phase' transform='translate(10,518)'>
186
- <g transform='rotate(-143.41058 20 10)'>
186
+ <g transform='rotate(0 20 10)'>
187
187
  <defs>
188
188
  <clipPath id='moonPhaseCutOffCircle'>
189
189
  <circle cx='20' cy='10' r='10' />
190
190
  </clipPath>
191
191
  </defs>
192
- <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' />
193
- <circle cx='-46.840031081194645' cy='10' r='68.75988497581749' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' clip-path='url(#moonPhaseCutOffCircle)' />
192
+ <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' />
193
+ <path d='M 20.0000 0.0000 A 10.0000 10.0000 0 0 0 20.0000 20.0000 A 2.9702 10.0000 0 0 0 20.0000 0.0000 Z' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' clip-path='url(#moonPhaseCutOffCircle)' />
194
194
  <circle cx='20' cy='10' r='10' style='fill: none; stroke: var(--kerykeion-chart-color-lunar-phase-0); stroke-width: 0.5px; stroke-opacity: 0.5' />
195
195
  </g>
196
196
  </g>
@@ -183,14 +183,14 @@
183
183
 
184
184
  <!-- Lunar Phase -->
185
185
  <g kr:node='Lunar_Phase' transform='translate(10,518)'>
186
- <g transform='rotate(-143.41058 20 10)'>
186
+ <g transform='rotate(0 20 10)'>
187
187
  <defs>
188
188
  <clipPath id='moonPhaseCutOffCircle'>
189
189
  <circle cx='20' cy='10' r='10' />
190
190
  </clipPath>
191
191
  </defs>
192
192
  <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' />
193
- <circle cx='24.680396436488856' cy='10' r='12.888808523848176' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' clip-path='url(#moonPhaseCutOffCircle)' />
193
+ <path d='M 20.0000 0.0000 A 10.0000 10.0000 0 0 1 20.0000 20.0000 A 9.6066 10.0000 0 0 1 20.0000 0.0000 Z' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' clip-path='url(#moonPhaseCutOffCircle)' />
194
194
  <circle cx='20' cy='10' r='10' style='fill: none; stroke: var(--kerykeion-chart-color-lunar-phase-0); stroke-width: 0.5px; stroke-opacity: 0.5' />
195
195
  </g>
196
196
  </g>
@@ -183,14 +183,14 @@
183
183
 
184
184
  <!-- Lunar Phase -->
185
185
  <g kr:node='Lunar_Phase' transform='translate(10,518)'>
186
- <g transform='rotate(-143.41058 20 10)'>
186
+ <g transform='rotate(0 20 10)'>
187
187
  <defs>
188
188
  <clipPath id='moonPhaseCutOffCircle'>
189
189
  <circle cx='20' cy='10' r='10' />
190
190
  </clipPath>
191
191
  </defs>
192
- <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' />
193
- <circle cx='-46.840031081194645' cy='10' r='68.75988497581749' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' clip-path='url(#moonPhaseCutOffCircle)' />
192
+ <circle cx='20' cy='10' r='10' style='fill: var(--kerykeion-chart-color-lunar-phase-1)' />
193
+ <path d='M 20.0000 0.0000 A 10.0000 10.0000 0 0 0 20.0000 20.0000 A 2.9702 10.0000 0 0 0 20.0000 0.0000 Z' style='fill: var(--kerykeion-chart-color-lunar-phase-0)' clip-path='url(#moonPhaseCutOffCircle)' />
194
194
  <circle cx='20' cy='10' r='10' style='fill: none; stroke: var(--kerykeion-chart-color-lunar-phase-0); stroke-width: 0.5px; stroke-opacity: 0.5' />
195
195
  </g>
196
196
  </g>