kerykeion 4.6.0__tar.gz → 4.6.2__tar.gz

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

Potentially problematic release.


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

Files changed (30) hide show
  1. {kerykeion-4.6.0 → kerykeion-4.6.2}/PKG-INFO +1 -1
  2. {kerykeion-4.6.0 → kerykeion-4.6.2}/kerykeion/charts/charts_utils.py +50 -1
  3. {kerykeion-4.6.0 → kerykeion-4.6.2}/kerykeion/charts/kerykeion_chart_svg.py +28 -33
  4. {kerykeion-4.6.0 → kerykeion-4.6.2}/pyproject.toml +1 -1
  5. {kerykeion-4.6.0 → kerykeion-4.6.2}/LICENSE +0 -0
  6. {kerykeion-4.6.0 → kerykeion-4.6.2}/README.md +0 -0
  7. {kerykeion-4.6.0 → kerykeion-4.6.2}/kerykeion/__init__.py +0 -0
  8. {kerykeion-4.6.0 → kerykeion-4.6.2}/kerykeion/aspects/__init__.py +0 -0
  9. {kerykeion-4.6.0 → kerykeion-4.6.2}/kerykeion/aspects/aspects_utils.py +0 -0
  10. {kerykeion-4.6.0 → kerykeion-4.6.2}/kerykeion/aspects/natal_aspects.py +0 -0
  11. {kerykeion-4.6.0 → kerykeion-4.6.2}/kerykeion/aspects/synastry_aspects.py +0 -0
  12. {kerykeion-4.6.0 → kerykeion-4.6.2}/kerykeion/astrological_subject.py +0 -0
  13. {kerykeion-4.6.0 → kerykeion-4.6.2}/kerykeion/charts/__init__.py +0 -0
  14. {kerykeion-4.6.0 → kerykeion-4.6.2}/kerykeion/charts/templates/chart.xml +0 -0
  15. {kerykeion-4.6.0 → kerykeion-4.6.2}/kerykeion/enums.py +0 -0
  16. {kerykeion-4.6.0 → kerykeion-4.6.2}/kerykeion/fetch_geonames.py +0 -0
  17. {kerykeion-4.6.0 → kerykeion-4.6.2}/kerykeion/kr_types/__init__.py +0 -0
  18. {kerykeion-4.6.0 → kerykeion-4.6.2}/kerykeion/kr_types/chart_types.py +0 -0
  19. {kerykeion-4.6.0 → kerykeion-4.6.2}/kerykeion/kr_types/kerykeion_exception.py +0 -0
  20. {kerykeion-4.6.0 → kerykeion-4.6.2}/kerykeion/kr_types/kr_literals.py +0 -0
  21. {kerykeion-4.6.0 → kerykeion-4.6.2}/kerykeion/kr_types/kr_models.py +0 -0
  22. {kerykeion-4.6.0 → kerykeion-4.6.2}/kerykeion/kr_types/settings_models.py +0 -0
  23. {kerykeion-4.6.0 → kerykeion-4.6.2}/kerykeion/relationship_score.py +0 -0
  24. {kerykeion-4.6.0 → kerykeion-4.6.2}/kerykeion/report.py +0 -0
  25. {kerykeion-4.6.0 → kerykeion-4.6.2}/kerykeion/settings/__init__.py +0 -0
  26. {kerykeion-4.6.0 → kerykeion-4.6.2}/kerykeion/settings/kerykeion_settings.py +0 -0
  27. {kerykeion-4.6.0 → kerykeion-4.6.2}/kerykeion/settings/kr.config.json +0 -0
  28. {kerykeion-4.6.0 → kerykeion-4.6.2}/kerykeion/sweph/README.md +0 -0
  29. {kerykeion-4.6.0 → kerykeion-4.6.2}/kerykeion/sweph/seas_18.se1 +0 -0
  30. {kerykeion-4.6.0 → kerykeion-4.6.2}/kerykeion/utilities.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: kerykeion
3
- Version: 4.6.0
3
+ Version: 4.6.2
4
4
  Summary: A python library for astrology.
5
5
  Home-page: https://github.com/g-battaglia/kerykeion
6
6
  License: AGPL-3.0
@@ -1,6 +1,6 @@
1
1
  import math
2
2
  import datetime
3
- from kerykeion.kr_types import KerykeionException
3
+ from kerykeion.kr_types import KerykeionException, ChartType
4
4
  from typing import Union
5
5
 
6
6
  def decHourJoin(inH: int, inM: int, inS: int) -> float:
@@ -108,3 +108,52 @@ def sliceToY(slice: Union[int, float], r: Union[int, float], offset: Union[int,
108
108
  plus = (math.pi * offset) / 180
109
109
  radial = ((math.pi / 6) * slice) + plus
110
110
  return r * ((math.sin(radial) / -1) + 1)
111
+
112
+
113
+ def draw_zodiac_slice(
114
+ c1: Union[int, float],
115
+ chart_type: ChartType,
116
+ sixth_house_degree_ut: Union[int, float],
117
+ num: int,
118
+ r: Union[int, float],
119
+ style: str,
120
+ type: str,
121
+ ):
122
+ """
123
+ Draws a zodiac slice based on the given parameters.
124
+
125
+ Args:
126
+ - c1 (Union[int, float]): The value of c1.
127
+ - chart_type (Literal["Natal", "ExternalNatal", "Synastry", "Transit"]): The type of chart.
128
+ - sixth_house_degree_ut (Union[int, float]): The degree of the sixth house.
129
+ - num (int): The number of the sign. Note: In OpenAstro it did refer to self.zodiac,
130
+ which is a list of the signs in order, starting with Aries. Eg:
131
+ {"name": "aries", "element": "fire"}
132
+ - r (Union[int, float]): The value of r.
133
+ - style (str): The CSS inline style.
134
+ - type (str): The type ?. In OpenAstro, it was the symbol of the sign. Eg: "aries".
135
+ self.zodiac[i]["name"]
136
+
137
+ Returns:
138
+ - str: The zodiac slice and symbol as an SVG path.
139
+ """
140
+
141
+ # pie slices
142
+ offset = 360 - sixth_house_degree_ut
143
+ # check transit
144
+ if chart_type == "Transit" or chart_type == "Synastry":
145
+ dropin = 0
146
+ else:
147
+ dropin = c1
148
+ slice = f'<path d="M{str(r)},{str(r)} L{str(dropin + sliceToX(num, r - dropin, offset))},{str(dropin + sliceToY(num, r - dropin, offset))} A{str(r - dropin)},{str(r - dropin)} 0 0,0 {str(dropin + sliceToX(num + 1, r - dropin, offset))},{str(dropin + sliceToY(num + 1, r - dropin, offset))} z" style="{style}"/>'
149
+
150
+ # symbols
151
+ offset = offset + 15
152
+ # check transit
153
+ if chart_type == "Transit" or chart_type == "Synastry":
154
+ dropin = 54
155
+ else:
156
+ dropin = 18 + c1
157
+ sign = f'<g transform="translate(-16,-16)"><use x="{str(dropin + sliceToX(num, r - dropin, offset))}" y="{str(dropin + sliceToY(num, r - dropin, offset))}" xlink:href="#{type}" /></g>'
158
+
159
+ return slice + "" + sign
@@ -14,7 +14,7 @@ from kerykeion.aspects.natal_aspects import NatalAspects
14
14
  from kerykeion.astrological_subject import AstrologicalSubject
15
15
  from kerykeion.kr_types import KerykeionException, ChartType
16
16
  from kerykeion.kr_types import ChartTemplateDictionary
17
- from kerykeion.charts.charts_utils import decHourJoin, degreeDiff, offsetToTz, sliceToX, sliceToY
17
+ from kerykeion.charts.charts_utils import decHourJoin, degreeDiff, offsetToTz, sliceToX, sliceToY, draw_zodiac_slice
18
18
  from pathlib import Path
19
19
  from string import Template
20
20
  from typing import Union
@@ -371,39 +371,30 @@ class KerykeionChartSVG:
371
371
 
372
372
  return out
373
373
 
374
- def _zodiacSlice(self, num, r, style, type):
375
- # pie slices
376
- offset = 360 - self.user.houses_degree_ut[6]
377
- # check transit
378
- if self.chart_type == "Transit" or self.chart_type == "Synastry":
379
- dropin = 0
380
- else:
381
- dropin = self.c1
382
- slice = f'<path d="M{str(r)},{str(r)} L{str(dropin + sliceToX(num, r - dropin, offset))},{str(dropin + sliceToY(num, r - dropin, offset))} A{str(r - dropin)},{str(r - dropin)} 0 0,0 {str(dropin + sliceToX(num + 1, r - dropin, offset))},{str(dropin + sliceToY(num + 1, r - dropin, offset))} z" style="{style}"/>'
374
+ def _draw_zodiac_circle_slices(self, r):
375
+ """
376
+ Generate the SVG string representing the zodiac circle
377
+ with the 12 slices for each zodiac sign.
383
378
 
384
- # symbols
385
- offset = offset + 15
386
- # check transit
387
- if self.chart_type == "Transit" or self.chart_type == "Synastry":
388
- dropin = 54
389
- else:
390
- dropin = 18 + self.c1
391
- sign = f'<g transform="translate(-16,-16)"><use x="{str(dropin + sliceToX(num, r - dropin, offset))}" y="{str(dropin + sliceToY(num, r - dropin, offset))}" xlink:href="#{type}" /></g>'
379
+ Args:
380
+ r (float): The radius of the zodiac slices.
392
381
 
393
- return slice + "" + sign
382
+ Returns:
383
+ str: The SVG string representing the zodiac circle.
384
+ """
394
385
 
395
- def _makeZodiac(self, r):
396
386
  output = ""
397
- for i in range(len(self.zodiac)):
398
- output = (
399
- output
400
- + self._zodiacSlice(
401
- i,
402
- r,
403
- f'fill:{self.chart_colors_settings[f"zodiac_bg_{i}"]}; fill-opacity: 0.5;',
404
- self.zodiac[i]["name"],
405
- )
387
+ for i, zodiac_element in enumerate(self.zodiac):
388
+ output += draw_zodiac_slice(
389
+ c1=self.c1,
390
+ chart_type=self.chart_type,
391
+ sixth_house_degree_ut=self.user.houses_degree_ut[6],
392
+ num=i,
393
+ r=r,
394
+ style=f'fill:{self.chart_colors_settings[f"zodiac_bg_{i}"]}; fill-opacity: 0.5;',
395
+ type=zodiac_element["name"],
406
396
  )
397
+
407
398
  return output
408
399
 
409
400
  def _makeHouses(self, r):
@@ -1209,7 +1200,7 @@ class KerykeionChartSVG:
1209
1200
  out += end_of_line
1210
1201
  return out
1211
1202
 
1212
- def _makeHousesGrid(self):
1203
+ def _draw_house_grid(self):
1213
1204
  out = '<g transform="translate(600,-20)">'
1214
1205
 
1215
1206
  li = 10
@@ -1446,13 +1437,17 @@ class KerykeionChartSVG:
1446
1437
  td["cfgRotate"] = rotate
1447
1438
  td["cfgTranslate"] = translate
1448
1439
 
1449
- # functions
1450
- td["makeZodiac"] = self._makeZodiac(r)
1440
+ # ---
1441
+ # Drawing Functions
1442
+ #---
1443
+
1444
+ td["makeZodiac"] = self._draw_zodiac_circle_slices(r)
1445
+ td["makeHousesGrid"] = self._draw_house_grid()
1446
+ # TODO: Add the rest of the functions
1451
1447
  td["makeHouses"] = self._makeHouses(r)
1452
1448
  td["makePlanets"] = self._make_planets(r)
1453
1449
  td["makeElements"] = self._makeElements(r)
1454
1450
  td["makePlanetGrid"] = self._makePlanetGrid()
1455
- td["makeHousesGrid"] = self._makeHousesGrid()
1456
1451
 
1457
1452
  return td
1458
1453
 
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "kerykeion"
3
- version = "4.6.0"
3
+ version = "4.6.2"
4
4
  authors = ["Giacomo Battaglia <battaglia.giacomo@yahoo.it>"]
5
5
  description = "A python library for astrology."
6
6
  license = "AGPL-3.0"
File without changes
File without changes
File without changes
File without changes