kerykeion 5.0.1__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.
- {kerykeion-5.0.1 → kerykeion-5.0.2}/PKG-INFO +106 -4
- {kerykeion-5.0.1 → kerykeion-5.0.2}/README.md +105 -3
- {kerykeion-5.0.1 → kerykeion-5.0.2}/TODO.md +2 -1
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/charts/chart_drawer.py +8 -4
- {kerykeion-5.0.1 → kerykeion-5.0.2}/pyproject.toml +1 -1
- {kerykeion-5.0.1 → kerykeion-5.0.2}/scripts/regenerate_test_charts.py +16 -0
- kerykeion-5.0.2/tests/charts/svg/John Lennon - DualReturnChart Chart - Lunar Return.svg +863 -0
- kerykeion-5.0.2/tests/charts/svg/John Lennon Lunar Return - SingleReturnChart Chart.svg +863 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/test_charts.py +46 -0
- kerykeion-5.0.1/.uv-cache/.gitignore +0 -1
- kerykeion-5.0.1/.uv-cache/.lock +0 -0
- kerykeion-5.0.1/.uv-cache/CACHEDIR.TAG +0 -1
- kerykeion-5.0.1/.uv-cache/interpreter-v4/7e11d242fb84b9e8/66d9843502616e2c.msgpack +0 -0
- kerykeion-5.0.1/.uv-cache/sdists-v9/.git +0 -0
- kerykeion-5.0.1/.uv-cache/sdists-v9/.gitignore +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/.coveragerc +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/.github/FUNDING.yml +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/.gitignore +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/CHANGELOG.md +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/DEVELOPMENT.md +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/LICENSE +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/MANIFEST.in +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/index.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/kerykeion/aspects/aspects_utils.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/kerykeion/aspects/natal_aspects.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/kerykeion/aspects/synastry_aspects.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/kerykeion/aspects/transits_time_range.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/kerykeion/aspects.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/kerykeion/astrological_subject.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/kerykeion/charts/charts_utils.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/kerykeion/charts/draw_planets.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/kerykeion/charts/kerykeion_chart_svg.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/kerykeion/charts.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/kerykeion/composite_subject_factory.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/kerykeion/enums.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/kerykeion/ephemeris_data.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/kerykeion/fetch_geonames.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/kerykeion/kr_types/chart_types.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/kerykeion/kr_types/kerykeion_exception.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/kerykeion/kr_types/kr_literals.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/kerykeion/kr_types/kr_models.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/kerykeion/kr_types/settings_models.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/kerykeion/kr_types.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/kerykeion/relationship_score/relationship_score.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/kerykeion/relationship_score/relationship_score_factory.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/kerykeion/relationship_score.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/kerykeion/report.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/kerykeion/settings/config_constants.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/kerykeion/settings/kerykeion_settings.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/kerykeion/settings.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/kerykeion/transits_time_range.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/kerykeion/utilities.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/kerykeion.html +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/docs/search.js +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/examples/aspects_synastry.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/examples/composite_report_example.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/examples/current_time_report.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/examples/dual_return_report_example.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/examples/natal_report_example.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/examples/planetary_return.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/examples/quickstart_natal_chart.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/examples/solar_return_report_example.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/examples/subject_report_example.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/examples/synastry_report_example.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/examples/transit_report_example.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/examples/transits_time_range.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/__init__.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/aspects/__init__.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/aspects/aspects_factory.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/aspects/aspects_utils.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/astrological_subject_factory.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/backword.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/chart_data_factory.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/charts/__init__.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/charts/charts_utils.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/charts/draw_planets.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/charts/templates/aspect_grid_only.xml +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/charts/templates/chart.xml +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/charts/templates/wheel_only.xml +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/charts/themes/black-and-white.css +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/charts/themes/classic.css +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/charts/themes/dark-high-contrast.css +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/charts/themes/dark.css +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/charts/themes/light.css +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/charts/themes/strawberry.css +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/composite_subject_factory.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/ephemeris_data_factory.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/fetch_geonames.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/house_comparison/__init__.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/house_comparison/house_comparison_factory.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/house_comparison/house_comparison_utils.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/kr_types/__init__.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/kr_types/chart_template_model.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/kr_types/kerykeion_exception.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/kr_types/kr_literals.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/kr_types/kr_models.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/kr_types/settings_models.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/planetary_return_factory.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/relationship_score_factory.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/report.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/schemas/__init__.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/schemas/chart_template_model.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/schemas/kerykeion_exception.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/schemas/kr_literals.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/schemas/kr_models.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/schemas/settings_models.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/settings/__init__.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/settings/chart_defaults.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/settings/config_constants.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/settings/kerykeion_settings.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/settings/translation_strings.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/settings/translations.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/sweph/README.md +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/sweph/ast136/s136108s.se1 +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/sweph/ast136/s136199s.se1 +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/sweph/ast136/s136472s.se1 +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/sweph/ast28/se28978s.se1 +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/sweph/ast50/se50000s.se1 +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/sweph/ast90/se90377s.se1 +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/sweph/ast90/se90482s.se1 +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/sweph/seas_18.se1 +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/sweph/sefstars.txt +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/transits_time_range_factory.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/kerykeion/utilities.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/release_notes/V4.14.0.md +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/release_notes/V4.16.0.md +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/release_notes/V4.17.0.md +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/release_notes/V4.19.0.md +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/release_notes/V4.21.0.md +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/release_notes/V4.22.0.md +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/release_notes/V4.23.0.md +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/release_notes/V4.24.0.md +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/release_notes/V4.25.0.md +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/release_notes/V4.26.0.md +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/release_notes/v5.0.0.md +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/release_notes/v5.0.0a.md +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/release_notes/v5.0.0b.md +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/scripts/README.md +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/scripts/__init__.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/scripts/quality_check.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/scripts/regenerate_expected_aspects.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/scripts/regenerate_synastry_aspects.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/scripts/regenerate_synastry_from_test.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/scripts/test_markdown_snippets.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/site-docs/aspects.md +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/site-docs/astrological_subject_factory.md +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/site-docs/chart_data_factory.md +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/site-docs/charts.md +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/site-docs/composite_subject_factory.md +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/site-docs/element_quality_distribution.md +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/site-docs/ephemeris_data_factory.md +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/site-docs/house_comparison.md +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/site-docs/planetary_return_factory.md +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/site-docs/relationship_score_factory.md +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/site-docs/report.md +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/site-docs/transits_time_range_factory.md +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/site-docs/utilities.md +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/__init__.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/aspects/__init__.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/aspects/expected_natal_aspects.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/aspects/expected_synastry_aspects.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/aspects/test_natal_aspects.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/aspects/test_synastry_aspects.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/__init__.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/compare_svg_lines.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/Albert Einstein - Natal Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/Amitabh Bachchan - Natal Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/Angelina Jolie and Brad Pitt Composite Chart - Black and White Theme - Composite Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/Angelina Jolie and Brad Pitt Composite Chart - Composite Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/Antonio Banderas - Natal Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/Cristiano Ronaldo - Natal Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/Hua Chenyu - Natal Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/Jeanne Moreau - Natal Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - All Active Points - Natal Chart - Aspect Grid Only.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - All Active Points - Natal Chart - Wheel Only.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - All Active Points - Natal Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - All Active Points - Synastry Chart - Aspect Grid Only.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - All Active Points - Synastry Chart - Grid.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - All Active Points - Synastry Chart - List.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - All Active Points - Synastry Chart - Wheel Only.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Aspect Grid Dark Synastry - Synastry Chart - Aspect Grid Only.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Aspect Grid Dark Theme - Natal Chart - Aspect Grid Only.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Aspect Grid Light Theme - Natal Chart - Aspect Grid Only.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Aspect Grid Only - Natal Chart - Aspect Grid Only.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Aspect Grid Synastry - Synastry Chart - Aspect Grid Only.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Aspect Grid Transit - Transit Chart - Aspect Grid Only.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Black and White Theme - DualReturnChart Chart - Solar Return.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Black and White Theme - Natal Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Black and White Theme - Synastry Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Black and White Theme - Transit Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - DTS - Synastry Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Dark High Contrast Theme - Natal Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Dark Theme - Natal Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Dark Theme External - Natal Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - DualReturnChart Chart - Solar Return.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - ExternalNatal - Natal Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Heliocentric - Natal Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - House System Morinus - Natal Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Light Theme - Natal Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Minified - Natal Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Natal Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - SCTWL - Synastry Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Synastry Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - TCWTG - Transit Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Topocentric - Natal Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Transit Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Transparent Background - Natal Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - True Geocentric - Natal Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Wheel External Only - ExternalNatal Chart - Wheel Only.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Wheel Only - Natal Chart - Wheel Only.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Wheel Synastry Only - Synastry Chart - Wheel Only.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon - Wheel Transit Only - Transit Chart - Wheel Only.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon DeLuce - Natal Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon Fagan-Bradley - Light Theme - Natal Chart - Wheel Only.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon Fagan-Bradley - Natal Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon J2000 - Natal Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon Lahiri - Dark Theme - Natal Chart - Wheel Only.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon Lahiri - Natal Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon Solar Return - Black and White Theme - SingleReturnChart Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/John Lennon Solar Return - SingleReturnChart Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/Kanye - Natal Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/Mehmet Oz - Natal Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/Mikhail Bulgakov - Natal Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/svg/Sophia Loren - Natal Chart.svg +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/charts/test_draw_planets.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/settings/test_settings.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/test_all_active_points.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/test_astrological_subject.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/test_astrological_subject_jyotish.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/test_backward_compatibility.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/test_backword.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/test_chart_data_factory.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/test_chart_data_factory_complete.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/test_chart_drawer_complete.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/test_composite_subject_factory_complete.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/test_ephemeris_data.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/test_ephemeris_data_factory_complete.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/test_fetch_geonames.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/test_json_dump.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/test_planetary_return_factory_complete.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/test_relationship_score.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/test_relationship_score_factory_complete.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/test_report.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/test_transits_time_range_factory_complete.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/test_utc.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/tests/test_utilities.py +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/uv.lock +0 -0
- {kerykeion-5.0.1 → kerykeion-5.0.2}/workspace/README.md +0 -0
- {kerykeion-5.0.1 → 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.
|
|
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
|
|
@@ -92,6 +92,9 @@ Maintaining this project requires substantial time and effort. The Astrologer AP
|
|
|
92
92
|
- [External Birth Chart](#external-birth-chart)
|
|
93
93
|
- [Synastry Chart](#synastry-chart)
|
|
94
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)
|
|
95
98
|
- [Composite Chart](#composite-chart)
|
|
96
99
|
- [Wheel Only Charts](#wheel-only-charts)
|
|
97
100
|
- [Birth Chart](#birth-chart-1)
|
|
@@ -99,6 +102,7 @@ Maintaining this project requires substantial time and effort. The Astrologer AP
|
|
|
99
102
|
- [Synastry Chart](#synastry-chart-1)
|
|
100
103
|
- [Change the Output Directory](#change-the-output-directory)
|
|
101
104
|
- [Change Language](#change-language)
|
|
105
|
+
- [Minified SVG](#minified-svg)
|
|
102
106
|
- [SVG without CSS Variables](#svg-without-css-variables)
|
|
103
107
|
- [Grid Only SVG](#grid-only-svg)
|
|
104
108
|
- [Report Generator](#report-generator)
|
|
@@ -224,7 +228,7 @@ from kerykeion.charts.chart_drawer import ChartDrawer
|
|
|
224
228
|
birth_chart = AstrologicalSubjectFactory.from_birth_data("John Lennon", 1940, 10, 9, 18, 30, "Liverpool", "GB")
|
|
225
229
|
|
|
226
230
|
# Step 2: Pre-compute chart data for external natal chart
|
|
227
|
-
chart_data = ChartDataFactory.
|
|
231
|
+
chart_data = ChartDataFactory.create_natal_chart_data(birth_chart)
|
|
228
232
|
|
|
229
233
|
# Step 3: Create visualization
|
|
230
234
|
birth_chart_svg = ChartDrawer(chart_data=chart_data)
|
|
@@ -275,6 +279,104 @@ transit_chart.save_svg()
|
|
|
275
279
|
|
|
276
280
|

|
|
277
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
|
+

|
|
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
|
+

|
|
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
|
+

|
|
377
|
+
|
|
378
|
+

|
|
379
|
+
|
|
278
380
|
### Composite Chart
|
|
279
381
|
|
|
280
382
|
```python
|
|
@@ -336,7 +438,7 @@ from kerykeion.charts.chart_drawer import ChartDrawer
|
|
|
336
438
|
birth_chart = AstrologicalSubjectFactory.from_birth_data("John Lennon", 1940, 10, 9, 18, 30, "Liverpool", "GB")
|
|
337
439
|
|
|
338
440
|
# Step 2: Pre-compute external natal chart data
|
|
339
|
-
chart_data = ChartDataFactory.
|
|
441
|
+
chart_data = ChartDataFactory.create_natal_chart_data(birth_chart)
|
|
340
442
|
|
|
341
443
|
# Step 3: Create visualization
|
|
342
444
|
birth_chart_svg = ChartDrawer(chart_data=chart_data)
|
|
@@ -411,6 +513,7 @@ birth_chart_svg = ChartDrawer(
|
|
|
411
513
|
chart_language="IT" # Change to Italian
|
|
412
514
|
)
|
|
413
515
|
birth_chart_svg.save_svg()
|
|
516
|
+
```
|
|
414
517
|
|
|
415
518
|
You can also provide custom labels (or introduce a brand-new language) by passing
|
|
416
519
|
a dictionary to `language_pack`. Only the keys you supply are merged on top of the
|
|
@@ -430,7 +533,6 @@ birth_chart_svg = ChartDrawer(
|
|
|
430
533
|
language_pack=custom_labels["PT"],
|
|
431
534
|
)
|
|
432
535
|
```
|
|
433
|
-
```
|
|
434
536
|
|
|
435
537
|
More details [here](https://www.kerykeion.net/docs/chart-language).
|
|
436
538
|
|
|
@@ -52,6 +52,9 @@ Maintaining this project requires substantial time and effort. The Astrologer AP
|
|
|
52
52
|
- [External Birth Chart](#external-birth-chart)
|
|
53
53
|
- [Synastry Chart](#synastry-chart)
|
|
54
54
|
- [Transit Chart](#transit-chart)
|
|
55
|
+
- [Solar Return Chart (Dual Wheel)](#solar-return-chart-dual-wheel)
|
|
56
|
+
- [Solar Return Chart (Single Wheel)](#solar-return-chart-single-wheel)
|
|
57
|
+
- [Lunar Return Chart](#lunar-return-chart)
|
|
55
58
|
- [Composite Chart](#composite-chart)
|
|
56
59
|
- [Wheel Only Charts](#wheel-only-charts)
|
|
57
60
|
- [Birth Chart](#birth-chart-1)
|
|
@@ -59,6 +62,7 @@ Maintaining this project requires substantial time and effort. The Astrologer AP
|
|
|
59
62
|
- [Synastry Chart](#synastry-chart-1)
|
|
60
63
|
- [Change the Output Directory](#change-the-output-directory)
|
|
61
64
|
- [Change Language](#change-language)
|
|
65
|
+
- [Minified SVG](#minified-svg)
|
|
62
66
|
- [SVG without CSS Variables](#svg-without-css-variables)
|
|
63
67
|
- [Grid Only SVG](#grid-only-svg)
|
|
64
68
|
- [Report Generator](#report-generator)
|
|
@@ -184,7 +188,7 @@ from kerykeion.charts.chart_drawer import ChartDrawer
|
|
|
184
188
|
birth_chart = AstrologicalSubjectFactory.from_birth_data("John Lennon", 1940, 10, 9, 18, 30, "Liverpool", "GB")
|
|
185
189
|
|
|
186
190
|
# Step 2: Pre-compute chart data for external natal chart
|
|
187
|
-
chart_data = ChartDataFactory.
|
|
191
|
+
chart_data = ChartDataFactory.create_natal_chart_data(birth_chart)
|
|
188
192
|
|
|
189
193
|
# Step 3: Create visualization
|
|
190
194
|
birth_chart_svg = ChartDrawer(chart_data=chart_data)
|
|
@@ -235,6 +239,104 @@ transit_chart.save_svg()
|
|
|
235
239
|
|
|
236
240
|

|
|
237
241
|
|
|
242
|
+
### Solar Return Chart (Dual Wheel)
|
|
243
|
+
|
|
244
|
+
```python
|
|
245
|
+
from kerykeion import AstrologicalSubjectFactory
|
|
246
|
+
from kerykeion.planetary_return_factory import PlanetaryReturnFactory
|
|
247
|
+
from kerykeion.chart_data_factory import ChartDataFactory
|
|
248
|
+
from kerykeion.charts.chart_drawer import ChartDrawer
|
|
249
|
+
|
|
250
|
+
# Step 1: Create natal subject
|
|
251
|
+
john = AstrologicalSubjectFactory.from_birth_data("John Lennon", 1940, 10, 9, 18, 30, "Liverpool", "GB")
|
|
252
|
+
|
|
253
|
+
# Step 2: Calculate Solar Return subject (offline example with manual coordinates)
|
|
254
|
+
return_factory = PlanetaryReturnFactory(
|
|
255
|
+
john,
|
|
256
|
+
lng=-2.9833,
|
|
257
|
+
lat=53.4000,
|
|
258
|
+
tz_str="Europe/London",
|
|
259
|
+
online=False
|
|
260
|
+
)
|
|
261
|
+
solar_return_subject = return_factory.next_return_from_year(1964, "Solar")
|
|
262
|
+
|
|
263
|
+
# Step 3: Pre-compute return chart data (dual wheel: natal + solar return)
|
|
264
|
+
chart_data = ChartDataFactory.create_return_chart_data(john, solar_return_subject)
|
|
265
|
+
|
|
266
|
+
# Step 4: Create visualization
|
|
267
|
+
solar_return_chart = ChartDrawer(chart_data=chart_data)
|
|
268
|
+
solar_return_chart.save_svg()
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+

|
|
272
|
+
|
|
273
|
+
### Solar Return Chart (Single Wheel)
|
|
274
|
+
|
|
275
|
+
```python
|
|
276
|
+
from kerykeion import AstrologicalSubjectFactory
|
|
277
|
+
from kerykeion.planetary_return_factory import PlanetaryReturnFactory
|
|
278
|
+
from kerykeion.chart_data_factory import ChartDataFactory
|
|
279
|
+
from kerykeion.charts.chart_drawer import ChartDrawer
|
|
280
|
+
|
|
281
|
+
# Step 1: Create natal subject
|
|
282
|
+
john = AstrologicalSubjectFactory.from_birth_data("John Lennon", 1940, 10, 9, 18, 30, "Liverpool", "GB")
|
|
283
|
+
|
|
284
|
+
# Step 2: Calculate Solar Return subject (offline example with manual coordinates)
|
|
285
|
+
return_factory = PlanetaryReturnFactory(
|
|
286
|
+
john,
|
|
287
|
+
lng=-2.9833,
|
|
288
|
+
lat=53.4000,
|
|
289
|
+
tz_str="Europe/London",
|
|
290
|
+
online=False
|
|
291
|
+
)
|
|
292
|
+
solar_return_subject = return_factory.next_return_from_year(1964, "Solar")
|
|
293
|
+
|
|
294
|
+
# Step 3: Build a single-wheel return chart
|
|
295
|
+
chart_data = ChartDataFactory.create_single_wheel_return_chart_data(solar_return_subject)
|
|
296
|
+
|
|
297
|
+
# Step 4: Create visualization
|
|
298
|
+
single_wheel_chart = ChartDrawer(chart_data=chart_data)
|
|
299
|
+
single_wheel_chart.save_svg()
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+

|
|
303
|
+
|
|
304
|
+
### Lunar Return Chart
|
|
305
|
+
|
|
306
|
+
```python
|
|
307
|
+
from kerykeion import AstrologicalSubjectFactory
|
|
308
|
+
from kerykeion.planetary_return_factory import PlanetaryReturnFactory
|
|
309
|
+
from kerykeion.chart_data_factory import ChartDataFactory
|
|
310
|
+
from kerykeion.charts.chart_drawer import ChartDrawer
|
|
311
|
+
|
|
312
|
+
# Step 1: Create natal subject
|
|
313
|
+
john = AstrologicalSubjectFactory.from_birth_data("John Lennon", 1940, 10, 9, 18, 30, "Liverpool", "GB")
|
|
314
|
+
|
|
315
|
+
# Step 2: Calculate Lunar Return subject
|
|
316
|
+
return_factory = PlanetaryReturnFactory(
|
|
317
|
+
john,
|
|
318
|
+
lng=-2.9833,
|
|
319
|
+
lat=53.4000,
|
|
320
|
+
tz_str="Europe/London",
|
|
321
|
+
online=False
|
|
322
|
+
)
|
|
323
|
+
lunar_return_subject = return_factory.next_return_from_year(1964, "Lunar")
|
|
324
|
+
|
|
325
|
+
# Step 3: Build a dual wheel (natal + lunar return)
|
|
326
|
+
lunar_return_chart_data = ChartDataFactory.create_return_chart_data(john, lunar_return_subject)
|
|
327
|
+
dual_wheel_chart = ChartDrawer(chart_data=lunar_return_chart_data)
|
|
328
|
+
dual_wheel_chart.save_svg()
|
|
329
|
+
|
|
330
|
+
# Optional: create a single-wheel lunar return
|
|
331
|
+
single_wheel_data = ChartDataFactory.create_single_wheel_return_chart_data(lunar_return_subject)
|
|
332
|
+
single_wheel_chart = ChartDrawer(chart_data=single_wheel_data)
|
|
333
|
+
single_wheel_chart.save_svg()
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+

|
|
337
|
+
|
|
338
|
+

|
|
339
|
+
|
|
238
340
|
### Composite Chart
|
|
239
341
|
|
|
240
342
|
```python
|
|
@@ -296,7 +398,7 @@ from kerykeion.charts.chart_drawer import ChartDrawer
|
|
|
296
398
|
birth_chart = AstrologicalSubjectFactory.from_birth_data("John Lennon", 1940, 10, 9, 18, 30, "Liverpool", "GB")
|
|
297
399
|
|
|
298
400
|
# Step 2: Pre-compute external natal chart data
|
|
299
|
-
chart_data = ChartDataFactory.
|
|
401
|
+
chart_data = ChartDataFactory.create_natal_chart_data(birth_chart)
|
|
300
402
|
|
|
301
403
|
# Step 3: Create visualization
|
|
302
404
|
birth_chart_svg = ChartDrawer(chart_data=chart_data)
|
|
@@ -371,6 +473,7 @@ birth_chart_svg = ChartDrawer(
|
|
|
371
473
|
chart_language="IT" # Change to Italian
|
|
372
474
|
)
|
|
373
475
|
birth_chart_svg.save_svg()
|
|
476
|
+
```
|
|
374
477
|
|
|
375
478
|
You can also provide custom labels (or introduce a brand-new language) by passing
|
|
376
479
|
a dictionary to `language_pack`. Only the keys you supply are merged on top of the
|
|
@@ -390,7 +493,6 @@ birth_chart_svg = ChartDrawer(
|
|
|
390
493
|
language_pack=custom_labels["PT"],
|
|
391
494
|
)
|
|
392
495
|
```
|
|
393
|
-
```
|
|
394
496
|
|
|
395
497
|
More details [here](https://www.kerykeion.net/docs/chart-language).
|
|
396
498
|
|
|
@@ -1071,24 +1071,28 @@ class ChartDrawer:
|
|
|
1071
1071
|
return f"{synastry_label}: {name1} {and_word} {name2}"
|
|
1072
1072
|
|
|
1073
1073
|
elif self.chart_type == "DualReturnChart":
|
|
1074
|
-
|
|
1074
|
+
return_datetime = datetime.fromisoformat(self.second_obj.iso_formatted_local_datetime) # type: ignore
|
|
1075
|
+
year = return_datetime.year
|
|
1076
|
+
month_year = return_datetime.strftime("%m/%Y")
|
|
1075
1077
|
truncated_name = self._truncate_name(self.first_obj.name)
|
|
1076
1078
|
if self.second_obj is not None and isinstance(self.second_obj, PlanetReturnModel) and self.second_obj.return_type == "Solar":
|
|
1077
1079
|
solar_label = self._translate("solar_return", "Solar")
|
|
1078
1080
|
return f"{truncated_name} - {solar_label} {year}"
|
|
1079
1081
|
else:
|
|
1080
1082
|
lunar_label = self._translate("lunar_return", "Lunar")
|
|
1081
|
-
return f"{truncated_name} - {lunar_label} {
|
|
1083
|
+
return f"{truncated_name} - {lunar_label} {month_year}"
|
|
1082
1084
|
|
|
1083
1085
|
elif self.chart_type == "SingleReturnChart":
|
|
1084
|
-
|
|
1086
|
+
return_datetime = datetime.fromisoformat(self.first_obj.iso_formatted_local_datetime) # type: ignore
|
|
1087
|
+
year = return_datetime.year
|
|
1088
|
+
month_year = return_datetime.strftime("%m/%Y")
|
|
1085
1089
|
truncated_name = self._truncate_name(self.first_obj.name)
|
|
1086
1090
|
if isinstance(self.first_obj, PlanetReturnModel) and self.first_obj.return_type == "Solar":
|
|
1087
1091
|
solar_label = self._translate("solar_return", "Solar")
|
|
1088
1092
|
return f"{truncated_name} - {solar_label} {year}"
|
|
1089
1093
|
else:
|
|
1090
1094
|
lunar_label = self._translate("lunar_return", "Lunar")
|
|
1091
|
-
return f"{truncated_name} - {lunar_label} {
|
|
1095
|
+
return f"{truncated_name} - {lunar_label} {month_year}"
|
|
1092
1096
|
|
|
1093
1097
|
# Fallback for unknown chart types
|
|
1094
1098
|
return self._truncate_name(self.first_obj.name)
|
|
@@ -373,6 +373,22 @@ black_and_white_single_return_chart.save_svg(
|
|
|
373
373
|
filename="John Lennon Solar Return - Black and White Theme - SingleReturnChart Chart",
|
|
374
374
|
)
|
|
375
375
|
|
|
376
|
+
# Lunar Return Charts
|
|
377
|
+
lunar_return = return_factory.next_return_from_iso_formatted_time(
|
|
378
|
+
"2025-01-09T18:30:00+01:00",
|
|
379
|
+
return_type="Lunar",
|
|
380
|
+
)
|
|
381
|
+
|
|
382
|
+
# Dual Return (Natal + Lunar Return)
|
|
383
|
+
lunar_dual_return_chart_data = ChartDataFactory.create_return_chart_data(first, lunar_return)
|
|
384
|
+
lunar_dual_return_chart = ChartDrawer(lunar_dual_return_chart_data)
|
|
385
|
+
lunar_dual_return_chart.save_svg(output_path=OUTPUT_DIR_STR)
|
|
386
|
+
|
|
387
|
+
# Single Wheel Lunar Return
|
|
388
|
+
lunar_single_return_chart_data = ChartDataFactory.create_single_wheel_return_chart_data(lunar_return)
|
|
389
|
+
lunar_single_return_chart = ChartDrawer(lunar_single_return_chart_data)
|
|
390
|
+
lunar_single_return_chart.save_svg(output_path=OUTPUT_DIR_STR)
|
|
391
|
+
|
|
376
392
|
## Transparent Background
|
|
377
393
|
transparent_background_subject = AstrologicalSubjectFactory.from_birth_data("John Lennon - Transparent Background", 1940, 10, 9, 18, 30, "Liverpool", "GB", suppress_geonames_warning=True)
|
|
378
394
|
transparent_background_chart_data = ChartDataFactory.create_natal_chart_data(transparent_background_subject)
|