kerykeion 5.0.0b5__tar.gz → 5.0.2__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 (249) hide show
  1. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/PKG-INFO +172 -75
  2. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/README.md +171 -74
  3. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/TODO.md +2 -1
  4. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/backword.py +1 -1
  5. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/charts/chart_drawer.py +8 -4
  6. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/pyproject.toml +1 -1
  7. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/scripts/regenerate_test_charts.py +16 -0
  8. kerykeion-5.0.2/tests/charts/svg/John Lennon - DualReturnChart Chart - Lunar Return.svg +863 -0
  9. kerykeion-5.0.2/tests/charts/svg/John Lennon Lunar Return - SingleReturnChart Chart.svg +863 -0
  10. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/test_charts.py +46 -0
  11. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/test_backward_compatibility.py +32 -32
  12. kerykeion-5.0.0b5/.uv-cache/.gitignore +0 -1
  13. kerykeion-5.0.0b5/.uv-cache/.lock +0 -0
  14. kerykeion-5.0.0b5/.uv-cache/CACHEDIR.TAG +0 -1
  15. kerykeion-5.0.0b5/.uv-cache/interpreter-v4/7e11d242fb84b9e8/66d9843502616e2c.msgpack +0 -0
  16. kerykeion-5.0.0b5/.uv-cache/sdists-v9/.git +0 -0
  17. kerykeion-5.0.0b5/.uv-cache/sdists-v9/.gitignore +0 -0
  18. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/.coveragerc +0 -0
  19. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/.github/FUNDING.yml +0 -0
  20. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/.gitignore +0 -0
  21. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/CHANGELOG.md +0 -0
  22. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/DEVELOPMENT.md +0 -0
  23. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/LICENSE +0 -0
  24. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/MANIFEST.in +0 -0
  25. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/index.html +0 -0
  26. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/kerykeion/aspects/aspects_utils.html +0 -0
  27. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/kerykeion/aspects/natal_aspects.html +0 -0
  28. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/kerykeion/aspects/synastry_aspects.html +0 -0
  29. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/kerykeion/aspects/transits_time_range.html +0 -0
  30. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/kerykeion/aspects.html +0 -0
  31. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/kerykeion/astrological_subject.html +0 -0
  32. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/kerykeion/charts/charts_utils.html +0 -0
  33. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/kerykeion/charts/draw_planets.html +0 -0
  34. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/kerykeion/charts/kerykeion_chart_svg.html +0 -0
  35. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/kerykeion/charts.html +0 -0
  36. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/kerykeion/composite_subject_factory.html +0 -0
  37. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/kerykeion/enums.html +0 -0
  38. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/kerykeion/ephemeris_data.html +0 -0
  39. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/kerykeion/fetch_geonames.html +0 -0
  40. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/kerykeion/kr_types/chart_types.html +0 -0
  41. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/kerykeion/kr_types/kerykeion_exception.html +0 -0
  42. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/kerykeion/kr_types/kr_literals.html +0 -0
  43. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/kerykeion/kr_types/kr_models.html +0 -0
  44. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/kerykeion/kr_types/settings_models.html +0 -0
  45. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/kerykeion/kr_types.html +0 -0
  46. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/kerykeion/relationship_score/relationship_score.html +0 -0
  47. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/kerykeion/relationship_score/relationship_score_factory.html +0 -0
  48. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/kerykeion/relationship_score.html +0 -0
  49. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/kerykeion/report.html +0 -0
  50. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/kerykeion/settings/config_constants.html +0 -0
  51. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/kerykeion/settings/kerykeion_settings.html +0 -0
  52. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/kerykeion/settings.html +0 -0
  53. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/kerykeion/transits_time_range.html +0 -0
  54. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/kerykeion/utilities.html +0 -0
  55. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/kerykeion.html +0 -0
  56. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/docs/search.js +0 -0
  57. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/examples/aspects_synastry.py +0 -0
  58. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/examples/composite_report_example.py +0 -0
  59. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/examples/current_time_report.py +0 -0
  60. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/examples/dual_return_report_example.py +0 -0
  61. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/examples/natal_report_example.py +0 -0
  62. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/examples/planetary_return.py +0 -0
  63. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/examples/quickstart_natal_chart.py +0 -0
  64. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/examples/solar_return_report_example.py +0 -0
  65. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/examples/subject_report_example.py +0 -0
  66. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/examples/synastry_report_example.py +0 -0
  67. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/examples/transit_report_example.py +0 -0
  68. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/examples/transits_time_range.py +0 -0
  69. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/__init__.py +0 -0
  70. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/aspects/__init__.py +0 -0
  71. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/aspects/aspects_factory.py +0 -0
  72. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/aspects/aspects_utils.py +0 -0
  73. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/astrological_subject_factory.py +0 -0
  74. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/chart_data_factory.py +0 -0
  75. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/charts/__init__.py +0 -0
  76. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/charts/charts_utils.py +0 -0
  77. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/charts/draw_planets.py +0 -0
  78. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/charts/templates/aspect_grid_only.xml +0 -0
  79. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/charts/templates/chart.xml +0 -0
  80. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/charts/templates/wheel_only.xml +0 -0
  81. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/charts/themes/black-and-white.css +0 -0
  82. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/charts/themes/classic.css +0 -0
  83. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/charts/themes/dark-high-contrast.css +0 -0
  84. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/charts/themes/dark.css +0 -0
  85. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/charts/themes/light.css +0 -0
  86. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/charts/themes/strawberry.css +0 -0
  87. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/composite_subject_factory.py +0 -0
  88. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/ephemeris_data_factory.py +0 -0
  89. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/fetch_geonames.py +0 -0
  90. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/house_comparison/__init__.py +0 -0
  91. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/house_comparison/house_comparison_factory.py +0 -0
  92. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/house_comparison/house_comparison_utils.py +0 -0
  93. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/kr_types/__init__.py +0 -0
  94. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/kr_types/chart_template_model.py +0 -0
  95. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/kr_types/kerykeion_exception.py +0 -0
  96. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/kr_types/kr_literals.py +0 -0
  97. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/kr_types/kr_models.py +0 -0
  98. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/kr_types/settings_models.py +0 -0
  99. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/planetary_return_factory.py +0 -0
  100. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/relationship_score_factory.py +0 -0
  101. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/report.py +0 -0
  102. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/schemas/__init__.py +0 -0
  103. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/schemas/chart_template_model.py +0 -0
  104. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/schemas/kerykeion_exception.py +0 -0
  105. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/schemas/kr_literals.py +0 -0
  106. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/schemas/kr_models.py +0 -0
  107. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/schemas/settings_models.py +0 -0
  108. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/settings/__init__.py +0 -0
  109. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/settings/chart_defaults.py +0 -0
  110. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/settings/config_constants.py +0 -0
  111. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/settings/kerykeion_settings.py +0 -0
  112. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/settings/translation_strings.py +0 -0
  113. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/settings/translations.py +0 -0
  114. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/sweph/README.md +0 -0
  115. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/sweph/ast136/s136108s.se1 +0 -0
  116. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/sweph/ast136/s136199s.se1 +0 -0
  117. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/sweph/ast136/s136472s.se1 +0 -0
  118. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/sweph/ast28/se28978s.se1 +0 -0
  119. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/sweph/ast50/se50000s.se1 +0 -0
  120. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/sweph/ast90/se90377s.se1 +0 -0
  121. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/sweph/ast90/se90482s.se1 +0 -0
  122. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/sweph/seas_18.se1 +0 -0
  123. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/sweph/sefstars.txt +0 -0
  124. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/transits_time_range_factory.py +0 -0
  125. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/kerykeion/utilities.py +0 -0
  126. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/release_notes/V4.14.0.md +0 -0
  127. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/release_notes/V4.16.0.md +0 -0
  128. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/release_notes/V4.17.0.md +0 -0
  129. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/release_notes/V4.19.0.md +0 -0
  130. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/release_notes/V4.21.0.md +0 -0
  131. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/release_notes/V4.22.0.md +0 -0
  132. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/release_notes/V4.23.0.md +0 -0
  133. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/release_notes/V4.24.0.md +0 -0
  134. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/release_notes/V4.25.0.md +0 -0
  135. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/release_notes/V4.26.0.md +0 -0
  136. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/release_notes/v5.0.0.md +0 -0
  137. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/release_notes/v5.0.0a.md +0 -0
  138. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/release_notes/v5.0.0b.md +0 -0
  139. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/scripts/README.md +0 -0
  140. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/scripts/__init__.py +0 -0
  141. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/scripts/quality_check.py +0 -0
  142. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/scripts/regenerate_expected_aspects.py +0 -0
  143. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/scripts/regenerate_synastry_aspects.py +0 -0
  144. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/scripts/regenerate_synastry_from_test.py +0 -0
  145. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/scripts/test_markdown_snippets.py +0 -0
  146. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/site-docs/aspects.md +0 -0
  147. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/site-docs/astrological_subject_factory.md +0 -0
  148. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/site-docs/chart_data_factory.md +0 -0
  149. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/site-docs/charts.md +0 -0
  150. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/site-docs/composite_subject_factory.md +0 -0
  151. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/site-docs/element_quality_distribution.md +0 -0
  152. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/site-docs/ephemeris_data_factory.md +0 -0
  153. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/site-docs/house_comparison.md +0 -0
  154. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/site-docs/planetary_return_factory.md +0 -0
  155. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/site-docs/relationship_score_factory.md +0 -0
  156. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/site-docs/report.md +0 -0
  157. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/site-docs/transits_time_range_factory.md +0 -0
  158. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/site-docs/utilities.md +0 -0
  159. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/__init__.py +0 -0
  160. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/aspects/__init__.py +0 -0
  161. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/aspects/expected_natal_aspects.py +0 -0
  162. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/aspects/expected_synastry_aspects.py +0 -0
  163. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/aspects/test_natal_aspects.py +0 -0
  164. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/aspects/test_synastry_aspects.py +0 -0
  165. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/__init__.py +0 -0
  166. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/compare_svg_lines.py +0 -0
  167. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/Albert Einstein - Natal Chart.svg +0 -0
  168. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/Amitabh Bachchan - Natal Chart.svg +0 -0
  169. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/Angelina Jolie and Brad Pitt Composite Chart - Black and White Theme - Composite Chart.svg +0 -0
  170. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/Angelina Jolie and Brad Pitt Composite Chart - Composite Chart.svg +0 -0
  171. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/Antonio Banderas - Natal Chart.svg +0 -0
  172. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/Cristiano Ronaldo - Natal Chart.svg +0 -0
  173. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/Hua Chenyu - Natal Chart.svg +0 -0
  174. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/Jeanne Moreau - Natal Chart.svg +0 -0
  175. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - All Active Points - Natal Chart - Aspect Grid Only.svg +0 -0
  176. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - All Active Points - Natal Chart - Wheel Only.svg +0 -0
  177. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - All Active Points - Natal Chart.svg +0 -0
  178. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - All Active Points - Synastry Chart - Aspect Grid Only.svg +0 -0
  179. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - All Active Points - Synastry Chart - Grid.svg +0 -0
  180. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - All Active Points - Synastry Chart - List.svg +0 -0
  181. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - All Active Points - Synastry Chart - Wheel Only.svg +0 -0
  182. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Aspect Grid Dark Synastry - Synastry Chart - Aspect Grid Only.svg +0 -0
  183. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Aspect Grid Dark Theme - Natal Chart - Aspect Grid Only.svg +0 -0
  184. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Aspect Grid Light Theme - Natal Chart - Aspect Grid Only.svg +0 -0
  185. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Aspect Grid Only - Natal Chart - Aspect Grid Only.svg +0 -0
  186. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Aspect Grid Synastry - Synastry Chart - Aspect Grid Only.svg +0 -0
  187. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Aspect Grid Transit - Transit Chart - Aspect Grid Only.svg +0 -0
  188. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Black and White Theme - DualReturnChart Chart - Solar Return.svg +0 -0
  189. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Black and White Theme - Natal Chart.svg +0 -0
  190. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Black and White Theme - Synastry Chart.svg +0 -0
  191. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Black and White Theme - Transit Chart.svg +0 -0
  192. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - DTS - Synastry Chart.svg +0 -0
  193. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Dark High Contrast Theme - Natal Chart.svg +0 -0
  194. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Dark Theme - Natal Chart.svg +0 -0
  195. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Dark Theme External - Natal Chart.svg +0 -0
  196. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - DualReturnChart Chart - Solar Return.svg +0 -0
  197. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - ExternalNatal - Natal Chart.svg +0 -0
  198. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Heliocentric - Natal Chart.svg +0 -0
  199. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - House System Morinus - Natal Chart.svg +0 -0
  200. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Light Theme - Natal Chart.svg +0 -0
  201. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Minified - Natal Chart.svg +0 -0
  202. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Natal Chart.svg +0 -0
  203. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - SCTWL - Synastry Chart.svg +0 -0
  204. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Synastry Chart.svg +0 -0
  205. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - TCWTG - Transit Chart.svg +0 -0
  206. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Topocentric - Natal Chart.svg +0 -0
  207. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Transit Chart.svg +0 -0
  208. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Transparent Background - Natal Chart.svg +0 -0
  209. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - True Geocentric - Natal Chart.svg +0 -0
  210. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Wheel External Only - ExternalNatal Chart - Wheel Only.svg +0 -0
  211. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Wheel Only - Natal Chart - Wheel Only.svg +0 -0
  212. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Wheel Synastry Only - Synastry Chart - Wheel Only.svg +0 -0
  213. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Wheel Transit Only - Transit Chart - Wheel Only.svg +0 -0
  214. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon DeLuce - Natal Chart.svg +0 -0
  215. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon Fagan-Bradley - Light Theme - Natal Chart - Wheel Only.svg +0 -0
  216. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon Fagan-Bradley - Natal Chart.svg +0 -0
  217. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon J2000 - Natal Chart.svg +0 -0
  218. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon Lahiri - Dark Theme - Natal Chart - Wheel Only.svg +0 -0
  219. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon Lahiri - Natal Chart.svg +0 -0
  220. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon Solar Return - Black and White Theme - SingleReturnChart Chart.svg +0 -0
  221. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/John Lennon Solar Return - SingleReturnChart Chart.svg +0 -0
  222. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/Kanye - Natal Chart.svg +0 -0
  223. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/Mehmet Oz - Natal Chart.svg +0 -0
  224. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/Mikhail Bulgakov - Natal Chart.svg +0 -0
  225. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/svg/Sophia Loren - Natal Chart.svg +0 -0
  226. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/charts/test_draw_planets.py +0 -0
  227. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/settings/test_settings.py +0 -0
  228. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/test_all_active_points.py +0 -0
  229. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/test_astrological_subject.py +0 -0
  230. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/test_astrological_subject_jyotish.py +0 -0
  231. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/test_backword.py +0 -0
  232. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/test_chart_data_factory.py +0 -0
  233. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/test_chart_data_factory_complete.py +0 -0
  234. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/test_chart_drawer_complete.py +0 -0
  235. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/test_composite_subject_factory_complete.py +0 -0
  236. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/test_ephemeris_data.py +0 -0
  237. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/test_ephemeris_data_factory_complete.py +0 -0
  238. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/test_fetch_geonames.py +0 -0
  239. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/test_json_dump.py +0 -0
  240. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/test_planetary_return_factory_complete.py +0 -0
  241. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/test_relationship_score.py +0 -0
  242. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/test_relationship_score_factory_complete.py +0 -0
  243. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/test_report.py +0 -0
  244. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/test_transits_time_range_factory_complete.py +0 -0
  245. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/test_utc.py +0 -0
  246. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/tests/test_utilities.py +0 -0
  247. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/uv.lock +0 -0
  248. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/workspace/README.md +0 -0
  249. {kerykeion-5.0.0b5 → kerykeion-5.0.2}/workspace/main.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kerykeion
3
- Version: 5.0.0b5
3
+ Version: 5.0.2
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
@@ -64,7 +64,7 @@ Kerykeion also integrates seamlessly with LLM and AI applications.
64
64
 
65
65
  Here is an example of a birthchart:
66
66
 
67
- ![John Lenon Chart](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/master/tests/charts/svg/John%20Lennon%20-%20Dark%20Theme%20-%20Natal%20Chart.svg)
67
+ ![John Lenon Chart](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/main/tests/charts/svg/John%20Lennon%20-%20Dark%20Theme%20-%20Natal%20Chart.svg)
68
68
 
69
69
  ## **Web API**
70
70
 
@@ -80,70 +80,69 @@ Maintaining this project requires substantial time and effort. The Astrologer AP
80
80
 
81
81
  [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/kerykeion)
82
82
 
83
- ## ⚠️ Development Branch Notice
84
-
85
- This branch (`next`) is **not the stable version** of Kerykeion. It is the **development branch for the upcoming V5 release**.
86
-
87
- If you're looking for the latest stable version, please check out the [`master`](https://github.com/g-battaglia/kerykeion/tree/master) branch instead.
88
-
89
83
  ## Table of Contents
90
84
 
91
- - [**Web API**](#web-api)
92
- - [**Donate**](#donate)
93
- - [⚠️ Development Branch Notice](#️-development-branch-notice)
94
- - [Table of Contents](#table-of-contents)
95
- - [Installation](#installation)
96
- - [Basic Usage](#basic-usage)
97
- - [Generate a SVG Chart](#generate-a-svg-chart)
98
- - [Birth Chart](#birth-chart)
99
- - [External Birth Chart](#external-birth-chart)
100
- - [Synastry Chart](#synastry-chart)
101
- - [Transit Chart](#transit-chart)
102
- - [Composite Chart](#composite-chart)
103
- - [Wheel Only Charts](#wheel-only-charts)
104
- - [Birth Chart](#birth-chart-1)
105
- - [Wheel Only Birth Chart (External)](#wheel-only-birth-chart-external)
106
- - [Synastry Chart](#synastry-chart-1)
107
- - [Change the Output Directory](#change-the-output-directory)
108
- - [Change Language](#change-language)
109
- - [Minified SVG](#minified-svg)
110
- - [SVG without CSS Variables](#svg-without-css-variables)
111
- - [Grid Only SVG](#grid-only-svg)
112
- - [Report Generator](#report-generator)
113
- - [Quick Examples](#quick-examples)
114
- - [Section Access](#section-access)
115
- - [Example: Retrieving Aspects](#example-retrieving-aspects)
116
- - [Ayanamsa (Sidereal Modes)](#ayanamsa-sidereal-modes)
117
- - [House Systems](#house-systems)
118
- - [Perspective Type](#perspective-type)
119
- - [Themes](#themes)
120
- - [Alternative Initialization](#alternative-initialization)
121
- - [Lunar Nodes (Rahu \& Ketu)](#lunar-nodes-rahu--ketu)
122
- - [JSON Support](#json-support)
123
- - [Auto Generated Documentation](#auto-generated-documentation)
124
- - [Development](#development)
125
- - [Kerykeion v5.0 – What's New](#kerykeion-v50--whats-new)
126
- - [🎯 Key Highlights](#-key-highlights)
127
- - [Factory-Centered Architecture](#factory-centered-architecture)
128
- - [Pydantic 2 Models \& Type Safety](#pydantic-2-models--type-safety)
129
- - [Enhanced Features](#enhanced-features)
130
- - [🚨 Breaking Changes](#-breaking-changes)
131
- - [1. Removed Legacy Classes](#1-removed-legacy-classes)
132
- - [2. Import Changes](#2-import-changes)
133
- - [3. Lunar Nodes Naming](#3-lunar-nodes-naming)
134
- - [4. Chart Generation Changes](#4-chart-generation-changes)
135
- - [5. Aspects API Changes](#5-aspects-api-changes)
136
- - [🔄 Migration Guide](#-migration-guide)
137
- - [Using the Backward Compatibility Layer](#using-the-backward-compatibility-layer)
138
- - [Step-by-Step Migration](#step-by-step-migration)
139
- - [Automated Migration Script](#automated-migration-script)
140
- - [📦 Other Notable Changes](#-other-notable-changes)
141
- - [🎨 New Themes](#-new-themes)
142
- - [📚 Resources](#-resources)
143
- - [Integrating Kerykeion into Your Project](#integrating-kerykeion-into-your-project)
144
- - [License](#license)
145
- - [Contributing](#contributing)
146
- - [Citations](#citations)
85
+ - [**Web API**](#web-api)
86
+ - [**Donate**](#donate)
87
+ - [Table of Contents](#table-of-contents)
88
+ - [Installation](#installation)
89
+ - [Basic Usage](#basic-usage)
90
+ - [Generate a SVG Chart](#generate-a-svg-chart)
91
+ - [Birth Chart](#birth-chart)
92
+ - [External Birth Chart](#external-birth-chart)
93
+ - [Synastry Chart](#synastry-chart)
94
+ - [Transit Chart](#transit-chart)
95
+ - [Solar Return Chart (Dual Wheel)](#solar-return-chart-dual-wheel)
96
+ - [Solar Return Chart (Single Wheel)](#solar-return-chart-single-wheel)
97
+ - [Lunar Return Chart](#lunar-return-chart)
98
+ - [Composite Chart](#composite-chart)
99
+ - [Wheel Only Charts](#wheel-only-charts)
100
+ - [Birth Chart](#birth-chart-1)
101
+ - [Wheel Only Birth Chart (External)](#wheel-only-birth-chart-external)
102
+ - [Synastry Chart](#synastry-chart-1)
103
+ - [Change the Output Directory](#change-the-output-directory)
104
+ - [Change Language](#change-language)
105
+ - [Minified SVG](#minified-svg)
106
+ - [SVG without CSS Variables](#svg-without-css-variables)
107
+ - [Grid Only SVG](#grid-only-svg)
108
+ - [Report Generator](#report-generator)
109
+ - [Quick Examples](#quick-examples)
110
+ - [Section Access](#section-access)
111
+ - [Example: Retrieving Aspects](#example-retrieving-aspects)
112
+ - [Element \& Quality Distribution Strategies](#element--quality-distribution-strategies)
113
+ - [Ayanamsa (Sidereal Modes)](#ayanamsa-sidereal-modes)
114
+ - [House Systems](#house-systems)
115
+ - [Perspective Type](#perspective-type)
116
+ - [Themes](#themes)
117
+ - [Alternative Initialization](#alternative-initialization)
118
+ - [Lunar Nodes (Rahu \& Ketu)](#lunar-nodes-rahu--ketu)
119
+ - [JSON Support](#json-support)
120
+ - [Auto Generated Documentation](#auto-generated-documentation)
121
+ - [Development](#development)
122
+ - [Kerykeion v5.0 What's New](#kerykeion-v50--whats-new)
123
+ - [🎯 Key Highlights](#-key-highlights)
124
+ - [Factory-Centered Architecture](#factory-centered-architecture)
125
+ - [Pydantic 2 Models \& Type Safety](#pydantic-2-models--type-safety)
126
+ - [Enhanced Features](#enhanced-features)
127
+ - [🚨 Breaking Changes](#-breaking-changes)
128
+ - [1. Removed Legacy Classes](#1-removed-legacy-classes)
129
+ - [2. Import Changes](#2-import-changes)
130
+ - [3. Type Aliases Unified](#3-type-aliases-unified)
131
+ - [4. Lunar Nodes Naming](#4-lunar-nodes-naming)
132
+ - [5. Axis Orb Filtering](#5-axis-orb-filtering)
133
+ - [6. Chart Generation Changes](#6-chart-generation-changes)
134
+ - [7. Aspects API Changes](#7-aspects-api-changes)
135
+ - [🔄 Migration Guide](#-migration-guide)
136
+ - [Using the Backward Compatibility Layer](#using-the-backward-compatibility-layer)
137
+ - [Step-by-Step Migration](#step-by-step-migration)
138
+ - [Automated Migration Script](#automated-migration-script)
139
+ - [📦 Other Notable Changes](#-other-notable-changes)
140
+ - [🎨 New Themes](#-new-themes)
141
+ - [📚 Resources](#-resources)
142
+ - [Integrating Kerykeion into Your Project](#integrating-kerykeion-into-your-project)
143
+ - [License](#license)
144
+ - [Contributing](#contributing)
145
+ - [Citations](#citations)
147
146
 
148
147
  ## Installation
149
148
 
@@ -216,7 +215,7 @@ birth_chart_svg.save_svg()
216
215
  ```
217
216
 
218
217
  The SVG file will be saved in the home directory.
219
- ![John Lennon Birth Chart](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/master/tests/charts/svg/John%20Lennon%20-%20Natal%20Chart.svg)
218
+ ![John Lennon Birth Chart](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/main/tests/charts/svg/John%20Lennon%20-%20Natal%20Chart.svg)
220
219
 
221
220
  ### External Birth Chart
222
221
 
@@ -229,14 +228,14 @@ from kerykeion.charts.chart_drawer import ChartDrawer
229
228
  birth_chart = AstrologicalSubjectFactory.from_birth_data("John Lennon", 1940, 10, 9, 18, 30, "Liverpool", "GB")
230
229
 
231
230
  # Step 2: Pre-compute chart data for external natal chart
232
- chart_data = ChartDataFactory.create_external_natal_chart_data(birth_chart)
231
+ chart_data = ChartDataFactory.create_natal_chart_data(birth_chart)
233
232
 
234
233
  # Step 3: Create visualization
235
234
  birth_chart_svg = ChartDrawer(chart_data=chart_data)
236
235
  birth_chart_svg.save_svg()
237
236
  ```
238
237
 
239
- ![John Lennon External Birth Chart](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/master/tests/charts/svg/John%20Lennon%20-%20ExternalNatal%20Chart.svg)
238
+ ![John Lennon External Birth Chart](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/main/tests/charts/svg/John%20Lennon%20-%20ExternalNatal%20-%20Natal%20Chart.svg)
240
239
 
241
240
  ### Synastry Chart
242
241
 
@@ -278,7 +277,105 @@ transit_chart = ChartDrawer(chart_data=chart_data)
278
277
  transit_chart.save_svg()
279
278
  ```
280
279
 
281
- ![John Lennon Transit Chart](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/master/tests/charts/svg/John%20Lennon%20-%20Transit%20Chart.svg)
280
+ ![John Lennon Transit Chart](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/main/tests/charts/svg/John%20Lennon%20-%20Transit%20Chart.svg)
281
+
282
+ ### Solar Return Chart (Dual Wheel)
283
+
284
+ ```python
285
+ from kerykeion import AstrologicalSubjectFactory
286
+ from kerykeion.planetary_return_factory import PlanetaryReturnFactory
287
+ from kerykeion.chart_data_factory import ChartDataFactory
288
+ from kerykeion.charts.chart_drawer import ChartDrawer
289
+
290
+ # Step 1: Create natal subject
291
+ john = AstrologicalSubjectFactory.from_birth_data("John Lennon", 1940, 10, 9, 18, 30, "Liverpool", "GB")
292
+
293
+ # Step 2: Calculate Solar Return subject (offline example with manual coordinates)
294
+ return_factory = PlanetaryReturnFactory(
295
+ john,
296
+ lng=-2.9833,
297
+ lat=53.4000,
298
+ tz_str="Europe/London",
299
+ online=False
300
+ )
301
+ solar_return_subject = return_factory.next_return_from_year(1964, "Solar")
302
+
303
+ # Step 3: Pre-compute return chart data (dual wheel: natal + solar return)
304
+ chart_data = ChartDataFactory.create_return_chart_data(john, solar_return_subject)
305
+
306
+ # Step 4: Create visualization
307
+ solar_return_chart = ChartDrawer(chart_data=chart_data)
308
+ solar_return_chart.save_svg()
309
+ ```
310
+
311
+ ![John Lennon Solar Return Chart (Dual Wheel)](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/main/tests/charts/svg/John%20Lennon%20-%20DualReturnChart%20Chart%20-%20Solar%20Return.svg)
312
+
313
+ ### Solar Return Chart (Single Wheel)
314
+
315
+ ```python
316
+ from kerykeion import AstrologicalSubjectFactory
317
+ from kerykeion.planetary_return_factory import PlanetaryReturnFactory
318
+ from kerykeion.chart_data_factory import ChartDataFactory
319
+ from kerykeion.charts.chart_drawer import ChartDrawer
320
+
321
+ # Step 1: Create natal subject
322
+ john = AstrologicalSubjectFactory.from_birth_data("John Lennon", 1940, 10, 9, 18, 30, "Liverpool", "GB")
323
+
324
+ # Step 2: Calculate Solar Return subject (offline example with manual coordinates)
325
+ return_factory = PlanetaryReturnFactory(
326
+ john,
327
+ lng=-2.9833,
328
+ lat=53.4000,
329
+ tz_str="Europe/London",
330
+ online=False
331
+ )
332
+ solar_return_subject = return_factory.next_return_from_year(1964, "Solar")
333
+
334
+ # Step 3: Build a single-wheel return chart
335
+ chart_data = ChartDataFactory.create_single_wheel_return_chart_data(solar_return_subject)
336
+
337
+ # Step 4: Create visualization
338
+ single_wheel_chart = ChartDrawer(chart_data=chart_data)
339
+ single_wheel_chart.save_svg()
340
+ ```
341
+
342
+ ![John Lennon Solar Return Chart (Single Wheel)](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/main/tests/charts/svg/John%20Lennon%20Solar%20Return%20-%20SingleReturnChart%20Chart.svg)
343
+
344
+ ### Lunar Return Chart
345
+
346
+ ```python
347
+ from kerykeion import AstrologicalSubjectFactory
348
+ from kerykeion.planetary_return_factory import PlanetaryReturnFactory
349
+ from kerykeion.chart_data_factory import ChartDataFactory
350
+ from kerykeion.charts.chart_drawer import ChartDrawer
351
+
352
+ # Step 1: Create natal subject
353
+ john = AstrologicalSubjectFactory.from_birth_data("John Lennon", 1940, 10, 9, 18, 30, "Liverpool", "GB")
354
+
355
+ # Step 2: Calculate Lunar Return subject
356
+ return_factory = PlanetaryReturnFactory(
357
+ john,
358
+ lng=-2.9833,
359
+ lat=53.4000,
360
+ tz_str="Europe/London",
361
+ online=False
362
+ )
363
+ lunar_return_subject = return_factory.next_return_from_year(1964, "Lunar")
364
+
365
+ # Step 3: Build a dual wheel (natal + lunar return)
366
+ lunar_return_chart_data = ChartDataFactory.create_return_chart_data(john, lunar_return_subject)
367
+ dual_wheel_chart = ChartDrawer(chart_data=lunar_return_chart_data)
368
+ dual_wheel_chart.save_svg()
369
+
370
+ # Optional: create a single-wheel lunar return
371
+ single_wheel_data = ChartDataFactory.create_single_wheel_return_chart_data(lunar_return_subject)
372
+ single_wheel_chart = ChartDrawer(chart_data=single_wheel_data)
373
+ single_wheel_chart.save_svg()
374
+ ```
375
+
376
+ ![John Lennon Lunar Return Chart (Dual Wheel)](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/main/tests/charts/svg/John%20Lennon%20-%20DualReturnChart%20Chart%20-%20Lunar%20Return.svg)
377
+
378
+ ![John Lennon Lunar Return Chart (Single Wheel)](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/main/tests/charts/svg/John%20Lennon%20Lunar%20Return%20-%20SingleReturnChart%20Chart.svg)
282
379
 
283
380
  ### Composite Chart
284
381
 
@@ -304,7 +401,7 @@ composite_chart = ChartDrawer(chart_data=chart_data)
304
401
  composite_chart.save_svg()
305
402
  ```
306
403
 
307
- ![Angelina Jolie and Brad Pitt Composite Chart](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/master/tests/charts/svg/Angelina%20Jolie%20and%20Brad%20Pitt%20Composite%20Chart%20-%20Composite%20Chart.svg)
404
+ ![Angelina Jolie and Brad Pitt Composite Chart](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/main/tests/charts/svg/Angelina%20Jolie%20and%20Brad%20Pitt%20Composite%20Chart%20-%20Composite%20Chart.svg)
308
405
 
309
406
  ## Wheel Only Charts
310
407
 
@@ -328,7 +425,7 @@ birth_chart_svg = ChartDrawer(chart_data=chart_data)
328
425
  birth_chart_svg.save_wheel_only_svg_file()
329
426
  ```
330
427
 
331
- ![John Lennon Birth Chart](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/master/tests/charts/svg/John%20Lennon%20-%20Wheel%20Only%20-%20Natal%20Chart%20-%20Wheel%20Only.svg)
428
+ ![John Lennon Birth Chart](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/main/tests/charts/svg/John%20Lennon%20-%20Wheel%20Only%20-%20Natal%20Chart%20-%20Wheel%20Only.svg)
332
429
 
333
430
  ### Wheel Only Birth Chart (External)
334
431
 
@@ -341,7 +438,7 @@ from kerykeion.charts.chart_drawer import ChartDrawer
341
438
  birth_chart = AstrologicalSubjectFactory.from_birth_data("John Lennon", 1940, 10, 9, 18, 30, "Liverpool", "GB")
342
439
 
343
440
  # Step 2: Pre-compute external natal chart data
344
- chart_data = ChartDataFactory.create_external_natal_chart_data(birth_chart)
441
+ chart_data = ChartDataFactory.create_natal_chart_data(birth_chart)
345
442
 
346
443
  # Step 3: Create visualization
347
444
  birth_chart_svg = ChartDrawer(chart_data=chart_data)
@@ -351,7 +448,7 @@ birth_chart_svg.save_wheel_only_svg_file(
351
448
  )
352
449
  ```
353
450
 
354
- ![John Lennon Birth Chart](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/master/tests/charts/svg/John%20Lennon%20-%20Wheel%20External%20Only%20-%20ExternalNatal%20Chart%20-%20Wheel%20Only.svg)
451
+ ![John Lennon Birth Chart](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/main/tests/charts/svg/John%20Lennon%20-%20Wheel%20External%20Only%20-%20ExternalNatal%20Chart%20-%20Wheel%20Only.svg)
355
452
 
356
453
  ### Synastry Chart
357
454
 
@@ -372,7 +469,7 @@ synastry_chart = ChartDrawer(chart_data=chart_data)
372
469
  synastry_chart.save_wheel_only_svg_file()
373
470
  ```
374
471
 
375
- ![John Lennon and Paul McCartney Synastry](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/master/tests/charts/svg/John%20Lennon%20-%20Wheel%20Synastry%20Only%20-%20Synastry%20Chart%20-%20Wheel%20Only.svg)
472
+ ![John Lennon and Paul McCartney Synastry](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/main/tests/charts/svg/John%20Lennon%20-%20Wheel%20Synastry%20Only%20-%20Synastry%20Chart%20-%20Wheel%20Only.svg)
376
473
 
377
474
  ### Change the Output Directory
378
475
 
@@ -416,6 +513,7 @@ birth_chart_svg = ChartDrawer(
416
513
  chart_language="IT" # Change to Italian
417
514
  )
418
515
  birth_chart_svg.save_svg()
516
+ ```
419
517
 
420
518
  You can also provide custom labels (or introduce a brand-new language) by passing
421
519
  a dictionary to `language_pack`. Only the keys you supply are merged on top of the
@@ -435,7 +533,6 @@ birth_chart_svg = ChartDrawer(
435
533
  language_pack=custom_labels["PT"],
436
534
  )
437
535
  ```
438
- ```
439
536
 
440
537
  More details [here](https://www.kerykeion.net/docs/chart-language).
441
538
 
@@ -518,7 +615,7 @@ aspect_grid_chart = ChartDrawer(chart_data=chart_data, theme="dark")
518
615
  aspect_grid_chart.save_aspect_grid_only_svg_file()
519
616
  ```
520
617
 
521
- ![John Lennon Birth Chart](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/master/tests/charts/svg/John%20Lennon%20-%20Aspect%20Grid%20Only%20-%20Natal%20Chart%20-%20Aspect%20Grid%20Only.svg)
618
+ ![John Lennon Birth Chart](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/main/tests/charts/svg/John%20Lennon%20-%20Aspect%20Grid%20Only%20-%20Natal%20Chart%20-%20Aspect%20Grid%20Only.svg)
522
619
 
523
620
  ## Report Generator
524
621