kerykeion 4.26.3__py3-none-any.whl → 5.0.0__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.

Files changed (76) hide show
  1. kerykeion/__init__.py +54 -11
  2. kerykeion/aspects/__init__.py +5 -2
  3. kerykeion/aspects/aspects_factory.py +569 -0
  4. kerykeion/aspects/aspects_utils.py +81 -8
  5. kerykeion/astrological_subject_factory.py +1897 -0
  6. kerykeion/backword.py +773 -0
  7. kerykeion/chart_data_factory.py +549 -0
  8. kerykeion/charts/chart_drawer.py +2601 -0
  9. kerykeion/charts/charts_utils.py +948 -177
  10. kerykeion/charts/draw_planets.py +602 -351
  11. kerykeion/charts/templates/aspect_grid_only.xml +328 -202
  12. kerykeion/charts/templates/chart.xml +432 -272
  13. kerykeion/charts/templates/wheel_only.xml +350 -214
  14. kerykeion/charts/themes/black-and-white.css +148 -0
  15. kerykeion/charts/themes/classic.css +107 -76
  16. kerykeion/charts/themes/dark-high-contrast.css +145 -107
  17. kerykeion/charts/themes/dark.css +146 -107
  18. kerykeion/charts/themes/light.css +146 -103
  19. kerykeion/charts/themes/strawberry.css +158 -0
  20. kerykeion/composite_subject_factory.py +253 -51
  21. kerykeion/ephemeris_data_factory.py +434 -0
  22. kerykeion/fetch_geonames.py +27 -8
  23. kerykeion/house_comparison/__init__.py +6 -0
  24. kerykeion/house_comparison/house_comparison_factory.py +103 -0
  25. kerykeion/house_comparison/house_comparison_utils.py +126 -0
  26. kerykeion/kr_types/__init__.py +66 -6
  27. kerykeion/kr_types/chart_template_model.py +20 -0
  28. kerykeion/kr_types/kerykeion_exception.py +15 -9
  29. kerykeion/kr_types/kr_literals.py +14 -132
  30. kerykeion/kr_types/kr_models.py +14 -318
  31. kerykeion/kr_types/settings_models.py +15 -203
  32. kerykeion/planetary_return_factory.py +805 -0
  33. kerykeion/relationship_score_factory.py +301 -0
  34. kerykeion/report.py +751 -64
  35. kerykeion/schemas/__init__.py +106 -0
  36. kerykeion/schemas/chart_template_model.py +367 -0
  37. kerykeion/schemas/kerykeion_exception.py +20 -0
  38. kerykeion/schemas/kr_literals.py +181 -0
  39. kerykeion/schemas/kr_models.py +605 -0
  40. kerykeion/schemas/settings_models.py +180 -0
  41. kerykeion/settings/__init__.py +20 -1
  42. kerykeion/settings/chart_defaults.py +444 -0
  43. kerykeion/settings/config_constants.py +117 -12
  44. kerykeion/settings/kerykeion_settings.py +31 -73
  45. kerykeion/settings/translation_strings.py +1479 -0
  46. kerykeion/settings/translations.py +74 -0
  47. kerykeion/sweph/ast136/s136108s.se1 +0 -0
  48. kerykeion/sweph/ast136/s136199s.se1 +0 -0
  49. kerykeion/sweph/ast136/s136472s.se1 +0 -0
  50. kerykeion/sweph/ast28/se28978s.se1 +0 -0
  51. kerykeion/sweph/ast50/se50000s.se1 +0 -0
  52. kerykeion/sweph/ast90/se90377s.se1 +0 -0
  53. kerykeion/sweph/ast90/se90482s.se1 +0 -0
  54. kerykeion/sweph/sefstars.txt +1602 -0
  55. kerykeion/transits_time_range_factory.py +302 -0
  56. kerykeion/utilities.py +393 -114
  57. kerykeion-5.0.0.dist-info/METADATA +1176 -0
  58. kerykeion-5.0.0.dist-info/RECORD +63 -0
  59. {kerykeion-4.26.3.dist-info → kerykeion-5.0.0.dist-info}/WHEEL +1 -1
  60. kerykeion/aspects/natal_aspects.py +0 -172
  61. kerykeion/aspects/synastry_aspects.py +0 -124
  62. kerykeion/aspects/transits_time_range.py +0 -41
  63. kerykeion/astrological_subject.py +0 -841
  64. kerykeion/charts/kerykeion_chart_svg.py +0 -1219
  65. kerykeion/enums.py +0 -57
  66. kerykeion/ephemeris_data.py +0 -242
  67. kerykeion/kr_types/chart_types.py +0 -95
  68. kerykeion/relationship_score/__init__.py +0 -2
  69. kerykeion/relationship_score/relationship_score.py +0 -175
  70. kerykeion/relationship_score/relationship_score_factory.py +0 -230
  71. kerykeion/settings/kr.config.json +0 -1258
  72. kerykeion/transits_time_range.py +0 -124
  73. kerykeion-4.26.3.dist-info/METADATA +0 -634
  74. kerykeion-4.26.3.dist-info/RECORD +0 -45
  75. kerykeion-4.26.3.dist-info/entry_points.txt +0 -3
  76. {kerykeion-4.26.3.dist-info → kerykeion-5.0.0.dist-info/licenses}/LICENSE +0 -0
@@ -1,634 +0,0 @@
1
- Metadata-Version: 2.3
2
- Name: kerykeion
3
- Version: 4.26.3
4
- Summary: A python library for astrology.
5
- License: AGPL-3.0
6
- Keywords: astrology,ephemeris,astrology library,birtchart,svg,zodiac,zodiac-sing,astronomical-algorithms,synastry,astrology-calculator
7
- Author: Giacomo Battaglia
8
- Author-email: kerykeion.astrology@gmail.com
9
- Requires-Python: >=3.9,<4.0
10
- Classifier: Development Status :: 5 - Production/Stable
11
- Classifier: Intended Audience :: Developers
12
- Classifier: Intended Audience :: Information Technology
13
- Classifier: License :: OSI Approved :: GNU Affero General Public License v3
14
- Classifier: License :: OSI Approved :: GNU General Public License (GPL)
15
- Classifier: Operating System :: OS Independent
16
- Classifier: Programming Language :: Python :: 3
17
- Classifier: Programming Language :: Python :: 3.9
18
- Classifier: Programming Language :: Python :: 3.10
19
- Classifier: Programming Language :: Python :: 3.11
20
- Classifier: Programming Language :: Python :: 3.12
21
- Classifier: Programming Language :: Python :: 3.13
22
- Classifier: Programming Language :: Python :: 3 :: Only
23
- Classifier: Topic :: Scientific/Engineering :: Astronomy
24
- Classifier: Topic :: Software Development
25
- Classifier: Topic :: Software Development :: Libraries
26
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
27
- Classifier: Typing :: Typed
28
- Requires-Dist: pydantic (>=2.5,<3.0)
29
- Requires-Dist: pyswisseph (>=2.10.3.1,<3.0.0.0)
30
- Requires-Dist: pytz (>=2024.2,<2025.0)
31
- Requires-Dist: requests (>=2.32.3,<3.0.0)
32
- Requires-Dist: requests-cache (>=1.2.1,<2.0.0)
33
- Requires-Dist: scour (>=0.38.2,<0.39.0)
34
- Requires-Dist: simple-ascii-tables (>=1.0.0,<2.0.0)
35
- Requires-Dist: typing-extensions (>=4.12.2,<5.0.0)
36
- Project-URL: Homepage, https://www.kerykeion.net/
37
- Project-URL: Repository, https://github.com/g-battaglia/kerykeion
38
- Description-Content-Type: text/markdown
39
-
40
- <h1 align="center">Kerykeion</h1>
41
-
42
- <div align="center">
43
- <img src="https://img.shields.io/github/stars/g-battaglia/kerykeion.svg?logo=github" alt="stars">
44
- <img src="https://img.shields.io/github/forks/g-battaglia/kerykeion.svg?logo=github" alt="forks">
45
- </div>
46
- <div align="center">
47
- <img src="https://static.pepy.tech/badge/kerykeion/month" alt="PyPI Downloads">
48
- <img src="https://static.pepy.tech/badge/kerykeion/week" alt="PyPI Downloads">
49
- <img src="https://img.shields.io/github/contributors/g-battaglia/kerykeion?color=blue&logo=github" alt="contributors">
50
- <img src="https://img.shields.io/pypi/v/kerykeion?label=pypi%20package" alt="Package version">
51
- <img src="https://img.shields.io/pypi/pyversions/kerykeion.svg" alt="Supported Python versions">
52
- </div>
53
- <p align="center">⭐ Like this project? Star it on GitHub and help it grow! ⭐</p>
54
- &nbsp;
55
-
56
- Kerykeion is a Python library for astrology, supporting both Western (tropical) and sidereal systems. It computes planetary and house positions, detects aspects, and generates SVG charts—including birth, synastry, transit, and composite charts. You can also customize which planets to include in your calculations.
57
-
58
- The main goal of this project is to offer a clean, data-driven approach to astrology, making it accessible and programmable.
59
-
60
- Kerykeion also integrates seamlessly with LLM and AI applications.
61
-
62
- Here is an example of a birthchart:
63
-
64
- ![John Lenon Chart](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/master/tests/charts/svg/John%20Lennon%20-%20Dark%20Theme%20-%20Natal%20Chart.svg)
65
-
66
- **Web API**
67
- ---
68
-
69
- If you want to use Kerykeion in a web application, you can try the dedicated web API:
70
-
71
- **[AstrologerAPI](https://rapidapi.com/gbattaglia/api/astrologer/pricing)**
72
-
73
- It is [open source](https://github.com/g-battaglia/Astrologer-API) and directly supports this project.
74
-
75
- **Donate**
76
- --
77
-
78
- Maintaining this project requires substantial time and effort. The Astrologer API alone cannot cover the costs of full-time development. If you find Kerykeion valuable and would like to support further development, please consider donating:
79
-
80
- [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/kerykeion)
81
-
82
-
83
- ## Table of Contents
84
- - [Installation](#installation)
85
- - [Basic Usage](#basic-usage)
86
- - [Generate a SVG Chart](#generate-a-svg-chart)
87
- - [Birth Chart](#birth-chart)
88
- - [External Birth Chart](#external-birth-chart)
89
- - [Synastry Chart](#synastry-chart)
90
- - [Transit Chart](#transit-chart)
91
- - [Composite Chart](#composite-chart)
92
- - [Wheel Only Charts](#wheel-only-charts)
93
- - [Birth Chart](#birth-chart-1)
94
- - [Wheel Only Birth Chart (External)](#wheel-only-birth-chart-external)
95
- - [Synastry Chart](#synastry-chart-1)
96
- - [Change the Output Directory](#change-the-output-directory)
97
- - [Change Language](#change-language)
98
- - [Minified SVG](#minified-svg)
99
- - [SVG without CSS Variables](#svg-without-css-variables)
100
- - [Grid Only SVG](#grid-only-svg)
101
- - [Report](#report)
102
- - [Example: Retrieving Aspects](#example-retrieving-aspects)
103
- - [Ayanamsa (Sidereal Modes)](#ayanamsa-sidereal-modes)
104
- - [House Systems](#house-systems)
105
- - [Perspective Type](#perspective-type)
106
- - [Themes](#themes)
107
- - [Alternative Initialization](#alternative-initialization)
108
- - [Lunar Nodes (Rahu \& Ketu)](#lunar-nodes-rahu--ketu)
109
- - [JSON Support](#json-support)
110
- - [Auto Generated Documentation](#auto-generated-documentation)
111
- - [Development](#development)
112
- - [Integrating Kerykeion into Your Project](#integrating-kerykeion-into-your-project)
113
- - [License](#license)
114
- - [Contributing](#contributing)
115
- - [Citations](#citations)
116
-
117
- ## Installation
118
-
119
- Kerykeion requires **Python 3.9** or higher.
120
-
121
- ```bash
122
- pip3 install kerykeion
123
- ```
124
-
125
- ## Basic Usage
126
-
127
- Below is a simple example illustrating the creation of an astrological subject and retrieving astrological details:
128
-
129
- ```python
130
- from kerykeion import AstrologicalSubject
131
-
132
- # Create an instance of the AstrologicalSubject class.
133
- # Arguments: Name, year, month, day, hour, minutes, city, nation
134
- kanye = AstrologicalSubject("Kanye", 1977, 6, 8, 8, 45, "Atlanta", "US")
135
-
136
- # Retrieve information about the Sun:
137
- kanye.sun
138
- # > {'name': 'Sun', 'quality': 'Mutable', 'element': 'Air', 'sign': 'Gem', 'sign_num': 2, ...}
139
-
140
- # Retrieve information about the first house:
141
- kanye.first_house
142
- # > {'name': 'First_House', 'quality': 'Cardinal', 'element': 'Water', 'sign': 'Can', ...}
143
-
144
- # Retrieve the element of the Moon sign:
145
- kanye.moon.element
146
- # > 'Water'
147
- ```
148
-
149
- **To avoid using GeoNames online, specify longitude, latitude, and timezone instead of city and nation:**
150
-
151
- ```python
152
- kanye = AstrologicalSubject(
153
- "Kanye", 1977, 6, 8, 8, 45,
154
- lng=50,
155
- lat=50,
156
- tz_str="Europe/Rome",
157
- city="Rome"
158
- )
159
- ```
160
-
161
- ## Generate a SVG Chart
162
-
163
- To generate a chart, use the `KerykeionChartSVG` class. You can create various types of charts, including birth, synastry, transit, and composite charts.
164
-
165
- **Tip:**
166
- The optimized way to open the generated SVG files is with a web browser (e.g., Chrome, Firefox).
167
- To improve compatibility across different applications, you can use the `remove_css_variables` parameter when generating the SVG. This will inline all styles and eliminate CSS variables, resulting in an SVG that is more broadly supported.
168
-
169
- ### Birth Chart
170
-
171
- ```python
172
- from kerykeion import AstrologicalSubject, KerykeionChartSVG
173
-
174
- john = AstrologicalSubject("John Lennon", 1940, 10, 9, 18, 30, "Liverpool", "GB")
175
- birth_chart_svg = KerykeionChartSVG(john)
176
- birth_chart_svg.makeSVG()
177
- ```
178
-
179
- ```python
180
- birth_chart_svg.makeSVG()
181
- ```
182
-
183
- The SVG file will be saved in the home directory.
184
- ![John Lennon Birth Chart](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/master/tests/charts/svg/John%20Lennon%20-%20Natal%20Chart.svg)
185
-
186
- ### External Birth Chart
187
-
188
- ```python
189
- from kerykeion import AstrologicalSubject, KerykeionChartSVG
190
- birth_chart = AstrologicalSubject("John Lennon", 1940, 10, 9, 18, 30, "Liverpool", "GB")
191
- birth_chart_svg = KerykeionChartSVG(birth_chart, chart_type="ExternalNatal")
192
- birth_chart_svg.makeSVG()
193
- ```
194
- ![John Lennon External Birth Chart](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/master/tests/charts/svg/John%20Lennon%20-%20ExternalNatal%20Chart.svg)
195
-
196
- ### Synastry Chart
197
-
198
- ```python
199
- from kerykeion import AstrologicalSubject, KerykeionChartSVG
200
-
201
- first = AstrologicalSubject("John Lennon", 1940, 10, 9, 18, 30, "Liverpool", "GB")
202
- second = AstrologicalSubject("Paul McCartney", 1942, 6, 18, 15, 30, "Liverpool", "GB")
203
-
204
- synastry_chart = KerykeionChartSVG(first, "Synastry", second)
205
- synastry_chart.makeSVG()
206
- ```
207
-
208
- ![John Lennon and Paul McCartney Synastry](https://www.kerykeion.net/img/examples/synastry-chart.svg)
209
-
210
-
211
- ### Transit Chart
212
-
213
- ```python
214
- from kerykeion import AstrologicalSubject
215
-
216
- transit = AstrologicalSubject("Transit", 2025, 6, 8, 8, 45, "Atlanta", "US")
217
- subject = AstrologicalSubject("John Lennon", 1940, 10, 9, 18, 30, "Liverpool", "GB")
218
-
219
- transit_chart = KerykeionChartSVG(subject, "Transit", transit)
220
- transit_chart.makeSVG()
221
- ```
222
-
223
- ![John Lennon Transit Chart](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/master/tests/charts/svg/John%20Lennon%20-%20Transit%20Chart.svg)
224
-
225
- ### Composite Chart
226
-
227
- ```python
228
- from kerykeion import CompositeSubjectFactory, AstrologicalSubject, KerykeionChartSVG
229
-
230
- angelina = AstrologicalSubject("Angelina Jolie", 1975, 6, 4, 9, 9, "Los Angeles", "US", lng=-118.15, lat=34.03, tz_str="America/Los_Angeles")
231
-
232
- brad = AstrologicalSubject("Brad Pitt", 1963, 12, 18, 6, 31, "Shawnee", "US", lng=-96.56, lat=35.20, tz_str="America/Chicago")
233
-
234
- factory = CompositeSubjectFactory(angelina, brad)
235
- composite_model = factory.get_midpoint_composite_subject_model()
236
-
237
- composite_chart = KerykeionChartSVG(composite_model, "Composite")
238
- composite_chart.makeSVG()
239
- ```
240
-
241
- ![Angelina Jolie and Brad Pitt Composite Chart](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/master/tests/charts/svg/Angelina%20Jolie%20and%20Brad%20Pitt%20Composite%20Chart%20-%20Composite%20Chart.svg)
242
-
243
- ## Wheel Only Charts
244
-
245
- For *all* the charts, you can generate a wheel-only chart by using the method `makeWheelOnlySVG()`:
246
-
247
- ### Birth Chart
248
- ```python
249
- from kerykeion import AstrologicalSubject, KerykeionChartSVG
250
-
251
- birth_chart = AstrologicalSubject("John Lennon", 1940, 10, 9, 18, 30, "Liverpool", "GB")
252
- birth_chart_svg = KerykeionChartSVG(birth_chart)
253
- birth_chart_svg.makeWheelOnlySVG()
254
- ```
255
- ![John Lennon Birth Chart](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/master/tests/charts/svg/John%20Lennon%20-%20Wheel%20Only%20-%20Natal%20Chart%20-%20Wheel%20Only.svg)
256
-
257
- ### Wheel Only Birth Chart (External)
258
-
259
- ```python
260
- from kerykeion import AstrologicalSubject, KerykeionChartSVG
261
- birth_chart = AstrologicalSubject("John Lennon", 1940, 10, 9, 18, 30, "Liverpool", "GB")
262
- birth_chart_svg = KerykeionChartSVG(birth_chart, chart_type="ExternalNatal")
263
- birth_chart_svg.makeWheelOnlySVG(
264
- wheel_only=True,
265
- wheel_only_external=True
266
- )
267
- ```
268
-
269
- ![John Lennon Birth Chart](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/master/tests/charts/svg/John%20Lennon%20-%20Wheel%20External%20Only%20-%20ExternalNatal%20Chart%20-%20Wheel%20Only.svg)
270
-
271
- ### Synastry Chart
272
- ```python
273
- from kerykeion import AstrologicalSubject, KerykeionChartSVG
274
- first = AstrologicalSubject("John Lennon", 1940, 10, 9, 18, 30, "Liverpool", "GB")
275
- second = AstrologicalSubject("Paul McCartney", 1942, 6, 18, 15, 30, "Liverpool", "GB")
276
- synastry_chart = KerykeionChartSVG(
277
- first, "Synastry", second
278
- )
279
- synastry_chart.makeWheelOnlySVG()
280
- ```
281
-
282
- ![John Lennon and Paul McCartney Synastry](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/master/tests/charts/svg/John%20Lennon%20-%20Wheel%20Synastry%20Only%20-%20Synastry%20Chart%20-%20Wheel%20Only.svg)
283
-
284
- ### Change the Output Directory
285
-
286
- To save the SVG file in a custom location, specify `new_output_directory`:
287
-
288
- ```python
289
- from kerykeion import AstrologicalSubject, KerykeionChartSVG
290
-
291
- first = AstrologicalSubject("John Lennon", 1940, 10, 9, 18, 30, "Liverpool", "GB")
292
- second = AstrologicalSubject("Paul McCartney", 1942, 6, 18, 15, 30, "Liverpool", "GB")
293
-
294
- synastry_chart = KerykeionChartSVG(
295
- first, "Synastry", second,
296
- new_output_directory="."
297
- )
298
- synastry_chart.makeSVG()
299
- ```
300
-
301
- ### Change Language
302
-
303
- You can switch chart language by passing `chart_language` to the `KerykeionChartSVG` class:
304
-
305
- ```python
306
- from kerykeion import AstrologicalSubject, KerykeionChartSVG
307
-
308
- first = AstrologicalSubject("John Lennon", 1940, 10, 9, 18, 30, "Liverpool", "GB")
309
- birth_chart_svg = KerykeionChartSVG(
310
- birth_chart,
311
- chart_language="IT" # Change to Italian
312
- )
313
- birth_chart_svg.makeSVG()
314
- ```
315
-
316
- More details [here](https://www.kerykeion.net/docs/chart-language).
317
-
318
- The available languages are:
319
- - EN (English)
320
- - FR (French)
321
- - PT (Portuguese)
322
- - ES (Spanish)
323
- - TR (Turkish)
324
- - RU (Russian)
325
- - IT (Italian)
326
- - CN (Chinese)
327
- - DE (German)
328
-
329
-
330
- ### Minified SVG
331
- To generate a minified SVG, set `minify_svg=True` in the `makeSVG()` method:
332
-
333
- ```python
334
- from kerykeion import AstrologicalSubject, KerykeionChartSVG
335
- first = AstrologicalSubject("John Lennon", 1940, 10, 9, 18, 30, "Liverpool", "GB")
336
- birth_chart_svg = KerykeionChartSVG(birth_chart)
337
- birth_chart_svg.makeSVG(
338
- minify=True
339
- )
340
- ```
341
-
342
- ### SVG without CSS Variables
343
- To generate an SVG without CSS variables, set `remove_css_variables=True` in the `makeSVG()` method:
344
-
345
- ```python
346
- from kerykeion import AstrologicalSubject, KerykeionChartSVG
347
-
348
- first = AstrologicalSubject("John Lennon", 1940, 10, 9, 18, 30, "Liverpool", "GB")
349
- birth_chart_svg = KerykeionChartSVG(birth_chart)
350
- birth_chart_svg.makeSVG(
351
- remove_css_variables=True
352
- )
353
- ```
354
- This will inline all styles and eliminate CSS variables, resulting in an SVG that is more broadly supported.
355
-
356
-
357
- ### Grid Only SVG
358
-
359
- It's possible to generate a grid-only SVG, useful for creating a custom layout. To do this, use the `makeGridOnlySVG()` method:
360
-
361
- ```python
362
- from kerykeion import AstrologicalSubject, KerykeionChartSVG
363
- birth_chart = AstrologicalSubject("John Lennon - Aspect Grid Dark Synastry", 1977, 6, 8, 8, 45, "Atlanta", "US")
364
- aspect_grid_dark_synastry_chart = KerykeionChartSVG(aspect_grid_dark_synastry_subject, "Synastry", second, theme="dark")
365
- aspect_grid_dark_synastry_chart.makeAspectGridOnlySVG()
366
- ```
367
- ![John Lennon Birth Chart](https://raw.githubusercontent.com/g-battaglia/kerykeion/refs/heads/master/tests/charts/svg/John%20Lennon%20-%20Aspect%20Grid%20Only%20-%20Natal%20Chart%20-%20Aspect%20Grid%20Only.svg)
368
-
369
- ## Report
370
-
371
- ```python
372
- from kerykeion import Report, AstrologicalSubject
373
-
374
- kanye = AstrologicalSubject("Kanye", 1977, 6, 8, 8, 45, "Atlanta", "US")
375
- report = Report(kanye)
376
- report.print_report()
377
- ```
378
-
379
- Returns:
380
-
381
- ```txt
382
- +- Kerykeion report for Kanye -+
383
- +----------+------+-------------+-----------+----------+
384
- | Date | Time | Location | Longitude | Latitude |
385
- +----------+------+-------------+-----------+----------+
386
- | 8/6/1977 | 8:45 | Atlanta, US | -84.38798 | 33.749 |
387
- +----------+------+-------------+-----------+----------+
388
- +-----------------+------+-------+------+----------------+
389
- | Planet | Sign | Pos. | Ret. | House |
390
- +-----------------+------+-------+------+----------------+
391
- | Sun | Gem | 17.6 | - | Twelfth_House |
392
- | Moon | Pis | 16.43 | - | Ninth_House |
393
- | Mercury | Tau | 26.29 | - | Eleventh_House |
394
- | Venus | Tau | 2.03 | - | Tenth_House |
395
- | Mars | Tau | 1.79 | - | Tenth_House |
396
- | Jupiter | Gem | 14.61 | - | Eleventh_House |
397
- | Saturn | Leo | 12.8 | - | Second_House |
398
- | Uranus | Sco | 8.27 | R | Fourth_House |
399
- | Neptune | Sag | 14.69 | R | Fifth_House |
400
- | Pluto | Lib | 11.45 | R | Fourth_House |
401
- | Mean_Node | Lib | 21.49 | R | Fourth_House |
402
- | True_Node | Lib | 22.82 | R | Fourth_House |
403
- | Mean_South_Node | Ari | 21.49 | R | Tenth_House |
404
- | True_South_Node | Ari | 22.82 | R | Tenth_House |
405
- | Chiron | Tau | 4.17 | - | Tenth_House |
406
- +-----------------+------+-------+------+----------------+
407
- +----------------+------+----------+
408
- | House | Sign | Position |
409
- +----------------+------+----------+
410
- | First_House | Can | 18.0 |
411
- | Second_House | Leo | 9.51 |
412
- | Third_House | Vir | 4.02 |
413
- | Fourth_House | Lib | 3.98 |
414
- | Fifth_House | Sco | 9.39 |
415
- | Sixth_House | Sag | 15.68 |
416
- | Seventh_House | Cap | 18.0 |
417
- | Eighth_House | Aqu | 9.51 |
418
- | Ninth_House | Pis | 4.02 |
419
- | Tenth_House | Ari | 3.98 |
420
- | Eleventh_House | Tau | 9.39 |
421
- | Twelfth_House | Gem | 15.68 |
422
- +----------------+------+----------+
423
-
424
- To export to a file:
425
-
426
- ```bash
427
- python3 your_script_name.py > file.txt
428
- ```
429
-
430
- ## Example: Retrieving Aspects
431
-
432
- ```python
433
- from kerykeion import SynastryAspects, AstrologicalSubject
434
-
435
- first = AstrologicalSubject("Jack", 1990, 6, 15, 15, 15, "Roma", "IT")
436
- second = AstrologicalSubject("Jane", 1991, 10, 25, 21, 0, "Roma", "IT")
437
-
438
- name = SynastryAspects(first, second)
439
- aspect_list = name.get_relevant_aspects()
440
- print(aspect_list[0])
441
- #> {'p1_name': 'Sun', 'p1_abs_pos': 84.17867971515636, 'p2_name': 'Sun', 'p2_abs_pos': 211.90472999502984, 'aspect': 'trine', 'orbit': 7.726050279873476, 'aspect_degrees': 120, 'color': '#36d100', 'aid': 6, 'diff': 127.72605027987348, 'p1': 0, 'p2': 0}
442
-
443
- ```
444
-
445
- ## Ayanamsa (Sidereal Modes)
446
-
447
- By default, the zodiac type is **Tropical**. To use **Sidereal**, specify the sidereal mode:
448
-
449
- ```python
450
- johnny = AstrologicalSubject(
451
- "Johnny Depp", 1963, 6, 9, 0, 0,
452
- "Owensboro", "US",
453
- zodiac_type="Sidereal",
454
- sidereal_mode="LAHIRI"
455
- )
456
- ```
457
-
458
- More examples [here](https://www.kerykeion.net/docs//sidereal-modes/).
459
-
460
- Full list of supported sidereal modes [here](https://www.kerykeion.net/pydocs/kerykeion/kr_types/kr_literals.html#SiderealMode).
461
-
462
- ## House Systems
463
-
464
- By default, houses are calculated using **Placidus**. Configure a different house system as follows:
465
-
466
- ```python
467
- johnny = AstrologicalSubject(
468
- "Johnny Depp", 1963, 6, 9, 0, 0,
469
- "Owensboro", "US",
470
- houses_system="M"
471
- )
472
- ```
473
-
474
- More examples [here](https://www.kerykeion.net/docs//houses-systems/).
475
-
476
- Full list of supported house systems [here](https://www.kerykeion.net/pydocs/kerykeion/kr_types/kr_literals.html#HousesSystem).
477
-
478
- So far all the available houses system in the Swiss Ephemeris are supported but the Gauquelin Sectors.
479
-
480
- ## Perspective Type
481
-
482
- By default, Kerykeion uses the **Apparent Geocentric** perspective (the most standard in astrology). Other perspectives (e.g., **Heliocentric**) can be set this way:
483
-
484
- ```python
485
- johnny = AstrologicalSubject(
486
- "Johnny Depp", 1963, 6, 9, 0, 0,
487
- "Owensboro", "US",
488
- perspective_type="Heliocentric"
489
- )
490
- ```
491
-
492
- More examples [here](https://www.kerykeion.net/docs//perspective-type/).
493
-
494
- Full list of supported perspective types [here](https://www.kerykeion.net/pydocs/kerykeion/kr_types/kr_literals.html#PerspectiveType).
495
-
496
- ## Themes
497
-
498
- Kerykeion provides several chart themes:
499
-
500
- - **Classic** (default)
501
- - **Dark**
502
- - **Dark High Contrast**
503
- - **Light**
504
-
505
- Each theme offers a distinct visual style, allowing you to choose the one that best suits your preferences or presentation needs. If you prefer more control over the appearance, you can opt not to set any theme, making it easier to customize the chart by overriding the default CSS variables. For more detailed instructions on how to apply themes, check the [documentation](https://www.kerykeion.net/docs/theming)
506
-
507
- Here's an example of how to set the theme:
508
-
509
- ```python
510
- from kerykeion import AstrologicalSubject, KerykeionChartSVG
511
-
512
- dark_theme_subject = AstrologicalSubject("John Lennon - Dark Theme", 1940, 10, 9, 18, 30, "Liverpool", "GB")
513
- dark_theme_natal_chart = KerykeionChartSVG(dark_high_contrast_theme_subject, theme="dark_high_contrast")
514
- dark_theme_natal_chart.makeSVG()
515
- ```
516
-
517
- ![John Lennon](https://www.kerykeion.net/img/showcase/John%20Lennon%20-%20Dark%20-%20Natal%20Chart.svg)
518
-
519
- ## Alternative Initialization
520
-
521
- Create an `AstrologicalSubject` from a UTC ISO 8601 string:
522
-
523
- ```python
524
- subject = AstrologicalSubject.get_from_iso_utc_time(
525
- "Johnny Depp", "1963-06-09T05:00:00Z", "Owensboro", "US"
526
- )
527
- ```
528
-
529
- If you set `online=True`, provide a `geonames_username` to allow city-based geolocation:
530
-
531
- ```python
532
- from kerykeion.astrological_subject import AstrologicalSubject
533
-
534
- subject = AstrologicalSubject.get_from_iso_utc_time(
535
- "Johnny Depp", "1963-06-09T05:00:00Z", "Owensboro", "US", online=True
536
- )
537
- ```
538
-
539
- ## Lunar Nodes (Rahu & Ketu)
540
-
541
- Kerykeion supports both **True** and **Mean** Lunar Nodes:
542
-
543
- - **True North Lunar Node**: `"true_node"` (name kept without "north" for backward compatibility).
544
- - **True South Lunar Node**: `"true_south_node"`.
545
- - **Mean North Lunar Node**: `"mean_node"` (name kept without "north" for backward compatibility).
546
- - **Mean South Lunar Node**: `"mean_south_node"`.
547
-
548
- In instances of the AstrologicalSubject class, all of them are active by default.
549
-
550
- In instances of the classes used to generate aspects and SVG charts, only the mean nodes are active. To activate the true nodes, you need to pass the `active_points` parameter to the `KerykeionChartSVG` class.
551
-
552
- Example:
553
-
554
- ```python
555
- from kerykeion import AstrologicalSubject, KerykeionChartSVG
556
-
557
- subject = AstrologicalSubject("John Lennon", 1940, 10, 9, 18, 30, "Liverpool", "GB")
558
-
559
- chart = KerykeionChartSVG(
560
- subject,
561
- active_points=[
562
- "Sun",
563
- "Moon",
564
- "Mercury",
565
- "Venus",
566
- "Mars",
567
- "Jupiter",
568
- "Saturn",
569
- "Uranus",
570
- "Neptune",
571
- "Pluto",
572
- "Mean_Node",
573
- "Mean_South_Node",
574
- "True_Node", # Activates True North Node
575
- "True_South_Node", # Activates True South Node
576
- "Ascendant",
577
- "Medium_Coeli",
578
- "Descendant",
579
- "Imum_Coeli"
580
- ]
581
- )
582
- chart.makeSVG()
583
- ```
584
-
585
- ## JSON Support
586
-
587
- You can serialize the astrological subject (the base data used throughout the library) to JSON:
588
-
589
- ```python
590
- from kerykeion import AstrologicalSubject
591
-
592
- johnny = AstrologicalSubject("Johnny Depp", 1963, 6, 9, 0, 0, "Owensboro", "US")
593
-
594
- print(johnny.json(dump=False, indent=2))
595
- ```
596
-
597
- ## Auto Generated Documentation
598
-
599
- You can find auto-generated documentation [here](https://www.kerykeion.net/pydocs/kerykeion.html). Most classes and functions include docstrings.
600
-
601
- ## Development
602
-
603
- Clone the repository or download the ZIP via the GitHub interface.
604
-
605
- ## Integrating Kerykeion into Your Project
606
-
607
- If you would like to incorporate Kerykeion’s astrological features into your application, please reach out via [email](mailto:kerykeion.astrology@gmail.com?subject=Integration%20Request). Whether you need custom features, support, or specialized consulting, I am happy to discuss potential collaborations.
608
-
609
- ## License
610
-
611
- This project is covered under the AGPL-3.0 License. For detailed information, please see the [LICENSE](LICENSE) file. If you have questions, feel free to contact me at [kerykeion.astrology@gmail.com](mailto:kerykeion.astrology@gmail.com?subject=Kerykeion).
612
-
613
- As a rule of thumb, if you use this library in a project, you should open-source that project under a compatible license. Alternatively, if you wish to keep your source closed, consider using the [AstrologerAPI](https://rapidapi.com/gbattaglia/api/astrologer/), which is AGPL-3.0 compliant and also helps support the project.
614
-
615
- Since the AstrologerAPI is an external third-party service, using it does *not* require your code to be open-source.
616
-
617
- ## Contributing
618
-
619
- Contributions are welcome! Feel free to submit pull requests or report issues.
620
-
621
- ## Citations
622
-
623
- If using Kerykeion in published or academic work, please cite as follows:
624
-
625
- ```
626
- Battaglia, G. (2025). Kerykeion: A Python Library for Astrological Calculations and Chart Generation.
627
- https://github.com/g-battaglia/kerykeion
628
- ```
629
-
630
- ## Next Version (V5)
631
-
632
- The development of Kerykeion V5 is underway, with a focus on enhancing the library's capabilities and performance.
633
- To follow the progress and contribute, check out the [V5 branch](https://github.com/g-battaglia/kerykeion/tree/next)
634
-
@@ -1,45 +0,0 @@
1
- kerykeion/__init__.py,sha256=2tiOzdqAj07A-wdHe30Gq3ElPnyWcLtOBodV_8tB37c,760
2
- kerykeion/aspects/__init__.py,sha256=9kx_Rx1NJx5SM7nDCSbI79S1neZ3c-q2NvQr-S6A9PY,292
3
- kerykeion/aspects/aspects_utils.py,sha256=Ej-E7Uvfi8x_ydP9dOhzhCp2uSpvX67T_VXuOjEKdoQ,3071
4
- kerykeion/aspects/natal_aspects.py,sha256=mwAGDPQE56PMoO8qSkJq7DDPb2aIz_0cVt5nfZHoaq0,6759
5
- kerykeion/aspects/synastry_aspects.py,sha256=9qw5cV1aiGI9vHFi41-2bBc-BfHU56tFPafZI-RQTiY,5155
6
- kerykeion/aspects/transits_time_range.py,sha256=_8FHnuWVE5A_9iB_uehMBNp9s8x30n-mMyN-X6-pNw8,1156
7
- kerykeion/astrological_subject.py,sha256=m_pBSMZs2_smf1_GLpr81wDBr0bzJkPux_j2EWLmcmk,36496
8
- kerykeion/charts/__init__.py,sha256=i9NMZ7LdkllPlqQSi1or9gTobHbROGDKmJhBDO4R0mA,128
9
- kerykeion/charts/charts_utils.py,sha256=TGmya60LMswUvQMi6irJWaboK6QRWCZ52wv5FMgaUT8,40424
10
- kerykeion/charts/draw_planets.py,sha256=Uty3zpWYMQZvvK7ZHhlmynCHeL8DIN3qL2ifnBXVciM,17393
11
- kerykeion/charts/kerykeion_chart_svg.py,sha256=H4mSXLhOp_nsqeg9xWdcS5KoV7_gP6vT_auVd23a5xk,59506
12
- kerykeion/charts/templates/aspect_grid_only.xml,sha256=ZiBVeToVmCA8QxYlB_cfnsAO1NNeQAnJ_6rIYkr4F58,70091
13
- kerykeion/charts/templates/chart.xml,sha256=2p2LNNib9MfZiq521tFoEUwOBEN6KlbKOY4ZINdf7Dc,74985
14
- kerykeion/charts/templates/wheel_only.xml,sha256=E0JCxcnjTjxuaomw7PQEc_3xRVErj1y2hIOGTrShuhc,71304
15
- kerykeion/charts/themes/classic.css,sha256=-b6XllAZmqUDjBwDtIkfzfI3Wtc8AImuGMpfAQ_2wa0,3552
16
- kerykeion/charts/themes/dark-high-contrast.css,sha256=9tdyFC-4Ytnv4lrVwKnOjZJ0YNgbRrP_HNnfJRlnbn0,6099
17
- kerykeion/charts/themes/dark.css,sha256=ml2lnzQVuS5DhCdoeUrDmMv9kB1nNceRt7hHbOHSbjM,6099
18
- kerykeion/charts/themes/light.css,sha256=ALf5U8tQsb6ky0N9R7ZLOHDrfKEXNM-sBR3JIRxFrCI,6092
19
- kerykeion/composite_subject_factory.py,sha256=ha66wQzcyJTb6XvJo3ppcZIZfvg4LQbFMLiIOm8Up0c,8245
20
- kerykeion/enums.py,sha256=nPXgP_ocsRnRno5H-yunZy3fp-hLZ9aYRaUb-2gBdvw,1199
21
- kerykeion/ephemeris_data.py,sha256=SAPEuVPv6iB1R95kpVgymOC5P3_fj7E3eqMEhegtJfg,10995
22
- kerykeion/fetch_geonames.py,sha256=e66Nh6yq9A4VjnuvVSiV1TW1IkJ9m3Q2LKPWrkOGgO0,4764
23
- kerykeion/kr_types/__init__.py,sha256=jshJOccCQcYZuoOvrILRZH6imy4RBvKpFPujlNLFyGE,295
24
- kerykeion/kr_types/chart_types.py,sha256=EFXTddX1wwTzbLSDKw_ipg4tbOihTKPEnn2T9ooFSig,2123
25
- kerykeion/kr_types/kerykeion_exception.py,sha256=kE1y0K0rmuz32b4K_ZppSsZ59I2Get0ZkvOkTE5HejI,314
26
- kerykeion/kr_types/kr_literals.py,sha256=b1JEgByA8-PWtkM8TdkNb2aePr8dUApI-OH3ciulJF8,4327
27
- kerykeion/kr_types/kr_models.py,sha256=3ZHc9887zpaftlsetNQ2iEhwzwwF7J7WhjuIUyMAuVU,8347
28
- kerykeion/kr_types/settings_models.py,sha256=vo_feYdV_DFMw2aDQahe2q8W_OzsmzP0R91wxUxEZzg,11000
29
- kerykeion/relationship_score/__init__.py,sha256=cLaEBQXQBfyRkv0OaS3ceLROzvWcvKXWiRq0PS6LDjY,114
30
- kerykeion/relationship_score/relationship_score.py,sha256=lJkSbHw9nOUaPMrPxqcGhnVQIwAgI52K8BQzXXswb6A,6504
31
- kerykeion/relationship_score/relationship_score_factory.py,sha256=Gc1sCc7-UAfyuEstn-mg71_QEElLLQpgyY1Y30YKQW8,8742
32
- kerykeion/report.py,sha256=snqnrJzb89q2ixL74qS9ksvzNSh_WXtZ_haBOIvHYeY,2814
33
- kerykeion/settings/__init__.py,sha256=QQNFCl7sgN27MKaVscqtpPk10HGz4wZS3I_7KEGMaVA,69
34
- kerykeion/settings/config_constants.py,sha256=OUi28L2l8s09Df3GHiQUiBZuTjOdfL4A5zSRNqBRHc8,1255
35
- kerykeion/settings/kerykeion_settings.py,sha256=7GCGUzcctEg5uyWlzRk2YIotJSkCZDOVAo_CXwgMeK4,2934
36
- kerykeion/settings/kr.config.json,sha256=4ZB7fkM0xiiXDLtxPRVDIVm0lUMYahWQmCVugFe274I,42628
37
- kerykeion/sweph/README.md,sha256=L7FtNAJTWtrZNGKa8MX87SjduFYPYxwWhaI5fmtzNZo,73
38
- kerykeion/sweph/seas_18.se1,sha256=X9nCqhZU43wJpq61WAdueVQJt9xL2UjrwPqn1Kdoa1s,223002
39
- kerykeion/transits_time_range.py,sha256=mOAtJyVrHp1aFUnp9ERJ9z2X6jUcLQN8ECeSupV7F9g,5226
40
- kerykeion/utilities.py,sha256=brrVNTXUnqjgFUkpllnFf6aivpX4q59XMlz2iWQvk4s,17732
41
- kerykeion-4.26.3.dist-info/LICENSE,sha256=UTLH8EdbAsgQei4PA2PnBCPGLSZkq5J-dhkyJuXgWQU,34273
42
- kerykeion-4.26.3.dist-info/METADATA,sha256=5tZEVYxaPiD-QlaCLS5Az0Kjrzw4az8ix8CqTtbzOY8,23905
43
- kerykeion-4.26.3.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
44
- kerykeion-4.26.3.dist-info/entry_points.txt,sha256=5SmANYscFDDTdeovHvGQ-cnj0hdFvGoxPaWLCpyDFnQ,49
45
- kerykeion-4.26.3.dist-info/RECORD,,
@@ -1,3 +0,0 @@
1
- [console_scripts]
2
- create-docs=scripts.docs:main
3
-