kerykeion 4.16.0__py3-none-any.whl → 4.16.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of kerykeion might be problematic. Click here for more details.
- kerykeion/charts/charts_utils.py +127 -42
- kerykeion/charts/kerykeion_chart_svg.py +153 -5
- kerykeion/charts/templates/aspect_grid_only.xml +452 -0
- kerykeion/charts/templates/wheel_only.xml +499 -0
- {kerykeion-4.16.0.dist-info → kerykeion-4.16.3.dist-info}/METADATA +2 -2
- {kerykeion-4.16.0.dist-info → kerykeion-4.16.3.dist-info}/RECORD +9 -7
- {kerykeion-4.16.0.dist-info → kerykeion-4.16.3.dist-info}/LICENSE +0 -0
- {kerykeion-4.16.0.dist-info → kerykeion-4.16.3.dist-info}/WHEEL +0 -0
- {kerykeion-4.16.0.dist-info → kerykeion-4.16.3.dist-info}/entry_points.txt +0 -0
kerykeion/charts/charts_utils.py
CHANGED
|
@@ -514,54 +514,63 @@ def draw_third_circle(
|
|
|
514
514
|
return f'<circle cx="{radius}" cy="{radius}" r="{radius - c3}" style="fill: {fill_color}; fill-opacity:.8; stroke: {stroke_color}; stroke-width: 1px" />'
|
|
515
515
|
|
|
516
516
|
|
|
517
|
-
def draw_aspect_grid(
|
|
517
|
+
def draw_aspect_grid(
|
|
518
|
+
stroke_color: str,
|
|
519
|
+
available_planets: list,
|
|
520
|
+
aspects: list,
|
|
521
|
+
x_start: int = 380,
|
|
522
|
+
y_start: int = 468,
|
|
523
|
+
) -> str:
|
|
518
524
|
"""
|
|
519
|
-
Draws the aspect grid.
|
|
525
|
+
Draws the aspect grid for the given planets and aspects.
|
|
520
526
|
|
|
521
527
|
Args:
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
528
|
+
stroke_color (str): The color of the stroke.
|
|
529
|
+
available_planets (list): List of all planets. Only planets with "is_active" set to True will be used.
|
|
530
|
+
aspects (list): List of aspects.
|
|
531
|
+
x_start (int): The x-coordinate starting point.
|
|
532
|
+
y_start (int): The y-coordinate starting point.
|
|
526
533
|
|
|
534
|
+
Returns:
|
|
535
|
+
str: SVG string representing the aspect grid.
|
|
527
536
|
"""
|
|
528
|
-
|
|
529
|
-
out = ""
|
|
537
|
+
svg_output = ""
|
|
530
538
|
style = f"stroke:{stroke_color}; stroke-width: 1px; stroke-opacity:.6; fill:none"
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
for
|
|
559
|
-
|
|
560
|
-
|
|
539
|
+
box_size = 14
|
|
540
|
+
|
|
541
|
+
# Filter active planets
|
|
542
|
+
active_planets = [planet for planet in available_planets if planet.is_active]
|
|
543
|
+
|
|
544
|
+
# Reverse the list of active planets for the first iteration
|
|
545
|
+
reversed_planets = active_planets[::-1]
|
|
546
|
+
|
|
547
|
+
for index, planet_a in enumerate(reversed_planets):
|
|
548
|
+
# Draw the grid box for the planet
|
|
549
|
+
svg_output += f'<rect x="{x_start}" y="{y_start}" width="{box_size}" height="{box_size}" style="{style}"/>'
|
|
550
|
+
svg_output += f'<use transform="scale(0.4)" x="{(x_start + 2) * 2.5}" y="{(y_start + 1) * 2.5}" xlink:href="#{planet_a["name"]}" />'
|
|
551
|
+
|
|
552
|
+
# Update the starting coordinates for the next box
|
|
553
|
+
x_start += box_size
|
|
554
|
+
y_start -= box_size
|
|
555
|
+
|
|
556
|
+
# Coordinates for the aspect symbols
|
|
557
|
+
x_aspect = x_start
|
|
558
|
+
y_aspect = y_start + box_size
|
|
559
|
+
|
|
560
|
+
# Iterate over the remaining planets
|
|
561
|
+
for planet_b in reversed_planets[index + 1:]:
|
|
562
|
+
# Draw the grid box for the aspect
|
|
563
|
+
svg_output += f'<rect x="{x_aspect}" y="{y_aspect}" width="{box_size}" height="{box_size}" style="{style}"/>'
|
|
564
|
+
x_aspect += box_size
|
|
565
|
+
|
|
566
|
+
# Check for aspects between the planets
|
|
567
|
+
for aspect in aspects:
|
|
568
|
+
if (aspect["p1"] == planet_a["id"] and aspect["p2"] == planet_b["id"]) or (
|
|
569
|
+
aspect["p1"] == planet_b["id"] and aspect["p2"] == planet_a["id"]
|
|
561
570
|
):
|
|
562
|
-
|
|
571
|
+
svg_output += f'<use x="{x_aspect - box_size + 1}" y="{y_aspect + 1}" xlink:href="#orb{aspect["aspect_degrees"]}" />'
|
|
563
572
|
|
|
564
|
-
return
|
|
573
|
+
return svg_output
|
|
565
574
|
|
|
566
575
|
|
|
567
576
|
def draw_houses_cusps_and_text_number(
|
|
@@ -678,7 +687,7 @@ def draw_houses_cusps_and_text_number(
|
|
|
678
687
|
return path
|
|
679
688
|
|
|
680
689
|
|
|
681
|
-
def
|
|
690
|
+
def draw_transit_aspect_list(
|
|
682
691
|
grid_title: str,
|
|
683
692
|
aspects_list: Union[list[AspectModel], list[dict]],
|
|
684
693
|
celestial_point_language: Union[KerykeionLanguageCelestialPointModel, dict],
|
|
@@ -752,7 +761,7 @@ def draw_aspect_transit_grid(
|
|
|
752
761
|
inner_path += f"</g>"
|
|
753
762
|
line = line + 14
|
|
754
763
|
|
|
755
|
-
out = f'<g style="transform: translate(47%,
|
|
764
|
+
out = f'<g style="transform: translate(47%, 59%) scale({scale})">'
|
|
756
765
|
out += f'<text y="-15" x="0" style="fill: var(--kerykeion-chart-color-paper-0); font-size: 14px;">{grid_title}:</text>'
|
|
757
766
|
out += inner_path
|
|
758
767
|
out += "</g>"
|
|
@@ -995,4 +1004,80 @@ def draw_planet_grid(
|
|
|
995
1004
|
second_line_height += offset_between_lines
|
|
996
1005
|
|
|
997
1006
|
svg_output += end_of_line
|
|
1007
|
+
return svg_output
|
|
1008
|
+
|
|
1009
|
+
|
|
1010
|
+
def draw_transit_aspect_grid(
|
|
1011
|
+
stroke_color: str,
|
|
1012
|
+
available_planets: list,
|
|
1013
|
+
aspects: list,
|
|
1014
|
+
x_indent: int = 50,
|
|
1015
|
+
y_indent: int = 250,
|
|
1016
|
+
box_size: int = 14
|
|
1017
|
+
) -> str:
|
|
1018
|
+
"""
|
|
1019
|
+
Draws the aspect grid for the given planets and aspects. The default args value are specific for a stand alone
|
|
1020
|
+
aspect grid.
|
|
1021
|
+
|
|
1022
|
+
Args:
|
|
1023
|
+
stroke_color (str): The color of the stroke.
|
|
1024
|
+
available_planets (list): List of all planets. Only planets with "is_active" set to True will be used.
|
|
1025
|
+
aspects (list): List of aspects.
|
|
1026
|
+
x_indent (int): The initial x-coordinate starting point.
|
|
1027
|
+
y_indent (int): The initial y-coordinate starting point.
|
|
1028
|
+
|
|
1029
|
+
Returns:
|
|
1030
|
+
str: SVG string representing the aspect grid.
|
|
1031
|
+
"""
|
|
1032
|
+
svg_output = ""
|
|
1033
|
+
style = f"stroke:{stroke_color}; stroke-width: 1px; stroke-opacity:.6; fill:none"
|
|
1034
|
+
x_start = x_indent
|
|
1035
|
+
y_start = y_indent
|
|
1036
|
+
|
|
1037
|
+
# Filter active planets
|
|
1038
|
+
active_planets = [planet for planet in available_planets if planet.is_active]
|
|
1039
|
+
|
|
1040
|
+
# Reverse the list of active planets for the first iteration
|
|
1041
|
+
reversed_planets = active_planets[::-1]
|
|
1042
|
+
for index, planet_a in enumerate(reversed_planets):
|
|
1043
|
+
# Draw the grid box for the planet
|
|
1044
|
+
svg_output += f'<rect x="{x_start}" y="{y_start}" width="{box_size}" height="{box_size}" style="{style}"/>'
|
|
1045
|
+
svg_output += f'<use transform="scale(0.4)" x="{(x_start + 2) * 2.5}" y="{(y_start + 1) * 2.5}" xlink:href="#{planet_a["name"]}" />'
|
|
1046
|
+
x_start += box_size
|
|
1047
|
+
|
|
1048
|
+
x_start = x_indent - box_size
|
|
1049
|
+
y_start = y_indent - box_size
|
|
1050
|
+
|
|
1051
|
+
for index, planet_a in enumerate(reversed_planets):
|
|
1052
|
+
# Draw the grid box for the planet
|
|
1053
|
+
svg_output += f'<rect x="{x_start}" y="{y_start}" width="{box_size}" height="{box_size}" style="{style}"/>'
|
|
1054
|
+
svg_output += f'<use transform="scale(0.4)" x="{(x_start + 2) * 2.5}" y="{(y_start + 1) * 2.5}" xlink:href="#{planet_a["name"]}" />'
|
|
1055
|
+
y_start -= box_size
|
|
1056
|
+
|
|
1057
|
+
x_start = x_indent
|
|
1058
|
+
y_start = y_indent
|
|
1059
|
+
y_start = y_start - box_size
|
|
1060
|
+
|
|
1061
|
+
for index, planet_a in enumerate(reversed_planets):
|
|
1062
|
+
# Draw the grid box for the planet
|
|
1063
|
+
svg_output += f'<rect x="{x_start}" y="{y_start}" width="{box_size}" height="{box_size}" style="{style}"/>'
|
|
1064
|
+
|
|
1065
|
+
# Update the starting coordinates for the next box
|
|
1066
|
+
y_start -= box_size
|
|
1067
|
+
|
|
1068
|
+
# Coordinates for the aspect symbols
|
|
1069
|
+
x_aspect = x_start
|
|
1070
|
+
y_aspect = y_start + box_size
|
|
1071
|
+
|
|
1072
|
+
# Iterate over the remaining planets
|
|
1073
|
+
for planet_b in reversed_planets:
|
|
1074
|
+
# Draw the grid box for the aspect
|
|
1075
|
+
svg_output += f'<rect x="{x_aspect}" y="{y_aspect}" width="{box_size}" height="{box_size}" style="{style}"/>'
|
|
1076
|
+
x_aspect += box_size
|
|
1077
|
+
|
|
1078
|
+
# Check for aspects between the planets
|
|
1079
|
+
for aspect in aspects:
|
|
1080
|
+
if (aspect["p1"] == planet_a["id"] and aspect["p2"] == planet_b["id"]):
|
|
1081
|
+
svg_output += f'<use x="{x_aspect - box_size + 1}" y="{y_aspect + 1}" xlink:href="#orb{aspect["aspect_degrees"]}" />'
|
|
1082
|
+
|
|
998
1083
|
return svg_output
|
|
@@ -30,7 +30,8 @@ from kerykeion.charts.charts_utils import (
|
|
|
30
30
|
draw_third_circle,
|
|
31
31
|
draw_aspect_grid,
|
|
32
32
|
draw_houses_cusps_and_text_number,
|
|
33
|
-
|
|
33
|
+
draw_transit_aspect_list,
|
|
34
|
+
draw_transit_aspect_grid,
|
|
34
35
|
draw_moon_phase,
|
|
35
36
|
draw_house_grid,
|
|
36
37
|
draw_planet_grid,
|
|
@@ -106,6 +107,7 @@ class KerykeionChartSVG:
|
|
|
106
107
|
new_output_directory: Union[str, None] = None,
|
|
107
108
|
new_settings_file: Union[Path, None] = None,
|
|
108
109
|
theme: Union[KerykeionChartTheme, None] = "classic",
|
|
110
|
+
double_chart_aspect_grid_type: Literal["list", "table"] = "list"
|
|
109
111
|
):
|
|
110
112
|
# Directories:
|
|
111
113
|
self.homedir = Path.home()
|
|
@@ -157,6 +159,9 @@ class KerykeionChartSVG:
|
|
|
157
159
|
for body in available_celestial_points_names:
|
|
158
160
|
self.t_available_kerykeion_celestial_points.append(self.t_user.get(body))
|
|
159
161
|
|
|
162
|
+
# Double chart aspect grid type
|
|
163
|
+
self.double_chart_aspect_grid_type = double_chart_aspect_grid_type
|
|
164
|
+
|
|
160
165
|
# screen size
|
|
161
166
|
self.height = self._DEFAULT_HEIGHT
|
|
162
167
|
if self.chart_type == "Synastry" or self.chart_type == "Transit":
|
|
@@ -367,7 +372,11 @@ class KerykeionChartSVG:
|
|
|
367
372
|
template_dict["first_circle"] = draw_first_circle(self.main_radius, self.chart_colors_settings["zodiac_transit_ring_2"], self.chart_type)
|
|
368
373
|
template_dict["second_circle"] = draw_second_circle(self.main_radius, self.chart_colors_settings['zodiac_transit_ring_1'], self.chart_colors_settings['paper_1'], self.chart_type)
|
|
369
374
|
template_dict['third_circle'] = draw_third_circle(self.main_radius, self.chart_colors_settings['zodiac_transit_ring_0'], self.chart_colors_settings['paper_1'], self.chart_type, self.third_circle_radius)
|
|
370
|
-
|
|
375
|
+
|
|
376
|
+
if self.double_chart_aspect_grid_type == "list":
|
|
377
|
+
template_dict["makeAspectGrid"] = draw_transit_aspect_list(self.language_settings["aspects"], self.aspects_list, self.planets_settings, self.aspects_settings)
|
|
378
|
+
else:
|
|
379
|
+
template_dict["makeAspectGrid"] = draw_transit_aspect_grid(self.chart_colors_settings['paper_0'], self.available_planets_setting, self.aspects_list, 550, 450)
|
|
371
380
|
|
|
372
381
|
template_dict["makeAspects"] = self._draw_all_transit_aspects_lines(self.main_radius, self.main_radius - 160)
|
|
373
382
|
else:
|
|
@@ -574,7 +583,7 @@ class KerykeionChartSVG:
|
|
|
574
583
|
td = self._create_template_dictionary()
|
|
575
584
|
|
|
576
585
|
DATA_DIR = Path(__file__).parent
|
|
577
|
-
xml_svg = DATA_DIR / "templates/chart.xml"
|
|
586
|
+
xml_svg = DATA_DIR / "templates" / "chart.xml"
|
|
578
587
|
|
|
579
588
|
# read template
|
|
580
589
|
with open(xml_svg, "r", encoding="utf-8", errors="ignore") as f:
|
|
@@ -595,7 +604,7 @@ class KerykeionChartSVG:
|
|
|
595
604
|
return template
|
|
596
605
|
|
|
597
606
|
def makeSVG(self, minify: bool = False):
|
|
598
|
-
"""Prints out the SVG file in the
|
|
607
|
+
"""Prints out the SVG file in the specified folder"""
|
|
599
608
|
|
|
600
609
|
if not hasattr(self, "template"):
|
|
601
610
|
self.template = self.makeTemplate(minify)
|
|
@@ -607,6 +616,70 @@ class KerykeionChartSVG:
|
|
|
607
616
|
|
|
608
617
|
logging.info(f"SVG Generated Correctly in: {self.chartname}")
|
|
609
618
|
|
|
619
|
+
def makeWheelOnlyTemplate(self, minify: bool = False):
|
|
620
|
+
"""Creates the template for the SVG file with only the wheel"""
|
|
621
|
+
|
|
622
|
+
with open(Path(__file__).parent / "templates" / "wheel_only.xml", "r", encoding="utf-8", errors="ignore") as f:
|
|
623
|
+
template = f.read()
|
|
624
|
+
|
|
625
|
+
template_dict = self._create_template_dictionary()
|
|
626
|
+
template = Template(template).substitute(template_dict)
|
|
627
|
+
|
|
628
|
+
if minify:
|
|
629
|
+
template = scourString(template).replace('"', "'").replace("\n", "").replace("\t","").replace(" ", "").replace(" ", "")
|
|
630
|
+
|
|
631
|
+
else:
|
|
632
|
+
template = template.replace('"', "'")
|
|
633
|
+
|
|
634
|
+
return template
|
|
635
|
+
|
|
636
|
+
def makeWheelOnlySVG(self, minify: bool = False):
|
|
637
|
+
"""Prints out the SVG file in the specified folder with only the wheel"""
|
|
638
|
+
|
|
639
|
+
template = self.makeWheelOnlyTemplate(minify)
|
|
640
|
+
|
|
641
|
+
self.chartname = self.output_directory / f"{self.user.name} - {self.chart_type} Chart - Wheel Only.svg"
|
|
642
|
+
|
|
643
|
+
with open(self.chartname, "w", encoding="utf-8", errors="ignore") as output_file:
|
|
644
|
+
output_file.write(template)
|
|
645
|
+
|
|
646
|
+
logging.info(f"SVG Generated Correctly in: {self.chartname}")
|
|
647
|
+
|
|
648
|
+
def makeAspectGridOnlyTemplate(self, minify: bool = False):
|
|
649
|
+
"""Creates the template for the SVG file with only the aspect grid"""
|
|
650
|
+
|
|
651
|
+
with open(Path(__file__).parent / "templates" / "aspect_grid_only.xml", "r", encoding="utf-8", errors="ignore") as f:
|
|
652
|
+
template = f.read()
|
|
653
|
+
|
|
654
|
+
template_dict = self._create_template_dictionary()
|
|
655
|
+
|
|
656
|
+
if self.chart_type in ["Transit", "Synastry"]:
|
|
657
|
+
aspects_grid = draw_transit_aspect_grid(self.chart_colors_settings['paper_0'], self.available_planets_setting, self.aspects_list)
|
|
658
|
+
else:
|
|
659
|
+
aspects_grid = draw_aspect_grid(self.chart_colors_settings['paper_0'], self.available_planets_setting, self.aspects_list, x_start=50, y_start=250)
|
|
660
|
+
|
|
661
|
+
template = Template(template).substitute({**template_dict, "makeAspectGrid": aspects_grid})
|
|
662
|
+
|
|
663
|
+
if minify:
|
|
664
|
+
template = scourString(template).replace('"', "'").replace("\n", "").replace("\t","").replace(" ", "").replace(" ", "")
|
|
665
|
+
|
|
666
|
+
else:
|
|
667
|
+
template = template.replace('"', "'")
|
|
668
|
+
|
|
669
|
+
return template
|
|
670
|
+
|
|
671
|
+
def makeAspectGridOnlySVG(self, minify: bool = False):
|
|
672
|
+
"""Prints out the SVG file in the specified folder with only the aspect grid"""
|
|
673
|
+
|
|
674
|
+
template = self.makeAspectGridOnlyTemplate(minify)
|
|
675
|
+
|
|
676
|
+
self.chartname = self.output_directory / f"{self.user.name} - {self.chart_type} Chart - Aspect Grid Only.svg"
|
|
677
|
+
|
|
678
|
+
with open(self.chartname, "w", encoding="utf-8", errors="ignore") as output_file:
|
|
679
|
+
output_file.write(template)
|
|
680
|
+
|
|
681
|
+
logging.info(f"SVG Generated Correctly in: {self.chartname}")
|
|
682
|
+
|
|
610
683
|
|
|
611
684
|
if __name__ == "__main__":
|
|
612
685
|
from kerykeion.utilities import setup_logging
|
|
@@ -697,4 +770,79 @@ if __name__ == "__main__":
|
|
|
697
770
|
# Light Theme Natal Chart
|
|
698
771
|
light_theme_subject = AstrologicalSubject("John Lennon - Light Theme", 1940, 10, 9, 18, 30, "Liverpool", "GB")
|
|
699
772
|
light_theme_natal_chart = KerykeionChartSVG(light_theme_subject, theme="light")
|
|
700
|
-
light_theme_natal_chart.makeSVG()
|
|
773
|
+
light_theme_natal_chart.makeSVG()
|
|
774
|
+
|
|
775
|
+
# Dark Theme External Natal Chart
|
|
776
|
+
dark_theme_external_subject = AstrologicalSubject("John Lennon - Dark Theme External", 1940, 10, 9, 18, 30, "Liverpool", "GB")
|
|
777
|
+
dark_theme_external_chart = KerykeionChartSVG(dark_theme_external_subject, "ExternalNatal", second, theme="dark")
|
|
778
|
+
dark_theme_external_chart.makeSVG()
|
|
779
|
+
|
|
780
|
+
# Dark Theme Synastry Chart
|
|
781
|
+
dark_theme_synastry_subject = AstrologicalSubject("John Lennon - DTS", 1940, 10, 9, 18, 30, "Liverpool", "GB")
|
|
782
|
+
dark_theme_synastry_chart = KerykeionChartSVG(dark_theme_synastry_subject, "Synastry", second, theme="dark")
|
|
783
|
+
dark_theme_synastry_chart.makeSVG()
|
|
784
|
+
|
|
785
|
+
# Wheel Natal Only Chart
|
|
786
|
+
wheel_only_subject = AstrologicalSubject("John Lennon - Wheel Only", 1940, 10, 9, 18, 30, "Liverpool", "GB")
|
|
787
|
+
wheel_only_chart = KerykeionChartSVG(wheel_only_subject)
|
|
788
|
+
wheel_only_chart.makeWheelOnlySVG()
|
|
789
|
+
|
|
790
|
+
# Wheel External Natal Only Chart
|
|
791
|
+
wheel_external_subject = AstrologicalSubject("John Lennon - Wheel External Only", 1940, 10, 9, 18, 30, "Liverpool", "GB")
|
|
792
|
+
wheel_external_chart = KerykeionChartSVG(wheel_external_subject, "ExternalNatal", second)
|
|
793
|
+
wheel_external_chart.makeWheelOnlySVG()
|
|
794
|
+
|
|
795
|
+
# Wheel Synastry Only Chart
|
|
796
|
+
wheel_synastry_subject = AstrologicalSubject("John Lennon - Wheel Synastry Only", 1940, 10, 9, 18, 30, "Liverpool", "GB")
|
|
797
|
+
wheel_synastry_chart = KerykeionChartSVG(wheel_synastry_subject, "Synastry", second)
|
|
798
|
+
wheel_synastry_chart.makeWheelOnlySVG()
|
|
799
|
+
|
|
800
|
+
# Wheel Transit Only Chart
|
|
801
|
+
wheel_transit_subject = AstrologicalSubject("John Lennon - Wheel Transit Only", 1940, 10, 9, 18, 30, "Liverpool", "GB")
|
|
802
|
+
wheel_transit_chart = KerykeionChartSVG(wheel_transit_subject, "Transit", second)
|
|
803
|
+
wheel_transit_chart.makeWheelOnlySVG()
|
|
804
|
+
|
|
805
|
+
# Wheel Sidereal Birth Chart (Lahiri) Dark Theme
|
|
806
|
+
sidereal_dark_subject = AstrologicalSubject("John Lennon Lahiri - Dark Theme", 1940, 10, 9, 18, 30, "Liverpool", "GB", zodiac_type="Sidereal", sidereal_mode="LAHIRI")
|
|
807
|
+
sidereal_dark_chart = KerykeionChartSVG(sidereal_dark_subject, theme="dark")
|
|
808
|
+
sidereal_dark_chart.makeWheelOnlySVG()
|
|
809
|
+
|
|
810
|
+
# Wheel Sidereal Birth Chart (Fagan-Bradley) Light Theme
|
|
811
|
+
sidereal_light_subject = AstrologicalSubject("John Lennon Fagan-Bradley - Light Theme", 1940, 10, 9, 18, 30, "Liverpool", "GB", zodiac_type="Sidereal", sidereal_mode="FAGAN_BRADLEY")
|
|
812
|
+
sidereal_light_chart = KerykeionChartSVG(sidereal_light_subject, theme="light")
|
|
813
|
+
sidereal_light_chart.makeWheelOnlySVG()
|
|
814
|
+
|
|
815
|
+
# Aspect Grid Only Natal Chart
|
|
816
|
+
aspect_grid_only_subject = AstrologicalSubject("John Lennon - Aspect Grid Only", 1940, 10, 9, 18, 30, "Liverpool", "GB")
|
|
817
|
+
aspect_grid_only_chart = KerykeionChartSVG(aspect_grid_only_subject)
|
|
818
|
+
aspect_grid_only_chart.makeAspectGridOnlySVG()
|
|
819
|
+
|
|
820
|
+
# Aspect Grid Only Dark Theme Natal Chart
|
|
821
|
+
aspect_grid_dark_subject = AstrologicalSubject("John Lennon - Aspect Grid Dark Theme", 1940, 10, 9, 18, 30, "Liverpool", "GB")
|
|
822
|
+
aspect_grid_dark_chart = KerykeionChartSVG(aspect_grid_dark_subject, theme="dark")
|
|
823
|
+
aspect_grid_dark_chart.makeAspectGridOnlySVG()
|
|
824
|
+
|
|
825
|
+
# Aspect Grid Only Light Theme Natal Chart
|
|
826
|
+
aspect_grid_light_subject = AstrologicalSubject("John Lennon - Aspect Grid Light Theme", 1940, 10, 9, 18, 30, "Liverpool", "GB")
|
|
827
|
+
aspect_grid_light_chart = KerykeionChartSVG(aspect_grid_light_subject, theme="light")
|
|
828
|
+
aspect_grid_light_chart.makeAspectGridOnlySVG()
|
|
829
|
+
|
|
830
|
+
# Synastry Chart Aspect Grid Only
|
|
831
|
+
aspect_grid_synastry_subject = AstrologicalSubject("John Lennon - Aspect Grid Synastry", 1940, 10, 9, 18, 30, "Liverpool", "GB")
|
|
832
|
+
aspect_grid_synastry_chart = KerykeionChartSVG(aspect_grid_synastry_subject, "Synastry", second)
|
|
833
|
+
aspect_grid_synastry_chart.makeAspectGridOnlySVG()
|
|
834
|
+
|
|
835
|
+
# Transit Chart Aspect Grid Only
|
|
836
|
+
aspect_grid_transit_subject = AstrologicalSubject("John Lennon - Aspect Grid Transit", 1940, 10, 9, 18, 30, "Liverpool", "GB")
|
|
837
|
+
aspect_grid_transit_chart = KerykeionChartSVG(aspect_grid_transit_subject, "Transit", second)
|
|
838
|
+
aspect_grid_transit_chart.makeAspectGridOnlySVG()
|
|
839
|
+
|
|
840
|
+
# Synastry Chart Aspect Grid Only Dark Theme
|
|
841
|
+
aspect_grid_dark_synastry_subject = AstrologicalSubject("John Lennon - Aspect Grid Dark Synastry", 1940, 10, 9, 18, 30, "Liverpool", "GB")
|
|
842
|
+
aspect_grid_dark_synastry_chart = KerykeionChartSVG(aspect_grid_dark_synastry_subject, "Synastry", second, theme="dark")
|
|
843
|
+
aspect_grid_dark_synastry_chart.makeAspectGridOnlySVG()
|
|
844
|
+
|
|
845
|
+
# Transit Chart With draw_transit_aspect_grid table
|
|
846
|
+
transit_chart_with_table_grid_subject = AstrologicalSubject("John Lennon - TCWTG", 1940, 10, 9, 18, 30, "Liverpool", "GB")
|
|
847
|
+
transit_chart_with_table_grid = KerykeionChartSVG(transit_chart_with_table_grid_subject, "Transit", second, double_chart_aspect_grid_type="table", theme="dark")
|
|
848
|
+
transit_chart_with_table_grid.makeSVG()
|