kerykeion 4.25.3__tar.gz → 4.26.0__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-4.25.3 → kerykeion-4.26.0}/PKG-INFO +127 -117
- {kerykeion-4.25.3 → kerykeion-4.26.0}/README.md +126 -116
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/__init__.py +1 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/aspects/natal_aspects.py +2 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/aspects/synastry_aspects.py +2 -0
- kerykeion-4.26.0/kerykeion/aspects/transits_time_range.py +41 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/ephemeris_data.py +74 -10
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/kr_types/kr_models.py +44 -0
- kerykeion-4.26.0/kerykeion/transits_time_range.py +124 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/pyproject.toml +1 -1
- {kerykeion-4.25.3 → kerykeion-4.26.0}/LICENSE +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/aspects/__init__.py +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/aspects/aspects_utils.py +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/astrological_subject.py +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/charts/__init__.py +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/charts/charts_utils.py +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/charts/draw_planets.py +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/charts/kerykeion_chart_svg.py +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/charts/templates/aspect_grid_only.xml +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/charts/templates/chart.xml +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/charts/templates/wheel_only.xml +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/charts/themes/classic.css +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/charts/themes/dark-high-contrast.css +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/charts/themes/dark.css +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/charts/themes/light.css +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/composite_subject_factory.py +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/enums.py +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/fetch_geonames.py +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/kr_types/__init__.py +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/kr_types/chart_types.py +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/kr_types/kerykeion_exception.py +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/kr_types/kr_literals.py +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/kr_types/settings_models.py +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/relationship_score/__init__.py +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/relationship_score/relationship_score.py +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/relationship_score/relationship_score_factory.py +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/report.py +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/settings/__init__.py +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/settings/config_constants.py +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/settings/kerykeion_settings.py +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/settings/kr.config.json +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/sweph/README.md +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/sweph/seas_18.se1 +0 -0
- {kerykeion-4.25.3 → kerykeion-4.26.0}/kerykeion/utilities.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: kerykeion
|
|
3
|
-
Version: 4.
|
|
3
|
+
Version: 4.26.0
|
|
4
4
|
Summary: A python library for astrology.
|
|
5
5
|
Home-page: https://www.kerykeion.net/
|
|
6
6
|
License: AGPL-3.0
|
|
@@ -37,53 +37,77 @@ Requires-Dist: typing-extensions (>=4.12.2,<5.0.0)
|
|
|
37
37
|
Project-URL: Repository, https://github.com/g-battaglia/kerykeion
|
|
38
38
|
Description-Content-Type: text/markdown
|
|
39
39
|
|
|
40
|
-
<h1 align=center>Kerykeion</h1>
|
|
40
|
+
<h1 align="center">Kerykeion</h1>
|
|
41
|
+
|
|
41
42
|
<div align="center">
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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
45
|
</div>
|
|
46
46
|
<div align="center">
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
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
52
|
</div>
|
|
53
53
|
|
|
54
54
|
|
|
55
55
|
|
|
56
|
-
Kerykeion is a
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
need in the settings in the utility module.
|
|
60
|
-
It also can generate an SVG of a birthchart, a synastry chart or a transit chart.
|
|
56
|
+
Kerykeion is a Python library for astrology. 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.
|
|
61
59
|
|
|
62
|
-
|
|
60
|
+
Kerykeion also integrates seamlessly with LLM and AI applications.
|
|
63
61
|
|
|
64
|
-
Here
|
|
62
|
+
Here is an example of a birthchart:
|
|
65
63
|
|
|
66
64
|

|
|
67
65
|
|
|
68
|
-
|
|
66
|
+
**Web API**
|
|
67
|
+
---
|
|
69
68
|
|
|
70
|
-
If you want to use Kerykeion in a web application,
|
|
69
|
+
If you want to use Kerykeion in a web application, you can try the dedicated web API:
|
|
71
70
|
|
|
72
71
|
**[AstrologerAPI](https://rapidapi.com/gbattaglia/api/astrologer/pricing)**
|
|
73
72
|
|
|
74
|
-
It
|
|
75
|
-
|
|
76
|
-
## Donate
|
|
73
|
+
It is [open source](https://github.com/g-battaglia/Astrologer-API) and directly supports this project.
|
|
77
74
|
|
|
78
|
-
|
|
75
|
+
**Donate**
|
|
76
|
+
--
|
|
79
77
|
|
|
80
|
-
If you
|
|
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:
|
|
81
79
|
|
|
82
80
|
[](https://ko-fi.com/kerykeion)
|
|
83
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
|
+
- [Synastry Chart](#synastry-chart)
|
|
89
|
+
- [Transit Chart](#transit-chart)
|
|
90
|
+
- [Composite Chart](#composite-chart)
|
|
91
|
+
- [Change the Output Directory](#change-the-output-directory)
|
|
92
|
+
- [Change Language](#change-language)
|
|
93
|
+
- [Report](#report)
|
|
94
|
+
- [Example: Retrieving Aspects](#example-retrieving-aspects)
|
|
95
|
+
- [Ayanamsa (Sidereal Modes)](#ayanamsa-sidereal-modes)
|
|
96
|
+
- [House Systems](#house-systems)
|
|
97
|
+
- [Perspective Type](#perspective-type)
|
|
98
|
+
- [Themes](#themes)
|
|
99
|
+
- [Alternative Initialization](#alternative-initialization)
|
|
100
|
+
- [Lunar Nodes (Rahu \& Ketu)](#lunar-nodes-rahu--ketu)
|
|
101
|
+
- [JSON Support](#json-support)
|
|
102
|
+
- [Auto Generated Documentation](#auto-generated-documentation)
|
|
103
|
+
- [Development](#development)
|
|
104
|
+
- [Integrating Kerykeion into Your Project](#integrating-kerykeion-into-your-project)
|
|
105
|
+
- [License](#license)
|
|
106
|
+
- [Contributing](#contributing)
|
|
107
|
+
|
|
84
108
|
## Installation
|
|
85
109
|
|
|
86
|
-
Kerykeion
|
|
110
|
+
Kerykeion requires **Python 3.9** or higher.
|
|
87
111
|
|
|
88
112
|
```bash
|
|
89
113
|
pip3 install kerykeion
|
|
@@ -91,48 +115,40 @@ pip3 install kerykeion
|
|
|
91
115
|
|
|
92
116
|
## Basic Usage
|
|
93
117
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
Here's an example:
|
|
118
|
+
Below is a simple example illustrating the creation of an astrological subject and retrieving astrological details:
|
|
97
119
|
|
|
98
120
|
```python
|
|
99
|
-
|
|
100
|
-
# Import the main class for creating a kerykeion instance:
|
|
101
121
|
from kerykeion import AstrologicalSubject
|
|
102
122
|
|
|
103
|
-
# Create
|
|
104
|
-
#
|
|
123
|
+
# Create an instance of the AstrologicalSubject class.
|
|
124
|
+
# Arguments: Name, year, month, day, hour, minutes, city, nation
|
|
105
125
|
kanye = AstrologicalSubject("Kanye", 1977, 6, 8, 8, 45, "Atlanta", "US")
|
|
106
126
|
|
|
107
|
-
#
|
|
108
|
-
# (The position of the planets always starts at 0)
|
|
127
|
+
# Retrieve information about the Sun:
|
|
109
128
|
kanye.sun
|
|
129
|
+
# > {'name': 'Sun', 'quality': 'Mutable', 'element': 'Air', 'sign': 'Gem', 'sign_num': 2, ...}
|
|
110
130
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
# Get information about the first house:
|
|
131
|
+
# Retrieve information about the first house:
|
|
114
132
|
kanye.first_house
|
|
133
|
+
# > {'name': 'First_House', 'quality': 'Cardinal', 'element': 'Water', 'sign': 'Can', ...}
|
|
115
134
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
# Get element of the moon sign:
|
|
135
|
+
# Retrieve the element of the Moon sign:
|
|
119
136
|
kanye.moon.element
|
|
120
|
-
|
|
121
|
-
#> 'Water'
|
|
122
|
-
|
|
137
|
+
# > 'Water'
|
|
123
138
|
```
|
|
124
139
|
|
|
125
|
-
**To avoid
|
|
140
|
+
**To avoid using GeoNames online, specify longitude, latitude, and timezone instead of city and nation:**
|
|
126
141
|
|
|
127
142
|
```python
|
|
128
143
|
kanye = AstrologicalSubject(
|
|
129
|
-
"Kanye", 1977, 6, 8, 8, 45,
|
|
144
|
+
"Kanye", 1977, 6, 8, 8, 45,
|
|
145
|
+
lng=50,
|
|
146
|
+
lat=50,
|
|
147
|
+
tz_str="Europe/Rome",
|
|
148
|
+
city="Rome"
|
|
130
149
|
)
|
|
131
150
|
```
|
|
132
151
|
|
|
133
|
-
The difference is that you have to pass the longitude, latitude and the timezone string, instead of the city and nation.
|
|
134
|
-
If you omit the nation, it will be set to "GB" by default, but the value is not used for calculations. It's better to set it to the correct value though.
|
|
135
|
-
|
|
136
152
|
## Generate a SVG Chart
|
|
137
153
|
|
|
138
154
|
### Birth Chart
|
|
@@ -140,15 +156,13 @@ If you omit the nation, it will be set to "GB" by default, but the value is not
|
|
|
140
156
|
```python
|
|
141
157
|
from kerykeion import AstrologicalSubject, KerykeionChartSVG
|
|
142
158
|
|
|
143
|
-
|
|
144
159
|
birth_chart = AstrologicalSubject("Kanye", 1977, 6, 8, 8, 45, "Atlanta", "US")
|
|
145
160
|
birth_chart_svg = KerykeionChartSVG(birth_chart)
|
|
146
|
-
|
|
147
161
|
birth_chart_svg.makeSVG()
|
|
148
162
|
```
|
|
149
163
|
|
|
150
164
|
The SVG file will be saved in the home directory.
|
|
151
|
-

|
|
152
166
|
|
|
153
167
|
### Synastry Chart
|
|
154
168
|
|
|
@@ -158,13 +172,11 @@ from kerykeion import AstrologicalSubject, KerykeionChartSVG
|
|
|
158
172
|
first = AstrologicalSubject("John Lennon", 1940, 10, 9, 18, 30, "Liverpool", "GB")
|
|
159
173
|
second = AstrologicalSubject("Paul McCartney", 1942, 6, 18, 15, 30, "Liverpool", "GB")
|
|
160
174
|
|
|
161
|
-
# Set the type, it can be Natal, Synastry or Transit
|
|
162
175
|
synastry_chart = KerykeionChartSVG(first, "Synastry", second)
|
|
163
176
|
synastry_chart.makeSVG()
|
|
164
|
-
|
|
165
177
|
```
|
|
166
178
|
|
|
167
|
-

|
|
168
180
|
|
|
169
181
|
|
|
170
182
|
### Transit Chart
|
|
@@ -187,20 +199,21 @@ transit_chart.makeSVG()
|
|
|
187
199
|
from kerykeion import CompositeSubjectFactory, AstrologicalSubject, KerykeionChartSVG
|
|
188
200
|
|
|
189
201
|
angelina = AstrologicalSubject("Angelina Jolie", 1975, 6, 4, 9, 9, "Los Angeles", "US", lng=-118.15, lat=34.03, tz_str="America/Los_Angeles")
|
|
202
|
+
|
|
190
203
|
brad = AstrologicalSubject("Brad Pitt", 1963, 12, 18, 6, 31, "Shawnee", "US", lng=-96.56, lat=35.20, tz_str="America/Chicago")
|
|
191
204
|
|
|
192
|
-
|
|
193
|
-
|
|
205
|
+
factory = CompositeSubjectFactory(angelina, brad)
|
|
206
|
+
composite_model = factory.get_midpoint_composite_subject_model()
|
|
194
207
|
|
|
195
|
-
composite_chart = KerykeionChartSVG(
|
|
208
|
+
composite_chart = KerykeionChartSVG(composite_model, "Composite")
|
|
196
209
|
composite_chart.makeSVG()
|
|
197
210
|
```
|
|
198
211
|
|
|
199
212
|

|
|
200
213
|
|
|
201
|
-
### Change the
|
|
214
|
+
### Change the Output Directory
|
|
202
215
|
|
|
203
|
-
|
|
216
|
+
To save the SVG file in a custom location, specify `new_output_directory`:
|
|
204
217
|
|
|
205
218
|
```python
|
|
206
219
|
from kerykeion import AstrologicalSubject, KerykeionChartSVG
|
|
@@ -208,23 +221,24 @@ from kerykeion import AstrologicalSubject, KerykeionChartSVG
|
|
|
208
221
|
first = AstrologicalSubject("John Lennon", 1940, 10, 9, 18, 30, "Liverpool", "GB")
|
|
209
222
|
second = AstrologicalSubject("Paul McCartney", 1942, 6, 18, 15, 30, "Liverpool", "GB")
|
|
210
223
|
|
|
211
|
-
|
|
212
|
-
|
|
224
|
+
synastry_chart = KerykeionChartSVG(
|
|
225
|
+
first, "Synastry", second,
|
|
226
|
+
new_output_directory="."
|
|
227
|
+
)
|
|
213
228
|
synastry_chart.makeSVG()
|
|
214
229
|
```
|
|
215
230
|
|
|
216
231
|
### Change Language
|
|
217
232
|
|
|
218
|
-
You can
|
|
233
|
+
You can switch chart language by passing `chart_language` to the `AstrologicalSubject` or `KerykeionChartSVG` classes:
|
|
219
234
|
|
|
220
235
|
```python
|
|
221
236
|
first = AstrologicalSubject("John Lennon", 1940, 10, 9, 18, 30, "Liverpool", "GB", chart_language="ES")
|
|
222
237
|
```
|
|
223
|
-
More details [here](https://www.kerykeion.net/docs/examples/chart-language).
|
|
224
238
|
|
|
225
|
-
|
|
239
|
+
More details [here](https://www.kerykeion.net/docs//chart-language).
|
|
226
240
|
|
|
227
|
-
|
|
241
|
+
## Report
|
|
228
242
|
|
|
229
243
|
```python
|
|
230
244
|
from kerykeion import Report, AstrologicalSubject
|
|
@@ -232,7 +246,6 @@ from kerykeion import Report, AstrologicalSubject
|
|
|
232
246
|
kanye = AstrologicalSubject("Kanye", 1977, 6, 8, 8, 45, "Atlanta", "US")
|
|
233
247
|
report = Report(kanye)
|
|
234
248
|
report.print_report()
|
|
235
|
-
|
|
236
249
|
```
|
|
237
250
|
|
|
238
251
|
Returns:
|
|
@@ -280,56 +293,57 @@ Returns:
|
|
|
280
293
|
| Twelfth_House | Gem | 15.68 |
|
|
281
294
|
+----------------+------+----------+
|
|
282
295
|
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
And if you want to export it to a file:
|
|
296
|
+
To export to a file:
|
|
286
297
|
|
|
287
298
|
```bash
|
|
288
299
|
python3 your_script_name.py > file.txt
|
|
289
300
|
```
|
|
290
301
|
|
|
291
|
-
##
|
|
302
|
+
## Example: Retrieving Aspects
|
|
292
303
|
|
|
293
304
|
```python
|
|
294
|
-
# Get all aspects between two persons:
|
|
295
|
-
|
|
296
305
|
from kerykeion import SynastryAspects, AstrologicalSubject
|
|
306
|
+
|
|
297
307
|
first = AstrologicalSubject("Jack", 1990, 6, 15, 15, 15, "Roma", "IT")
|
|
298
|
-
second = AstrologicalSubject("Jane", 1991, 10, 25, 21,
|
|
308
|
+
second = AstrologicalSubject("Jane", 1991, 10, 25, 21, 0, "Roma", "IT")
|
|
299
309
|
|
|
300
310
|
name = SynastryAspects(first, second)
|
|
301
311
|
aspect_list = name.get_relevant_aspects()
|
|
302
312
|
print(aspect_list[0])
|
|
303
|
-
|
|
304
|
-
#> Generating kerykeion object for Jack...
|
|
305
|
-
#> Generating kerykeion object for Jane...
|
|
306
313
|
#> {'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}
|
|
307
314
|
|
|
308
315
|
```
|
|
309
316
|
|
|
310
317
|
## Ayanamsa (Sidereal Modes)
|
|
311
318
|
|
|
312
|
-
By default, the zodiac type is
|
|
313
|
-
You can set the zodiac type to Sidereal and the sidereal mode in the AstrologicalSubject class:
|
|
319
|
+
By default, the zodiac type is **Tropical**. To use **Sidereal**, specify the sidereal mode:
|
|
314
320
|
|
|
315
321
|
```python
|
|
316
|
-
johnny = AstrologicalSubject(
|
|
322
|
+
johnny = AstrologicalSubject(
|
|
323
|
+
"Johnny Depp", 1963, 6, 9, 0, 0,
|
|
324
|
+
"Owensboro", "US",
|
|
325
|
+
zodiac_type="Sidereal",
|
|
326
|
+
sidereal_mode="LAHIRI"
|
|
327
|
+
)
|
|
317
328
|
```
|
|
318
329
|
|
|
319
|
-
More examples [here](https://www.kerykeion.net/docs
|
|
330
|
+
More examples [here](https://www.kerykeion.net/docs//sidereal-modes/).
|
|
320
331
|
|
|
321
332
|
Full list of supported sidereal modes [here](https://www.kerykeion.net/pydocs/kerykeion/kr_types/kr_literals.html#SiderealMode).
|
|
322
333
|
|
|
323
|
-
##
|
|
334
|
+
## House Systems
|
|
324
335
|
|
|
325
|
-
By default,
|
|
326
|
-
You can set the houses system in the AstrologicalSubject class:
|
|
336
|
+
By default, houses are calculated using **Placidus**. Configure a different house system as follows:
|
|
327
337
|
|
|
328
338
|
```python
|
|
329
|
-
johnny = AstrologicalSubject(
|
|
339
|
+
johnny = AstrologicalSubject(
|
|
340
|
+
"Johnny Depp", 1963, 6, 9, 0, 0,
|
|
341
|
+
"Owensboro", "US",
|
|
342
|
+
houses_system="M"
|
|
343
|
+
)
|
|
330
344
|
```
|
|
331
345
|
|
|
332
|
-
More examples [here](https://www.kerykeion.net/docs
|
|
346
|
+
More examples [here](https://www.kerykeion.net/docs//houses-systems/).
|
|
333
347
|
|
|
334
348
|
Full list of supported house systems [here](https://www.kerykeion.net/pydocs/kerykeion/kr_types/kr_literals.html#HousesSystem).
|
|
335
349
|
|
|
@@ -337,28 +351,30 @@ So far all the available houses system in the Swiss Ephemeris are supported but
|
|
|
337
351
|
|
|
338
352
|
## Perspective Type
|
|
339
353
|
|
|
340
|
-
By default,
|
|
341
|
-
The perspective indicates the point of view from which the chart is calculated (Es. Apparent Geocentric, Heliocentric, etc.).
|
|
342
|
-
You can set the perspective type in the AstrologicalSubject class:
|
|
354
|
+
By default, Kerykeion uses the **Apparent Geocentric** perspective (the most standard in astrology). Other perspectives (e.g., **Heliocentric**) can be set this way:
|
|
343
355
|
|
|
344
356
|
```python
|
|
345
|
-
johnny = AstrologicalSubject(
|
|
357
|
+
johnny = AstrologicalSubject(
|
|
358
|
+
"Johnny Depp", 1963, 6, 9, 0, 0,
|
|
359
|
+
"Owensboro", "US",
|
|
360
|
+
perspective_type="Heliocentric"
|
|
361
|
+
)
|
|
346
362
|
```
|
|
347
363
|
|
|
348
|
-
More examples [here](https://www.kerykeion.net/docs
|
|
364
|
+
More examples [here](https://www.kerykeion.net/docs//perspective-type/).
|
|
349
365
|
|
|
350
366
|
Full list of supported perspective types [here](https://www.kerykeion.net/pydocs/kerykeion/kr_types/kr_literals.html#PerspectiveType).
|
|
351
367
|
|
|
352
368
|
## Themes
|
|
353
369
|
|
|
354
|
-
|
|
370
|
+
Kerykeion provides several chart themes:
|
|
355
371
|
|
|
356
372
|
- **Classic** (default)
|
|
357
373
|
- **Dark**
|
|
358
374
|
- **Dark High Contrast**
|
|
359
375
|
- **Light**
|
|
360
|
-
|
|
361
|
-
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/
|
|
376
|
+
|
|
377
|
+
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)
|
|
362
378
|
|
|
363
379
|
Here's an example of how to set the theme:
|
|
364
380
|
|
|
@@ -370,28 +386,26 @@ dark_theme_natal_chart = KerykeionChartSVG(dark_high_contrast_theme_subject, the
|
|
|
370
386
|
dark_theme_natal_chart.makeSVG()
|
|
371
387
|
```
|
|
372
388
|
|
|
373
|
-

|
|
374
390
|
|
|
375
391
|
## Alternative Initialization
|
|
376
392
|
|
|
377
|
-
|
|
393
|
+
Create an `AstrologicalSubject` from a UTC ISO 8601 string:
|
|
378
394
|
|
|
379
395
|
```python
|
|
380
396
|
subject = AstrologicalSubject.get_from_iso_utc_time(
|
|
381
|
-
"Johnny Depp", "1963-06-09T05:00:00Z", "Owensboro", "US"
|
|
397
|
+
"Johnny Depp", "1963-06-09T05:00:00Z", "Owensboro", "US"
|
|
398
|
+
)
|
|
382
399
|
```
|
|
383
400
|
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
The default online/offline mode is set to offline, if you set it online the default latitude and longitude will be ignored and
|
|
387
|
-
calculated from the city and nation. Remember to pass also the geonames_username parameter if you want to use the online mode, like this:
|
|
401
|
+
If you set `online=True`, provide a `geonames_username` to allow city-based geolocation:
|
|
388
402
|
|
|
389
403
|
```python
|
|
390
404
|
from kerykeion.astrological_subject import AstrologicalSubject
|
|
391
405
|
|
|
392
|
-
# Use the static method get_from_iso_utc_time to create an instance of AstrologicalSubject
|
|
393
406
|
subject = AstrologicalSubject.get_from_iso_utc_time(
|
|
394
|
-
"Johnny Depp", "1963-06-09T05:00:00Z", "Owensboro", "US", online=True
|
|
407
|
+
"Johnny Depp", "1963-06-09T05:00:00Z", "Owensboro", "US", online=True
|
|
408
|
+
)
|
|
395
409
|
```
|
|
396
410
|
|
|
397
411
|
## Lunar Nodes (Rahu & Ketu)
|
|
@@ -427,7 +441,7 @@ To display them, you need to edit the configuration file (kr.config.json).
|
|
|
427
441
|
|
|
428
442
|
## JSON Support
|
|
429
443
|
|
|
430
|
-
|
|
444
|
+
You can serialize the astrological subject (the base data used throughout the library) to JSON:
|
|
431
445
|
|
|
432
446
|
```python
|
|
433
447
|
from kerykeion import AstrologicalSubject
|
|
@@ -437,31 +451,27 @@ johnny = AstrologicalSubject("Johnny Depp", 1963, 6, 9, 0, 0, "Owensboro", "US")
|
|
|
437
451
|
print(johnny.json(dump=False, indent=2))
|
|
438
452
|
```
|
|
439
453
|
|
|
440
|
-
## Documentation
|
|
454
|
+
## Auto Generated Documentation
|
|
441
455
|
|
|
442
|
-
|
|
443
|
-
An auto-generated documentation [is available here](https://www.kerykeion.net/pydocs/kerykeion.html).
|
|
444
|
-
|
|
445
|
-
Sooner or later I'll try to write an extensive documentation.
|
|
456
|
+
You can find auto-generated documentation [here](https://www.kerykeion.net/pydocs/kerykeion.html). Most classes and functions include docstrings.
|
|
446
457
|
|
|
447
458
|
## Development
|
|
448
459
|
|
|
449
|
-
|
|
460
|
+
Clone the repository or download the ZIP via the GitHub interface.
|
|
450
461
|
|
|
451
|
-
##
|
|
462
|
+
## Integrating Kerykeion into Your Project
|
|
452
463
|
|
|
453
|
-
If you
|
|
464
|
+
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.
|
|
454
465
|
|
|
455
466
|
## License
|
|
456
467
|
|
|
457
|
-
This project is
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
As a rule of thumb, if you are using this library in a project, you should open source the code of the project with a compatible license.
|
|
468
|
+
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).
|
|
469
|
+
|
|
470
|
+
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.
|
|
461
471
|
|
|
462
|
-
|
|
472
|
+
Since the AstrologerAPI is an external third-party service, using it does *not* require your code to be open-source.
|
|
463
473
|
|
|
464
474
|
## Contributing
|
|
465
475
|
|
|
466
|
-
Feel free to
|
|
476
|
+
Contributions are welcome! Feel free to submit pull requests or report issues.
|
|
467
477
|
|