kerykeion 5.0.0b4__tar.gz → 5.0.0b5__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 (247) hide show
  1. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/PKG-INFO +32 -6
  2. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/README.md +31 -5
  3. kerykeion-5.0.0b5/kerykeion/kr_types/__init__.py +70 -0
  4. kerykeion-5.0.0b5/kerykeion/kr_types/chart_template_model.py +20 -0
  5. kerykeion-5.0.0b5/kerykeion/kr_types/kerykeion_exception.py +20 -0
  6. kerykeion-5.0.0b5/kerykeion/kr_types/kr_literals.py +20 -0
  7. kerykeion-5.0.0b5/kerykeion/kr_types/kr_models.py +20 -0
  8. kerykeion-5.0.0b5/kerykeion/kr_types/settings_models.py +20 -0
  9. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/schemas/__init__.py +7 -0
  10. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/schemas/kr_literals.py +11 -0
  11. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/pyproject.toml +1 -1
  12. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/release_notes/v5.0.0.md +4 -2
  13. kerykeion-5.0.0b5/tests/test_backward_compatibility.py +177 -0
  14. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/.coveragerc +0 -0
  15. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/.github/FUNDING.yml +0 -0
  16. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/.gitignore +0 -0
  17. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/.uv-cache/.gitignore +0 -0
  18. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/.uv-cache/.lock +0 -0
  19. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/.uv-cache/CACHEDIR.TAG +0 -0
  20. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/.uv-cache/interpreter-v4/7e11d242fb84b9e8/66d9843502616e2c.msgpack +0 -0
  21. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/.uv-cache/sdists-v9/.git +0 -0
  22. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/.uv-cache/sdists-v9/.gitignore +0 -0
  23. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/CHANGELOG.md +0 -0
  24. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/DEVELOPMENT.md +0 -0
  25. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/LICENSE +0 -0
  26. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/MANIFEST.in +0 -0
  27. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/TODO.md +0 -0
  28. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/index.html +0 -0
  29. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/kerykeion/aspects/aspects_utils.html +0 -0
  30. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/kerykeion/aspects/natal_aspects.html +0 -0
  31. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/kerykeion/aspects/synastry_aspects.html +0 -0
  32. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/kerykeion/aspects/transits_time_range.html +0 -0
  33. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/kerykeion/aspects.html +0 -0
  34. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/kerykeion/astrological_subject.html +0 -0
  35. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/kerykeion/charts/charts_utils.html +0 -0
  36. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/kerykeion/charts/draw_planets.html +0 -0
  37. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/kerykeion/charts/kerykeion_chart_svg.html +0 -0
  38. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/kerykeion/charts.html +0 -0
  39. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/kerykeion/composite_subject_factory.html +0 -0
  40. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/kerykeion/enums.html +0 -0
  41. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/kerykeion/ephemeris_data.html +0 -0
  42. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/kerykeion/fetch_geonames.html +0 -0
  43. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/kerykeion/kr_types/chart_types.html +0 -0
  44. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/kerykeion/kr_types/kerykeion_exception.html +0 -0
  45. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/kerykeion/kr_types/kr_literals.html +0 -0
  46. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/kerykeion/kr_types/kr_models.html +0 -0
  47. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/kerykeion/kr_types/settings_models.html +0 -0
  48. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/kerykeion/kr_types.html +0 -0
  49. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/kerykeion/relationship_score/relationship_score.html +0 -0
  50. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/kerykeion/relationship_score/relationship_score_factory.html +0 -0
  51. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/kerykeion/relationship_score.html +0 -0
  52. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/kerykeion/report.html +0 -0
  53. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/kerykeion/settings/config_constants.html +0 -0
  54. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/kerykeion/settings/kerykeion_settings.html +0 -0
  55. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/kerykeion/settings.html +0 -0
  56. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/kerykeion/transits_time_range.html +0 -0
  57. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/kerykeion/utilities.html +0 -0
  58. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/kerykeion.html +0 -0
  59. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/docs/search.js +0 -0
  60. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/examples/aspects_synastry.py +0 -0
  61. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/examples/composite_report_example.py +0 -0
  62. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/examples/current_time_report.py +0 -0
  63. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/examples/dual_return_report_example.py +0 -0
  64. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/examples/natal_report_example.py +0 -0
  65. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/examples/planetary_return.py +0 -0
  66. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/examples/quickstart_natal_chart.py +0 -0
  67. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/examples/solar_return_report_example.py +0 -0
  68. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/examples/subject_report_example.py +0 -0
  69. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/examples/synastry_report_example.py +0 -0
  70. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/examples/transit_report_example.py +0 -0
  71. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/examples/transits_time_range.py +0 -0
  72. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/__init__.py +0 -0
  73. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/aspects/__init__.py +0 -0
  74. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/aspects/aspects_factory.py +0 -0
  75. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/aspects/aspects_utils.py +0 -0
  76. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/astrological_subject_factory.py +0 -0
  77. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/backword.py +0 -0
  78. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/chart_data_factory.py +0 -0
  79. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/charts/__init__.py +0 -0
  80. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/charts/chart_drawer.py +0 -0
  81. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/charts/charts_utils.py +0 -0
  82. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/charts/draw_planets.py +0 -0
  83. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/charts/templates/aspect_grid_only.xml +0 -0
  84. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/charts/templates/chart.xml +0 -0
  85. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/charts/templates/wheel_only.xml +0 -0
  86. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/charts/themes/black-and-white.css +0 -0
  87. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/charts/themes/classic.css +0 -0
  88. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/charts/themes/dark-high-contrast.css +0 -0
  89. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/charts/themes/dark.css +0 -0
  90. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/charts/themes/light.css +0 -0
  91. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/charts/themes/strawberry.css +0 -0
  92. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/composite_subject_factory.py +0 -0
  93. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/ephemeris_data_factory.py +0 -0
  94. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/fetch_geonames.py +0 -0
  95. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/house_comparison/__init__.py +0 -0
  96. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/house_comparison/house_comparison_factory.py +0 -0
  97. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/house_comparison/house_comparison_utils.py +0 -0
  98. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/planetary_return_factory.py +0 -0
  99. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/relationship_score_factory.py +0 -0
  100. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/report.py +0 -0
  101. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/schemas/chart_template_model.py +0 -0
  102. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/schemas/kerykeion_exception.py +0 -0
  103. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/schemas/kr_models.py +0 -0
  104. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/schemas/settings_models.py +0 -0
  105. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/settings/__init__.py +0 -0
  106. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/settings/chart_defaults.py +0 -0
  107. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/settings/config_constants.py +0 -0
  108. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/settings/kerykeion_settings.py +0 -0
  109. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/settings/translation_strings.py +0 -0
  110. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/settings/translations.py +0 -0
  111. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/sweph/README.md +0 -0
  112. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/sweph/ast136/s136108s.se1 +0 -0
  113. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/sweph/ast136/s136199s.se1 +0 -0
  114. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/sweph/ast136/s136472s.se1 +0 -0
  115. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/sweph/ast28/se28978s.se1 +0 -0
  116. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/sweph/ast50/se50000s.se1 +0 -0
  117. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/sweph/ast90/se90377s.se1 +0 -0
  118. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/sweph/ast90/se90482s.se1 +0 -0
  119. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/sweph/seas_18.se1 +0 -0
  120. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/sweph/sefstars.txt +0 -0
  121. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/transits_time_range_factory.py +0 -0
  122. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/kerykeion/utilities.py +0 -0
  123. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/release_notes/V4.14.0.md +0 -0
  124. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/release_notes/V4.16.0.md +0 -0
  125. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/release_notes/V4.17.0.md +0 -0
  126. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/release_notes/V4.19.0.md +0 -0
  127. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/release_notes/V4.21.0.md +0 -0
  128. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/release_notes/V4.22.0.md +0 -0
  129. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/release_notes/V4.23.0.md +0 -0
  130. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/release_notes/V4.24.0.md +0 -0
  131. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/release_notes/V4.25.0.md +0 -0
  132. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/release_notes/V4.26.0.md +0 -0
  133. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/release_notes/v5.0.0a.md +0 -0
  134. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/release_notes/v5.0.0b.md +0 -0
  135. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/scripts/README.md +0 -0
  136. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/scripts/__init__.py +0 -0
  137. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/scripts/quality_check.py +0 -0
  138. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/scripts/regenerate_expected_aspects.py +0 -0
  139. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/scripts/regenerate_synastry_aspects.py +0 -0
  140. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/scripts/regenerate_synastry_from_test.py +0 -0
  141. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/scripts/regenerate_test_charts.py +0 -0
  142. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/scripts/test_markdown_snippets.py +0 -0
  143. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/site-docs/aspects.md +0 -0
  144. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/site-docs/astrological_subject_factory.md +0 -0
  145. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/site-docs/chart_data_factory.md +0 -0
  146. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/site-docs/charts.md +0 -0
  147. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/site-docs/composite_subject_factory.md +0 -0
  148. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/site-docs/element_quality_distribution.md +0 -0
  149. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/site-docs/ephemeris_data_factory.md +0 -0
  150. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/site-docs/house_comparison.md +0 -0
  151. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/site-docs/planetary_return_factory.md +0 -0
  152. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/site-docs/relationship_score_factory.md +0 -0
  153. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/site-docs/report.md +0 -0
  154. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/site-docs/transits_time_range_factory.md +0 -0
  155. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/site-docs/utilities.md +0 -0
  156. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/__init__.py +0 -0
  157. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/aspects/__init__.py +0 -0
  158. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/aspects/expected_natal_aspects.py +0 -0
  159. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/aspects/expected_synastry_aspects.py +0 -0
  160. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/aspects/test_natal_aspects.py +0 -0
  161. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/aspects/test_synastry_aspects.py +0 -0
  162. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/__init__.py +0 -0
  163. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/compare_svg_lines.py +0 -0
  164. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/Albert Einstein - Natal Chart.svg +0 -0
  165. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/Amitabh Bachchan - Natal Chart.svg +0 -0
  166. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/Angelina Jolie and Brad Pitt Composite Chart - Black and White Theme - Composite Chart.svg +0 -0
  167. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/Angelina Jolie and Brad Pitt Composite Chart - Composite Chart.svg +0 -0
  168. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/Antonio Banderas - Natal Chart.svg +0 -0
  169. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/Cristiano Ronaldo - Natal Chart.svg +0 -0
  170. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/Hua Chenyu - Natal Chart.svg +0 -0
  171. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/Jeanne Moreau - Natal Chart.svg +0 -0
  172. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - All Active Points - Natal Chart - Aspect Grid Only.svg +0 -0
  173. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - All Active Points - Natal Chart - Wheel Only.svg +0 -0
  174. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - All Active Points - Natal Chart.svg +0 -0
  175. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - All Active Points - Synastry Chart - Aspect Grid Only.svg +0 -0
  176. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - All Active Points - Synastry Chart - Grid.svg +0 -0
  177. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - All Active Points - Synastry Chart - List.svg +0 -0
  178. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - All Active Points - Synastry Chart - Wheel Only.svg +0 -0
  179. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - Aspect Grid Dark Synastry - Synastry Chart - Aspect Grid Only.svg +0 -0
  180. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - Aspect Grid Dark Theme - Natal Chart - Aspect Grid Only.svg +0 -0
  181. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - Aspect Grid Light Theme - Natal Chart - Aspect Grid Only.svg +0 -0
  182. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - Aspect Grid Only - Natal Chart - Aspect Grid Only.svg +0 -0
  183. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - Aspect Grid Synastry - Synastry Chart - Aspect Grid Only.svg +0 -0
  184. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - Aspect Grid Transit - Transit Chart - Aspect Grid Only.svg +0 -0
  185. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - Black and White Theme - DualReturnChart Chart - Solar Return.svg +0 -0
  186. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - Black and White Theme - Natal Chart.svg +0 -0
  187. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - Black and White Theme - Synastry Chart.svg +0 -0
  188. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - Black and White Theme - Transit Chart.svg +0 -0
  189. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - DTS - Synastry Chart.svg +0 -0
  190. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - Dark High Contrast Theme - Natal Chart.svg +0 -0
  191. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - Dark Theme - Natal Chart.svg +0 -0
  192. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - Dark Theme External - Natal Chart.svg +0 -0
  193. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - DualReturnChart Chart - Solar Return.svg +0 -0
  194. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - ExternalNatal - Natal Chart.svg +0 -0
  195. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - Heliocentric - Natal Chart.svg +0 -0
  196. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - House System Morinus - Natal Chart.svg +0 -0
  197. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - Light Theme - Natal Chart.svg +0 -0
  198. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - Minified - Natal Chart.svg +0 -0
  199. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - Natal Chart.svg +0 -0
  200. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - SCTWL - Synastry Chart.svg +0 -0
  201. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - Synastry Chart.svg +0 -0
  202. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - TCWTG - Transit Chart.svg +0 -0
  203. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - Topocentric - Natal Chart.svg +0 -0
  204. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - Transit Chart.svg +0 -0
  205. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - Transparent Background - Natal Chart.svg +0 -0
  206. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - True Geocentric - Natal Chart.svg +0 -0
  207. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - Wheel External Only - ExternalNatal Chart - Wheel Only.svg +0 -0
  208. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - Wheel Only - Natal Chart - Wheel Only.svg +0 -0
  209. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - Wheel Synastry Only - Synastry Chart - Wheel Only.svg +0 -0
  210. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon - Wheel Transit Only - Transit Chart - Wheel Only.svg +0 -0
  211. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon DeLuce - Natal Chart.svg +0 -0
  212. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon Fagan-Bradley - Light Theme - Natal Chart - Wheel Only.svg +0 -0
  213. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon Fagan-Bradley - Natal Chart.svg +0 -0
  214. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon J2000 - Natal Chart.svg +0 -0
  215. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon Lahiri - Dark Theme - Natal Chart - Wheel Only.svg +0 -0
  216. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon Lahiri - Natal Chart.svg +0 -0
  217. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon Solar Return - Black and White Theme - SingleReturnChart Chart.svg +0 -0
  218. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/John Lennon Solar Return - SingleReturnChart Chart.svg +0 -0
  219. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/Kanye - Natal Chart.svg +0 -0
  220. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/Mehmet Oz - Natal Chart.svg +0 -0
  221. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/Mikhail Bulgakov - Natal Chart.svg +0 -0
  222. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/svg/Sophia Loren - Natal Chart.svg +0 -0
  223. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/test_charts.py +0 -0
  224. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/charts/test_draw_planets.py +0 -0
  225. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/settings/test_settings.py +0 -0
  226. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/test_all_active_points.py +0 -0
  227. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/test_astrological_subject.py +0 -0
  228. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/test_astrological_subject_jyotish.py +0 -0
  229. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/test_backword.py +0 -0
  230. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/test_chart_data_factory.py +0 -0
  231. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/test_chart_data_factory_complete.py +0 -0
  232. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/test_chart_drawer_complete.py +0 -0
  233. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/test_composite_subject_factory_complete.py +0 -0
  234. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/test_ephemeris_data.py +0 -0
  235. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/test_ephemeris_data_factory_complete.py +0 -0
  236. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/test_fetch_geonames.py +0 -0
  237. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/test_json_dump.py +0 -0
  238. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/test_planetary_return_factory_complete.py +0 -0
  239. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/test_relationship_score.py +0 -0
  240. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/test_relationship_score_factory_complete.py +0 -0
  241. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/test_report.py +0 -0
  242. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/test_transits_time_range_factory_complete.py +0 -0
  243. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/test_utc.py +0 -0
  244. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/tests/test_utilities.py +0 -0
  245. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/uv.lock +0 -0
  246. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/workspace/README.md +0 -0
  247. {kerykeion-5.0.0b4 → kerykeion-5.0.0b5}/workspace/main.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kerykeion
3
- Version: 5.0.0b4
3
+ Version: 5.0.0b5
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
@@ -926,16 +926,42 @@ Module structure has been completely reorganized:
926
926
  ```python
927
927
  from kerykeion import AstrologicalSubject, KerykeionChartSVG
928
928
  from kerykeion.kr_types import KerykeionException
929
+ from kerykeion.kr_types.kr_literals import Planet, AxialCusps
929
930
  ```
930
931
 
931
932
  **New imports (v5):**
932
933
 
933
934
  ```python
934
935
  from kerykeion import AstrologicalSubjectFactory, ChartDataFactory, ChartDrawer
935
- from kerykeion.schemas.kerykeion_exception import KerykeionException
936
+ from kerykeion.schemas import KerykeionException
937
+ from kerykeion.schemas.kr_literals import AstrologicalPoint
936
938
  ```
937
939
 
938
- #### 3. Lunar Nodes Naming
940
+ **Backward compatibility (v5 only, removed in v6.0):**
941
+
942
+ ```python
943
+ # Old kr_types imports still work with deprecation warnings
944
+ from kerykeion.kr_types import Planet, AxialCusps # Shows warning
945
+ from kerykeion.schemas import Planet, AxialCusps # Works, no warning
946
+ ```
947
+
948
+ #### 3. Type Aliases Unified
949
+
950
+ **Old (v4):** `Planet` and `AxialCusps` were separate types
951
+ **New (v5):** Unified as `AstrologicalPoint`
952
+
953
+ ```python
954
+ # v4
955
+ from kerykeion.kr_types.kr_literals import Planet, AxialCusps
956
+
957
+ # v5 (recommended)
958
+ from kerykeion.schemas.kr_literals import AstrologicalPoint
959
+
960
+ # v5 (transition, uses aliases)
961
+ from kerykeion.schemas import Planet, AxialCusps # Still available
962
+ ```
963
+
964
+ #### 4. Lunar Nodes Naming
939
965
 
940
966
  All lunar node fields have been renamed for clarity:
941
967
 
@@ -956,11 +982,11 @@ print(subject.mean_node)
956
982
  print(subject.mean_north_lunar_node)
957
983
  ```
958
984
 
959
- #### 4. Axis Orb Filtering
985
+ #### 5. Axis Orb Filtering
960
986
 
961
987
  Modern default orbs now treat chart axes (ASC, MC, DSC, IC) exactly like planets. If you prefer a traditional, constrained approach, every public aspect factory exposes the keyword-only `axis_orb_limit` parameter so you can set a dedicated threshold when needed.
962
988
 
963
- #### 5. Chart Generation Changes
989
+ #### 6. Chart Generation Changes
964
990
 
965
991
  The two-step process (data + rendering) is now required:
966
992
 
@@ -979,7 +1005,7 @@ drawer = ChartDrawer(chart_data=chart_data)
979
1005
  drawer.save_svg()
980
1006
  ```
981
1007
 
982
- #### 5. Aspects API Changes
1008
+ #### 7. Aspects API Changes
983
1009
 
984
1010
  Aspects are now calculated through the factory:
985
1011
 
@@ -886,16 +886,42 @@ Module structure has been completely reorganized:
886
886
  ```python
887
887
  from kerykeion import AstrologicalSubject, KerykeionChartSVG
888
888
  from kerykeion.kr_types import KerykeionException
889
+ from kerykeion.kr_types.kr_literals import Planet, AxialCusps
889
890
  ```
890
891
 
891
892
  **New imports (v5):**
892
893
 
893
894
  ```python
894
895
  from kerykeion import AstrologicalSubjectFactory, ChartDataFactory, ChartDrawer
895
- from kerykeion.schemas.kerykeion_exception import KerykeionException
896
+ from kerykeion.schemas import KerykeionException
897
+ from kerykeion.schemas.kr_literals import AstrologicalPoint
896
898
  ```
897
899
 
898
- #### 3. Lunar Nodes Naming
900
+ **Backward compatibility (v5 only, removed in v6.0):**
901
+
902
+ ```python
903
+ # Old kr_types imports still work with deprecation warnings
904
+ from kerykeion.kr_types import Planet, AxialCusps # Shows warning
905
+ from kerykeion.schemas import Planet, AxialCusps # Works, no warning
906
+ ```
907
+
908
+ #### 3. Type Aliases Unified
909
+
910
+ **Old (v4):** `Planet` and `AxialCusps` were separate types
911
+ **New (v5):** Unified as `AstrologicalPoint`
912
+
913
+ ```python
914
+ # v4
915
+ from kerykeion.kr_types.kr_literals import Planet, AxialCusps
916
+
917
+ # v5 (recommended)
918
+ from kerykeion.schemas.kr_literals import AstrologicalPoint
919
+
920
+ # v5 (transition, uses aliases)
921
+ from kerykeion.schemas import Planet, AxialCusps # Still available
922
+ ```
923
+
924
+ #### 4. Lunar Nodes Naming
899
925
 
900
926
  All lunar node fields have been renamed for clarity:
901
927
 
@@ -916,11 +942,11 @@ print(subject.mean_node)
916
942
  print(subject.mean_north_lunar_node)
917
943
  ```
918
944
 
919
- #### 4. Axis Orb Filtering
945
+ #### 5. Axis Orb Filtering
920
946
 
921
947
  Modern default orbs now treat chart axes (ASC, MC, DSC, IC) exactly like planets. If you prefer a traditional, constrained approach, every public aspect factory exposes the keyword-only `axis_orb_limit` parameter so you can set a dedicated threshold when needed.
922
948
 
923
- #### 5. Chart Generation Changes
949
+ #### 6. Chart Generation Changes
924
950
 
925
951
  The two-step process (data + rendering) is now required:
926
952
 
@@ -939,7 +965,7 @@ drawer = ChartDrawer(chart_data=chart_data)
939
965
  drawer.save_svg()
940
966
  ```
941
967
 
942
- #### 5. Aspects API Changes
968
+ #### 7. Aspects API Changes
943
969
 
944
970
  Aspects are now calculated through the factory:
945
971
 
@@ -0,0 +1,70 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ Backward compatibility module for Kerykeion v4.x imports.
4
+
5
+ DEPRECATED: This module will be removed in Kerykeion v6.0.
6
+ Please update your imports:
7
+ OLD: from kerykeion.kr_types import ...
8
+ NEW: from kerykeion.schemas import ...
9
+ """
10
+ import warnings
11
+
12
+ # Issue deprecation warning when this module is imported
13
+ warnings.warn(
14
+ "The 'kerykeion.kr_types' module is deprecated and will be removed in v6.0. "
15
+ "Please update your imports to use 'kerykeion.schemas' instead.",
16
+ DeprecationWarning,
17
+ stacklevel=2,
18
+ )
19
+
20
+ # Re-export everything from schemas for backward compatibility
21
+ from kerykeion.schemas import * # noqa: F401, F403
22
+ from kerykeion.schemas.kerykeion_exception import * # noqa: F401, F403
23
+ from kerykeion.schemas.kr_literals import * # noqa: F401, F403
24
+ from kerykeion.schemas.kr_models import * # noqa: F401, F403
25
+ from kerykeion.schemas.settings_models import * # noqa: F401, F403
26
+ from kerykeion.schemas.chart_template_model import * # noqa: F401, F403
27
+
28
+ __all__ = [
29
+ # Re-export from schemas
30
+ "KerykeionException",
31
+ # kr_literals
32
+ "ZodiacType",
33
+ "Sign",
34
+ "SignNumbers",
35
+ "AspectMovementType",
36
+ "Houses",
37
+ "HouseNumbers",
38
+ "AstrologicalPoint",
39
+ "Element",
40
+ "Quality",
41
+ "ChartType",
42
+ "PointType",
43
+ "LunarPhaseEmoji",
44
+ "LunarPhaseName",
45
+ "SiderealMode",
46
+ "HousesSystemIdentifier",
47
+ "PerspectiveType",
48
+ "SignsEmoji",
49
+ "KerykeionChartTheme",
50
+ "KerykeionChartLanguage",
51
+ "RelationshipScoreDescription",
52
+ "CompositeChartType",
53
+ "AspectName",
54
+ # kr_models
55
+ "AstrologicalSubjectModel",
56
+ "CompositeSubjectModel",
57
+ "KerykeionPointModel",
58
+ "AspectModel",
59
+ "ActiveAspect",
60
+ "SingleChartAspectsModel",
61
+ "DualChartAspectsModel",
62
+ "ElementDistributionModel",
63
+ "QualityDistributionModel",
64
+ "SingleChartDataModel",
65
+ "DualChartDataModel",
66
+ # settings_models
67
+ "KerykeionSettingsModel",
68
+ # chart_template_model
69
+ "ChartTemplateModel",
70
+ ]
@@ -0,0 +1,20 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ Backward compatibility module for chart_template_model.
4
+
5
+ DEPRECATED: This module will be removed in Kerykeion v6.0.
6
+ Please update your imports:
7
+ OLD: from kerykeion.kr_types.chart_template_model import ...
8
+ NEW: from kerykeion.schemas.chart_template_model import ...
9
+ """
10
+ import warnings
11
+
12
+ warnings.warn(
13
+ "The 'kerykeion.kr_types.chart_template_model' module is deprecated and will be removed in v6.0. "
14
+ "Please update your imports to use 'kerykeion.schemas.chart_template_model' instead.",
15
+ DeprecationWarning,
16
+ stacklevel=2,
17
+ )
18
+
19
+ # Re-export everything from schemas.chart_template_model for backward compatibility
20
+ from kerykeion.schemas.chart_template_model import * # noqa: F401, F403
@@ -0,0 +1,20 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ Backward compatibility module for kerykeion_exception.
4
+
5
+ DEPRECATED: This module will be removed in Kerykeion v6.0.
6
+ Please update your imports:
7
+ OLD: from kerykeion.kr_types.kerykeion_exception import ...
8
+ NEW: from kerykeion.schemas.kerykeion_exception import ...
9
+ """
10
+ import warnings
11
+
12
+ warnings.warn(
13
+ "The 'kerykeion.kr_types.kerykeion_exception' module is deprecated and will be removed in v6.0. "
14
+ "Please update your imports to use 'kerykeion.schemas.kerykeion_exception' instead.",
15
+ DeprecationWarning,
16
+ stacklevel=2,
17
+ )
18
+
19
+ # Re-export everything from schemas.kerykeion_exception for backward compatibility
20
+ from kerykeion.schemas.kerykeion_exception import * # noqa: F401, F403
@@ -0,0 +1,20 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ Backward compatibility module for kr_literals.
4
+
5
+ DEPRECATED: This module will be removed in Kerykeion v6.0.
6
+ Please update your imports:
7
+ OLD: from kerykeion.kr_types.kr_literals import ...
8
+ NEW: from kerykeion.schemas.kr_literals import ...
9
+ """
10
+ import warnings
11
+
12
+ warnings.warn(
13
+ "The 'kerykeion.kr_types.kr_literals' module is deprecated and will be removed in v6.0. "
14
+ "Please update your imports to use 'kerykeion.schemas.kr_literals' instead.",
15
+ DeprecationWarning,
16
+ stacklevel=2,
17
+ )
18
+
19
+ # Re-export everything from schemas.kr_literals for backward compatibility
20
+ from kerykeion.schemas.kr_literals import * # noqa: F401, F403
@@ -0,0 +1,20 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ Backward compatibility module for kr_models.
4
+
5
+ DEPRECATED: This module will be removed in Kerykeion v6.0.
6
+ Please update your imports:
7
+ OLD: from kerykeion.kr_types.kr_models import ...
8
+ NEW: from kerykeion.schemas.kr_models import ...
9
+ """
10
+ import warnings
11
+
12
+ warnings.warn(
13
+ "The 'kerykeion.kr_types.kr_models' module is deprecated and will be removed in v6.0. "
14
+ "Please update your imports to use 'kerykeion.schemas.kr_models' instead.",
15
+ DeprecationWarning,
16
+ stacklevel=2,
17
+ )
18
+
19
+ # Re-export everything from schemas.kr_models for backward compatibility
20
+ from kerykeion.schemas.kr_models import * # noqa: F401, F403
@@ -0,0 +1,20 @@
1
+ # -*- coding: utf-8 -*-
2
+ """
3
+ Backward compatibility module for settings_models.
4
+
5
+ DEPRECATED: This module will be removed in Kerykeion v6.0.
6
+ Please update your imports:
7
+ OLD: from kerykeion.kr_types.settings_models import ...
8
+ NEW: from kerykeion.schemas.settings_models import ...
9
+ """
10
+ import warnings
11
+
12
+ warnings.warn(
13
+ "The 'kerykeion.kr_types.settings_models' module is deprecated and will be removed in v6.0. "
14
+ "Please update your imports to use 'kerykeion.schemas.settings_models' instead.",
15
+ DeprecationWarning,
16
+ stacklevel=2,
17
+ )
18
+
19
+ # Re-export everything from schemas.settings_models for backward compatibility
20
+ from kerykeion.schemas.settings_models import * # noqa: F401, F403
@@ -27,6 +27,9 @@ from .kr_literals import (
27
27
  RelationshipScoreDescription,
28
28
  CompositeChartType,
29
29
  AspectName,
30
+ # Deprecated aliases
31
+ Planet,
32
+ AxialCusps,
30
33
  )
31
34
  from .kr_models import (
32
35
  SubscriptableBaseModel,
@@ -80,6 +83,10 @@ __all__ = [
80
83
  "CompositeChartType",
81
84
  "AspectName",
82
85
 
86
+ # Deprecated aliases (for v4.x compatibility, will be removed in v6.0)
87
+ "Planet",
88
+ "AxialCusps",
89
+
83
90
  # Main Model Classes (from kr_models)
84
91
  "SubscriptableBaseModel",
85
92
  "LunarPhaseModel",
@@ -168,3 +168,14 @@ AspectName = Literal[
168
168
 
169
169
  ReturnType = Literal["Lunar", "Solar"]
170
170
  """Literal type for Return Types"""
171
+
172
+
173
+ # ---------------------------------------------------------------------------
174
+ # Deprecated aliases for backward compatibility with Kerykeion v4.x
175
+ # ---------------------------------------------------------------------------
176
+ # These will be removed in v6.0 - migrate to AstrologicalPoint
177
+ Planet = AstrologicalPoint
178
+ """DEPRECATED: Use AstrologicalPoint instead. This alias will be removed in v6.0."""
179
+
180
+ AxialCusps = AstrologicalPoint
181
+ """DEPRECATED: Use AstrologicalPoint instead. This alias will be removed in v6.0."""
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "kerykeion"
3
- version = "5.0.0b4"
3
+ version = "5.0.0b5"
4
4
  authors = [
5
5
  { name = "Giacomo Battaglia", email = "kerykeion.astrology@gmail.com" }
6
6
  ]
@@ -35,8 +35,10 @@
35
35
 
36
36
  ## Compatibility & migration from v4
37
37
  - Import directly from the package root (`from kerykeion import AstrologicalSubjectFactory, ChartDataFactory, ChartDrawer, ...`).
38
- - `kerykeion.backword` provides deprecated wrappers (`AstrologicalSubject`, `KerykeionChartSVG`, `SynastryAspects`) so existing code keeps running while pointing to the new APIs.
39
- - `kr_types` has been replaced by `kerykeion.schemas`; update exceptions, literals, and model imports accordingly.
38
+ - `kerykeion.backword` provides deprecated wrappers (`AstrologicalSubject`, `KerykeionChartSVG`, `NatalAspects`, `SynastryAspects`) so existing code keeps running while pointing to the new APIs.
39
+ - `kr_types` module path still works but shows deprecation warnings; update to `kerykeion.schemas`.
40
+ - Type aliases `Planet` and `AxialCusps` unified as `AstrologicalPoint`; legacy aliases available in v5 without warnings when imported from `schemas`.
41
+ - Backward compatibility layer (`kr_types` module and legacy wrappers) will be **removed in v6.0**.
40
42
  - Relationship scoring now lives in `RelationshipScoreFactory` and the models returned by `ChartDataFactory`.
41
43
  - Regeneration scripts (`scripts/regenerate_*`) realign fixtures and custom SVG assets with the new pipeline.
42
44
 
@@ -0,0 +1,177 @@
1
+ """
2
+ Tests for backward compatibility aliases (kr_types module and deprecated type aliases).
3
+
4
+ This test suite verifies that Kerykeion v5 maintains compatibility with v4 imports,
5
+ while issuing appropriate deprecation warnings.
6
+ """
7
+ import warnings
8
+ import pytest
9
+
10
+
11
+ class TestKrTypesModuleCompatibility:
12
+ """Test that kr_types module exists and re-exports schemas."""
13
+
14
+ def test_kr_types_import_with_warning(self):
15
+ """Test that importing kr_types triggers deprecation warning."""
16
+ with warnings.catch_warnings(record=True) as w:
17
+ warnings.simplefilter("always", DeprecationWarning)
18
+
19
+ # Import should work but trigger warning
20
+ from kerykeion import kr_types # noqa: F401
21
+
22
+ # Filter for kr_types specific deprecation warnings
23
+ kr_types_warnings = [
24
+ warning for warning in w
25
+ if issubclass(warning.category, DeprecationWarning)
26
+ and "kr_types" in str(warning.message)
27
+ ]
28
+ assert len(kr_types_warnings) >= 1
29
+ assert "v6.0" in str(kr_types_warnings[0].message)
30
+
31
+ def test_kr_types_planet_alias(self):
32
+ """Test that Planet alias is available from kr_types."""
33
+ with warnings.catch_warnings():
34
+ warnings.simplefilter("ignore", DeprecationWarning)
35
+
36
+ from kerykeion.kr_types import Planet, AstrologicalPoint
37
+
38
+ # Planet should be an alias for AstrologicalPoint
39
+ assert Planet == AstrologicalPoint
40
+
41
+ def test_kr_types_axial_cusps_alias(self):
42
+ """Test that AxialCusps alias is available from kr_types."""
43
+ with warnings.catch_warnings():
44
+ warnings.simplefilter("ignore", DeprecationWarning)
45
+
46
+ from kerykeion.kr_types import AxialCusps, AstrologicalPoint
47
+
48
+ # AxialCusps should be an alias for AstrologicalPoint
49
+ assert AxialCusps == AstrologicalPoint
50
+
51
+ def test_kr_types_kr_literals_submodule(self):
52
+ """Test that kr_types.kr_literals works as a compatibility shim."""
53
+ with warnings.catch_warnings(record=True) as w:
54
+ warnings.simplefilter("always", DeprecationWarning)
55
+
56
+ from kerykeion.kr_types.kr_literals import Planet, AxialCusps
57
+
58
+ # Should trigger deprecation warning
59
+ deprecation_warnings = [warning for warning in w if issubclass(warning.category, DeprecationWarning)]
60
+ assert any("kr_types.kr_literals" in str(dw.message) for dw in deprecation_warnings)
61
+
62
+ # But imports should still work
63
+ assert Planet is not None
64
+ assert AxialCusps is not None
65
+
66
+ def test_kr_types_kr_models_submodule(self):
67
+ """Test that kr_types.kr_models works as a compatibility shim."""
68
+ with warnings.catch_warnings(record=True) as w:
69
+ warnings.simplefilter("always", DeprecationWarning)
70
+
71
+ from kerykeion.kr_types.kr_models import AstrologicalSubjectModel
72
+
73
+ # Should trigger deprecation warning
74
+ deprecation_warnings = [warning for warning in w if issubclass(warning.category, DeprecationWarning)]
75
+ assert any("kr_types.kr_models" in str(dw.message) for dw in deprecation_warnings)
76
+
77
+ # But imports should still work
78
+ assert AstrologicalSubjectModel is not None
79
+
80
+
81
+ class TestDeprecatedAliasesInSchemas:
82
+ """Test that deprecated aliases are available in new schemas module."""
83
+
84
+ def test_planet_alias_in_schemas(self):
85
+ """Test that Planet alias exists in schemas module."""
86
+ from kerykeion.schemas import Planet, AstrologicalPoint
87
+
88
+ # Planet should be an alias for AstrologicalPoint
89
+ assert Planet == AstrologicalPoint
90
+
91
+ def test_axial_cusps_alias_in_schemas(self):
92
+ """Test that AxialCusps alias exists in schemas module."""
93
+ from kerykeion.schemas import AxialCusps, AstrologicalPoint
94
+
95
+ # AxialCusps should be an alias for AstrologicalPoint
96
+ assert AxialCusps == AstrologicalPoint
97
+
98
+ def test_planet_alias_in_kr_literals(self):
99
+ """Test that Planet alias exists in schemas.kr_literals."""
100
+ from kerykeion.schemas.kr_literals import Planet, AstrologicalPoint
101
+
102
+ assert Planet == AstrologicalPoint
103
+
104
+ def test_axial_cusps_alias_in_kr_literals(self):
105
+ """Test that AxialCusps alias exists in schemas.kr_literals."""
106
+ from kerykeion.schemas.kr_literals import AxialCusps, AstrologicalPoint
107
+
108
+ assert AxialCusps == AstrologicalPoint
109
+
110
+
111
+ class TestMigrationPathExamples:
112
+ """Document migration paths for common v4 usage patterns."""
113
+
114
+ def test_v4_import_pattern_1(self):
115
+ """
116
+ V4 Pattern: from kerykeion.kr_types import Planet
117
+ V5 Pattern: from kerykeion.schemas import AstrologicalPoint
118
+
119
+ Compatibility: from kerykeion.schemas import Planet (with alias)
120
+ """
121
+ with warnings.catch_warnings():
122
+ warnings.simplefilter("ignore", DeprecationWarning)
123
+
124
+ # Old way (still works via kr_types)
125
+ from kerykeion.kr_types import Planet as PlanetOld
126
+
127
+ # New way (recommended)
128
+ from kerykeion.schemas import AstrologicalPoint
129
+
130
+ # Transition way (works, no warning)
131
+ from kerykeion.schemas import Planet as PlanetAlias
132
+
133
+ assert PlanetOld == AstrologicalPoint
134
+ assert PlanetAlias == AstrologicalPoint
135
+
136
+ def test_v4_import_pattern_2(self):
137
+ """
138
+ V4 Pattern: from kerykeion.kr_types.kr_literals import Planet, AxialCusps
139
+ V5 Pattern: from kerykeion.schemas.kr_literals import AstrologicalPoint
140
+
141
+ Compatibility: from kerykeion.schemas.kr_literals import Planet, AxialCusps
142
+ """
143
+ with warnings.catch_warnings():
144
+ warnings.simplefilter("ignore", DeprecationWarning)
145
+
146
+ # Old way (still works via kr_types, with deprecation)
147
+ from kerykeion.kr_types.kr_literals import Planet as POld, AxialCusps as ACOld
148
+
149
+ # New way (recommended)
150
+ from kerykeion.schemas.kr_literals import AstrologicalPoint
151
+
152
+ # Transition way (works, no warning)
153
+ from kerykeion.schemas.kr_literals import Planet as PNew, AxialCusps as ACNew
154
+
155
+ assert POld == AstrologicalPoint
156
+ assert ACOld == AstrologicalPoint
157
+ assert PNew == AstrologicalPoint
158
+ assert ACNew == AstrologicalPoint
159
+
160
+ def test_v4_import_pattern_3(self):
161
+ """
162
+ V4 Pattern: from kerykeion.kr_types.kr_models import AstrologicalSubjectModel
163
+ V5 Pattern: from kerykeion.schemas.kr_models import AstrologicalSubjectModel
164
+
165
+ No alias needed here, just path change.
166
+ """
167
+ with warnings.catch_warnings():
168
+ warnings.simplefilter("ignore", DeprecationWarning)
169
+
170
+ # Old way (still works via kr_types, with deprecation)
171
+ from kerykeion.kr_types.kr_models import AstrologicalSubjectModel as ASMOld
172
+
173
+ # New way (recommended, no warning)
174
+ from kerykeion.schemas.kr_models import AstrologicalSubjectModel as ASMNew
175
+
176
+ # Should be the same class
177
+ assert ASMOld is ASMNew
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes