kerykeion 3.1.1__py3-none-any.whl → 5.1.9__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/__init__.py +58 -141
- kerykeion/aspects/__init__.py +14 -0
- kerykeion/aspects/aspects_factory.py +568 -0
- kerykeion/aspects/aspects_utils.py +164 -0
- kerykeion/astrological_subject_factory.py +1901 -0
- kerykeion/backword.py +820 -0
- kerykeion/chart_data_factory.py +552 -0
- kerykeion/charts/__init__.py +5 -0
- kerykeion/charts/chart_drawer.py +2794 -0
- kerykeion/charts/charts_utils.py +1840 -0
- kerykeion/charts/draw_planets.py +658 -0
- kerykeion/charts/templates/aspect_grid_only.xml +596 -0
- kerykeion/charts/templates/chart.xml +741 -0
- kerykeion/charts/templates/wheel_only.xml +653 -0
- kerykeion/charts/themes/black-and-white.css +148 -0
- kerykeion/charts/themes/classic.css +113 -0
- kerykeion/charts/themes/dark-high-contrast.css +159 -0
- kerykeion/charts/themes/dark.css +160 -0
- kerykeion/charts/themes/light.css +160 -0
- kerykeion/charts/themes/strawberry.css +158 -0
- kerykeion/composite_subject_factory.py +408 -0
- kerykeion/ephemeris_data_factory.py +443 -0
- kerykeion/fetch_geonames.py +105 -61
- kerykeion/house_comparison/__init__.py +6 -0
- kerykeion/house_comparison/house_comparison_factory.py +103 -0
- kerykeion/house_comparison/house_comparison_utils.py +126 -0
- kerykeion/kr_types/__init__.py +70 -0
- kerykeion/kr_types/chart_template_model.py +20 -0
- kerykeion/kr_types/kerykeion_exception.py +20 -0
- kerykeion/kr_types/kr_literals.py +20 -0
- kerykeion/kr_types/kr_models.py +20 -0
- kerykeion/kr_types/settings_models.py +20 -0
- kerykeion/planetary_return_factory.py +805 -0
- kerykeion/relationship_score_factory.py +301 -0
- kerykeion/report.py +779 -0
- kerykeion/schemas/__init__.py +106 -0
- kerykeion/schemas/chart_template_model.py +367 -0
- kerykeion/schemas/kerykeion_exception.py +20 -0
- kerykeion/schemas/kr_literals.py +181 -0
- kerykeion/schemas/kr_models.py +603 -0
- kerykeion/schemas/settings_models.py +188 -0
- kerykeion/settings/__init__.py +20 -0
- kerykeion/settings/chart_defaults.py +444 -0
- kerykeion/settings/config_constants.py +152 -0
- kerykeion/settings/kerykeion_settings.py +51 -0
- kerykeion/settings/translation_strings.py +1499 -0
- kerykeion/settings/translations.py +74 -0
- kerykeion/sweph/README.md +3 -0
- kerykeion/sweph/ast136/s136108s.se1 +0 -0
- kerykeion/sweph/ast136/s136199s.se1 +0 -0
- kerykeion/sweph/ast136/s136472s.se1 +0 -0
- kerykeion/sweph/ast28/se28978s.se1 +0 -0
- kerykeion/sweph/ast50/se50000s.se1 +0 -0
- kerykeion/sweph/ast90/se90377s.se1 +0 -0
- kerykeion/sweph/ast90/se90482s.se1 +0 -0
- kerykeion/sweph/seas_18.se1 +0 -0
- kerykeion/sweph/sefstars.txt +1602 -0
- kerykeion/transits_time_range_factory.py +302 -0
- kerykeion/utilities.py +762 -130
- kerykeion-5.1.9.dist-info/METADATA +1793 -0
- kerykeion-5.1.9.dist-info/RECORD +63 -0
- {kerykeion-3.1.1.dist-info → kerykeion-5.1.9.dist-info}/WHEEL +1 -2
- kerykeion-5.1.9.dist-info/licenses/LICENSE +661 -0
- kerykeion/aspects.py +0 -331
- kerykeion/charts/charts_svg.py +0 -1607
- kerykeion/charts/templates/basic.xml +0 -285
- kerykeion/charts/templates/extended.xml +0 -294
- kerykeion/kr.config.json +0 -464
- kerykeion/main.py +0 -595
- kerykeion/print_all_data.py +0 -44
- kerykeion/relationship_score.py +0 -219
- kerykeion/types.py +0 -190
- kerykeion-3.1.1.dist-info/METADATA +0 -204
- kerykeion-3.1.1.dist-info/RECORD +0 -17
- kerykeion-3.1.1.dist-info/top_level.txt +0 -1
kerykeion/relationship_score.py
DELETED
|
@@ -1,219 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
This is part of Kerykeion (C) 2022 Giacomo Battaglia
|
|
3
|
-
"""
|
|
4
|
-
#!/usr/bin/env python3
|
|
5
|
-
# -*- coding: utf-8 -*-
|
|
6
|
-
|
|
7
|
-
from kerykeion import KrInstance
|
|
8
|
-
from kerykeion.aspects import CompositeAspects
|
|
9
|
-
from logging import basicConfig, Logger, getLogger
|
|
10
|
-
from pathlib import Path
|
|
11
|
-
from typing import Union
|
|
12
|
-
|
|
13
|
-
basicConfig(
|
|
14
|
-
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
|
15
|
-
level=20
|
|
16
|
-
)
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
class RelationshipScore:
|
|
20
|
-
"""
|
|
21
|
-
Calculates the relevance of the relationship of the two subjects according to
|
|
22
|
-
Ciro Discepolo method.
|
|
23
|
-
|
|
24
|
-
Results:
|
|
25
|
-
- From 0 to 5 = Null relationship
|
|
26
|
-
- From 5 a 10 = Mediocre relationship
|
|
27
|
-
- From 10 to 15 = Important relationship
|
|
28
|
-
- From 15 to 20 = Very important relationship
|
|
29
|
-
- From 20 to su = Exceptional relationship
|
|
30
|
-
|
|
31
|
-
Documentation at:
|
|
32
|
-
http://www.cirodiscepolo.it/Articoli/Discepoloele.htm
|
|
33
|
-
|
|
34
|
-
Args:
|
|
35
|
-
first_subject (KrInstance): First subject kerykeion instance
|
|
36
|
-
second_subject (KrInstance): Second subject kerykeion instance
|
|
37
|
-
logger (Union[Logger, None], optional): Instance of Logger if None creates new one. Defaults to None.
|
|
38
|
-
|
|
39
|
-
"""
|
|
40
|
-
first_subject: KrInstance
|
|
41
|
-
second_subject: KrInstance
|
|
42
|
-
score: int
|
|
43
|
-
is_destiny_sign: bool
|
|
44
|
-
relevant_default_aspects: list
|
|
45
|
-
relevant_default_aspects: list
|
|
46
|
-
|
|
47
|
-
def __init__(self, first_subject: KrInstance, second_subject: KrInstance, logger: Union[Logger, None] = None, new_settings_file: Union[str, Path, None] = None):
|
|
48
|
-
|
|
49
|
-
self.first_subject = first_subject
|
|
50
|
-
self.second_subject = second_subject
|
|
51
|
-
self.score = 0
|
|
52
|
-
self.is_destiny_sign = False
|
|
53
|
-
self.relevant_aspects = []
|
|
54
|
-
self.relevant_default_aspects = []
|
|
55
|
-
self.__logger: Logger = logger or getLogger(self.__class__.__name__)
|
|
56
|
-
self.__all_composite_aspects = CompositeAspects(
|
|
57
|
-
first_subject,
|
|
58
|
-
second_subject,
|
|
59
|
-
new_settings_file=new_settings_file
|
|
60
|
-
).get_all_aspects()
|
|
61
|
-
|
|
62
|
-
# Calculates all at initialization
|
|
63
|
-
self.__get_all()
|
|
64
|
-
|
|
65
|
-
def __str__(self) -> str:
|
|
66
|
-
return f'CuppleScoreInstance: {self.first_subject.name} and {self.second_subject.name}, score: {self.score}'
|
|
67
|
-
|
|
68
|
-
def __dict__(self):
|
|
69
|
-
return {
|
|
70
|
-
'first_subject_name': self.first_subject.name,
|
|
71
|
-
'second_subject_name': self.second_subject.name,
|
|
72
|
-
'score': self.score,
|
|
73
|
-
'relevant_aspects': self.relevant_aspects,
|
|
74
|
-
'relevant_default_aspects': self.relevant_default_aspects,
|
|
75
|
-
'is_destiny_sign': self.is_destiny_sign
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
def __log_aspect(self, aspect: dict, points: int) -> None:
|
|
79
|
-
self.__logger.debug(
|
|
80
|
-
f"{points} Points: {aspect['p1_name']} {aspect['aspect']} {aspect['p2_name']}, rounded orbit: {int(aspect['orbit'])}"
|
|
81
|
-
)
|
|
82
|
-
|
|
83
|
-
def __evaluate_destiny_sign(self) -> int:
|
|
84
|
-
"""5 points if is a destiny sign:"""
|
|
85
|
-
if self.first_subject.sun['quality'] == self.second_subject.sun['quality']:
|
|
86
|
-
self.__logger.debug(
|
|
87
|
-
f'5 points: Destiny sign, {self.first_subject.sun["sign"]} and {self.second_subject.sun["sign"]}')
|
|
88
|
-
self.is_destiny_sign = True
|
|
89
|
-
return 5
|
|
90
|
-
|
|
91
|
-
return 0
|
|
92
|
-
|
|
93
|
-
def __check_if_sun_sun_aspect(self, aspect: dict, log: bool = True) -> int:
|
|
94
|
-
"""8 points if Sun conjunction/opposition/square to Sun,
|
|
95
|
-
11 if diff <= 2 degrees:"""
|
|
96
|
-
aspect_types = ['conjunction', 'opposition', 'square']
|
|
97
|
-
|
|
98
|
-
if (aspect['p1_name'] == 'Sun' and aspect['p2_name'] == 'Sun') and (aspect['aspect'] in aspect_types):
|
|
99
|
-
self.relevant_default_aspects.append(aspect)
|
|
100
|
-
|
|
101
|
-
if aspect['orbit'] <= 2:
|
|
102
|
-
score = 11
|
|
103
|
-
|
|
104
|
-
if log:
|
|
105
|
-
self.__log_aspect(aspect, score)
|
|
106
|
-
self.relevant_aspects.append(
|
|
107
|
-
self.__create_aspects_dictionary(aspect, score))
|
|
108
|
-
|
|
109
|
-
return score
|
|
110
|
-
else:
|
|
111
|
-
score = 8
|
|
112
|
-
|
|
113
|
-
if log:
|
|
114
|
-
self.__log_aspect(aspect, score)
|
|
115
|
-
self.relevant_aspects.append(
|
|
116
|
-
self.__create_aspects_dictionary(aspect, score))
|
|
117
|
-
|
|
118
|
-
return score
|
|
119
|
-
|
|
120
|
-
return 0
|
|
121
|
-
|
|
122
|
-
def __check_if_sun_moon_conjunction(self, aspect: dict, log: bool = True) -> int:
|
|
123
|
-
""" 8 points if Moon conjunction/opposition/square to Moon,
|
|
124
|
-
11 if diff <= 2 degrees: """
|
|
125
|
-
planets = set(['Moon', 'Sun'])
|
|
126
|
-
|
|
127
|
-
if (
|
|
128
|
-
set([aspect['p1_name'], aspect['p2_name']]) == planets
|
|
129
|
-
and aspect['aspect'] == 'conjunction'
|
|
130
|
-
):
|
|
131
|
-
self.relevant_default_aspects.append(aspect)
|
|
132
|
-
|
|
133
|
-
if aspect['orbit'] <= 2:
|
|
134
|
-
score = 11
|
|
135
|
-
|
|
136
|
-
if log:
|
|
137
|
-
self.__log_aspect(aspect, score)
|
|
138
|
-
self.relevant_aspects.append(
|
|
139
|
-
self.__create_aspects_dictionary(aspect, score))
|
|
140
|
-
|
|
141
|
-
return score
|
|
142
|
-
|
|
143
|
-
else:
|
|
144
|
-
score = 8
|
|
145
|
-
if log:
|
|
146
|
-
self.__log_aspect(aspect, score)
|
|
147
|
-
self.relevant_aspects.append(
|
|
148
|
-
self.__create_aspects_dictionary(aspect, score))
|
|
149
|
-
|
|
150
|
-
return score
|
|
151
|
-
|
|
152
|
-
return 0
|
|
153
|
-
|
|
154
|
-
def __check_if_sun_moon_asc_aspect(self, aspect: dict, log: bool = True) -> int:
|
|
155
|
-
planets = ["Sun", "Moon", "First House"]
|
|
156
|
-
|
|
157
|
-
if self.__check_if_sun_sun_aspect(aspect, log=False) or self.__check_if_sun_moon_conjunction(aspect, log=False):
|
|
158
|
-
return 0
|
|
159
|
-
|
|
160
|
-
if (aspect['p1_name'] in planets and aspect['p2_name'] in planets):
|
|
161
|
-
self.relevant_default_aspects.append(aspect)
|
|
162
|
-
score = 4
|
|
163
|
-
|
|
164
|
-
if log:
|
|
165
|
-
self.__log_aspect(aspect, score)
|
|
166
|
-
self.relevant_aspects.append(
|
|
167
|
-
self.__create_aspects_dictionary(aspect, score))
|
|
168
|
-
|
|
169
|
-
return score
|
|
170
|
-
|
|
171
|
-
return 0
|
|
172
|
-
|
|
173
|
-
def __check_if_venus_mars_aspect(self, aspect: dict, log: bool = True) -> int:
|
|
174
|
-
planets = set(['Venus', 'Mars'])
|
|
175
|
-
if set([aspect['p1_name'], aspect['p2_name']]) == planets:
|
|
176
|
-
score = 4
|
|
177
|
-
self.relevant_default_aspects.append(aspect)
|
|
178
|
-
|
|
179
|
-
if log:
|
|
180
|
-
self.__log_aspect(aspect, score)
|
|
181
|
-
self.relevant_aspects.append(
|
|
182
|
-
self.__create_aspects_dictionary(aspect, score))
|
|
183
|
-
|
|
184
|
-
return score
|
|
185
|
-
|
|
186
|
-
return 0
|
|
187
|
-
|
|
188
|
-
def __create_aspects_dictionary(self, aspect: dict, score: int) -> dict:
|
|
189
|
-
return {
|
|
190
|
-
'points': score,
|
|
191
|
-
'p1_name': aspect['p1_name'],
|
|
192
|
-
'p2_name': aspect['p2_name'],
|
|
193
|
-
'aspect': 'conjunction',
|
|
194
|
-
'orbit': aspect['orbit']
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
def __get_all(self) -> None:
|
|
198
|
-
self.score += self.__evaluate_destiny_sign()
|
|
199
|
-
|
|
200
|
-
for a in self.__all_composite_aspects:
|
|
201
|
-
self.score += self.__check_if_sun_sun_aspect(a)
|
|
202
|
-
self.score += self.__check_if_sun_moon_conjunction(a)
|
|
203
|
-
self.score += self.__check_if_sun_moon_asc_aspect(a)
|
|
204
|
-
self.score += self.__check_if_venus_mars_aspect(a)
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
if __name__ == '__main__':
|
|
208
|
-
basicConfig(
|
|
209
|
-
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
|
210
|
-
level=10,
|
|
211
|
-
force=True
|
|
212
|
-
)
|
|
213
|
-
lui = KrInstance("John", 1975, 10, 10, 21, 15, 'Roma', 'IT')
|
|
214
|
-
lei = KrInstance("Sarah", 1978, 2, 9, 15, 50, 'Roma', 'IT')
|
|
215
|
-
|
|
216
|
-
score = RelationshipScore(lui, lei)
|
|
217
|
-
print(score.__dict__()['score'])
|
|
218
|
-
print(score.__dict__()['is_destiny_sign'])
|
|
219
|
-
print(score.__dict__()['relevant_aspects'][0])
|
kerykeion/types.py
DELETED
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
This is part of Kerykeion (C) 2022 Giacomo Battaglia
|
|
3
|
-
"""
|
|
4
|
-
#!/usr/bin/env python3
|
|
5
|
-
# -*- coding: utf-8 -*-
|
|
6
|
-
|
|
7
|
-
from typing import Literal, Union, Optional
|
|
8
|
-
from pydantic import BaseModel
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
# Exceptions:
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
class KerykeionException(Exception):
|
|
15
|
-
"""
|
|
16
|
-
Custom Kerykeion Exception
|
|
17
|
-
"""
|
|
18
|
-
|
|
19
|
-
def __init__(self, message):
|
|
20
|
-
# Call the base class constructor with the parameters it needs
|
|
21
|
-
super().__init__(message)
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
# Zodiac Types:
|
|
25
|
-
ZodiacType = Literal['Tropic', 'Sidereal']
|
|
26
|
-
|
|
27
|
-
# Sings:
|
|
28
|
-
Sign = Literal[
|
|
29
|
-
"Ari",
|
|
30
|
-
"Tau",
|
|
31
|
-
"Gem",
|
|
32
|
-
"Can",
|
|
33
|
-
"Leo",
|
|
34
|
-
"Vir",
|
|
35
|
-
"Lib",
|
|
36
|
-
"Sco",
|
|
37
|
-
"Sag",
|
|
38
|
-
"Cap",
|
|
39
|
-
"Aqu",
|
|
40
|
-
"Pis"
|
|
41
|
-
]
|
|
42
|
-
|
|
43
|
-
Houses = Literal[
|
|
44
|
-
"First House",
|
|
45
|
-
"Second House",
|
|
46
|
-
"Third House",
|
|
47
|
-
"Fourth House",
|
|
48
|
-
"Fifth House",
|
|
49
|
-
"Sixth House",
|
|
50
|
-
"Seventh House",
|
|
51
|
-
"Eighth House",
|
|
52
|
-
"Ninth House",
|
|
53
|
-
"Tenth House",
|
|
54
|
-
"Eleventh House",
|
|
55
|
-
"Twelfth House"
|
|
56
|
-
]
|
|
57
|
-
|
|
58
|
-
Planet = Literal[
|
|
59
|
-
"Sun",
|
|
60
|
-
"Moon",
|
|
61
|
-
"Mercury",
|
|
62
|
-
"Venus",
|
|
63
|
-
"Mars",
|
|
64
|
-
"Jupiter",
|
|
65
|
-
"Saturn",
|
|
66
|
-
"Uranus",
|
|
67
|
-
"Neptune",
|
|
68
|
-
"Pluto",
|
|
69
|
-
"Mean_Node",
|
|
70
|
-
"True_Node"
|
|
71
|
-
]
|
|
72
|
-
|
|
73
|
-
Element = Literal[
|
|
74
|
-
"Air",
|
|
75
|
-
"Fire",
|
|
76
|
-
"Earth",
|
|
77
|
-
"Water"
|
|
78
|
-
]
|
|
79
|
-
|
|
80
|
-
Quality = Literal[
|
|
81
|
-
'Cardinal',
|
|
82
|
-
'Fixed',
|
|
83
|
-
'Mutable',
|
|
84
|
-
]
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
ChartType = Literal[
|
|
88
|
-
'Natal',
|
|
89
|
-
'Composite',
|
|
90
|
-
'Transit'
|
|
91
|
-
]
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
class KerykeionPoint(BaseModel):
|
|
95
|
-
"""
|
|
96
|
-
Kerykeion Point Model
|
|
97
|
-
"""
|
|
98
|
-
|
|
99
|
-
name: Union[Planet, Houses]
|
|
100
|
-
quality: Quality
|
|
101
|
-
element: Element
|
|
102
|
-
sign: Sign
|
|
103
|
-
sign_num: Literal[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
|
|
104
|
-
position: float
|
|
105
|
-
abs_pos: float
|
|
106
|
-
emoji: str
|
|
107
|
-
point_type: Literal['Planet', 'House']
|
|
108
|
-
house: Optional[Literal[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]] = None
|
|
109
|
-
retrograde: Optional[bool] = None
|
|
110
|
-
|
|
111
|
-
def __str__(self):
|
|
112
|
-
return super().dict(exclude_none=True, exclude_unset=True, exclude_defaults=True, by_alias=False).__str__()
|
|
113
|
-
|
|
114
|
-
def __repr__(self):
|
|
115
|
-
return super().dict(exclude_none=True, exclude_unset=True, exclude_defaults=True, by_alias=False).__str__()
|
|
116
|
-
|
|
117
|
-
def __getitem__(self, key):
|
|
118
|
-
return getattr(self, key)
|
|
119
|
-
|
|
120
|
-
def __setitem__(self, key, value):
|
|
121
|
-
setattr(self, key, value)
|
|
122
|
-
|
|
123
|
-
def __delitem__(self, key):
|
|
124
|
-
delattr(self, key)
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
class KerykeionSubject(BaseModel):
|
|
128
|
-
# Data
|
|
129
|
-
name: str
|
|
130
|
-
year: int
|
|
131
|
-
month: int
|
|
132
|
-
day: int
|
|
133
|
-
hour: int
|
|
134
|
-
minute: int
|
|
135
|
-
city: str
|
|
136
|
-
nation: str
|
|
137
|
-
lng: float
|
|
138
|
-
lat: float
|
|
139
|
-
tz_str: str
|
|
140
|
-
zodiac_type: ZodiacType
|
|
141
|
-
local_time: float
|
|
142
|
-
utc_time: float
|
|
143
|
-
julian_day: float
|
|
144
|
-
|
|
145
|
-
# Planets
|
|
146
|
-
sun: KerykeionPoint
|
|
147
|
-
moon: KerykeionPoint
|
|
148
|
-
mercury: KerykeionPoint
|
|
149
|
-
venus: KerykeionPoint
|
|
150
|
-
mars: KerykeionPoint
|
|
151
|
-
jupiter: KerykeionPoint
|
|
152
|
-
saturn: KerykeionPoint
|
|
153
|
-
uranus: KerykeionPoint
|
|
154
|
-
neptune: KerykeionPoint
|
|
155
|
-
pluto: KerykeionPoint
|
|
156
|
-
|
|
157
|
-
# Houses
|
|
158
|
-
first_house: KerykeionPoint
|
|
159
|
-
second_house: KerykeionPoint
|
|
160
|
-
third_house: KerykeionPoint
|
|
161
|
-
fourth_house: KerykeionPoint
|
|
162
|
-
fifth_house: KerykeionPoint
|
|
163
|
-
sixth_house: KerykeionPoint
|
|
164
|
-
seventh_house: KerykeionPoint
|
|
165
|
-
eighth_house: KerykeionPoint
|
|
166
|
-
ninth_house: KerykeionPoint
|
|
167
|
-
tenth_house: KerykeionPoint
|
|
168
|
-
eleventh_house: KerykeionPoint
|
|
169
|
-
twelfth_house: KerykeionPoint
|
|
170
|
-
|
|
171
|
-
# Nodes
|
|
172
|
-
mean_node: KerykeionPoint
|
|
173
|
-
true_node: KerykeionPoint
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
if __name__ == "__main__":
|
|
177
|
-
sun = KerykeionPoint(
|
|
178
|
-
name='Sun',
|
|
179
|
-
element='Air',
|
|
180
|
-
quality='Fixed',
|
|
181
|
-
sign='Aqu',
|
|
182
|
-
sign_num=1,
|
|
183
|
-
position=0,
|
|
184
|
-
abs_pos=12.123123,
|
|
185
|
-
emoji='♈',
|
|
186
|
-
point_type='Planet'
|
|
187
|
-
)
|
|
188
|
-
|
|
189
|
-
print(sun.json())
|
|
190
|
-
print(sun)
|
|
@@ -1,204 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: kerykeion
|
|
3
|
-
Version: 3.1.1
|
|
4
|
-
Summary: A python library for astrology.
|
|
5
|
-
Home-page: https://github.com/g-battaglia/kerykeion
|
|
6
|
-
Author: Giacomo Battaglia
|
|
7
|
-
Author-email: battaglia.giacomo@yahoo.it
|
|
8
|
-
License: UNKNOWN
|
|
9
|
-
Platform: UNKNOWN
|
|
10
|
-
Classifier: Development Status :: 5 - Production/Stable
|
|
11
|
-
Classifier: Intended Audience :: Information Technology
|
|
12
|
-
Classifier: Intended Audience :: Developers
|
|
13
|
-
Classifier: License :: OSI Approved :: GNU General Public License (GPL)
|
|
14
|
-
Classifier: Operating System :: OS Independent
|
|
15
|
-
Classifier: Programming Language :: Python :: 3 :: Only
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
17
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
18
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
19
|
-
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
20
|
-
Classifier: Topic :: Software Development :: Libraries
|
|
21
|
-
Classifier: Topic :: Software Development
|
|
22
|
-
Classifier: Topic :: Scientific/Engineering :: Astronomy
|
|
23
|
-
Classifier: Typing :: Typed
|
|
24
|
-
Requires-Python: >=3.8
|
|
25
|
-
Description-Content-Type: text/markdown
|
|
26
|
-
Requires-Dist: pyswisseph
|
|
27
|
-
Requires-Dist: pytz
|
|
28
|
-
Requires-Dist: jsonpickle
|
|
29
|
-
Requires-Dist: requests
|
|
30
|
-
Requires-Dist: requests-cache
|
|
31
|
-
|
|
32
|
-
<h1 align=center>Kerykeion</h1>
|
|
33
|
-
<div align="center">
|
|
34
|
-
<a href="#">
|
|
35
|
-
<img src="https://img.shields.io/github/contributors/g-battaglia/kerykeion?color=blue&logo=github" alt="contributors">
|
|
36
|
-
</a>
|
|
37
|
-
<a href="#">
|
|
38
|
-
<img src="https://img.shields.io/github/stars/g-battaglia/kerykeion.svg?logo=github" alt="stars">
|
|
39
|
-
</a>
|
|
40
|
-
<a href="#">
|
|
41
|
-
<img src="https://img.shields.io/github/forks/g-battaglia/kerykeion.svg?logo=github" alt="forks">
|
|
42
|
-
</a>
|
|
43
|
-
<a href="https://pypi.org/project/kerykeion" target="_blank">
|
|
44
|
-
<img src="https://visitor-badge.laobi.icu/badge?page_id=g-battaglia.kerykeion" alt="visitors"/>
|
|
45
|
-
</a>
|
|
46
|
-
<a href="https://pypi.org/project/kerykeion" target="_blank">
|
|
47
|
-
<img src="https://img.shields.io/pypi/v/kerykeion?label=pypi%20package" alt="Package version">
|
|
48
|
-
</a>
|
|
49
|
-
<a href="https://pypi.org/project/kerykeion" target="_blank">
|
|
50
|
-
<img src="https://img.shields.io/pypi/pyversions/kerykeion.svg" alt="Supported Python versions">
|
|
51
|
-
</a>
|
|
52
|
-
</div>
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
Kerykeion is a python library for Astrology.
|
|
57
|
-
It can calculate all the planet and house position,
|
|
58
|
-
also it can calculate the aspects of a single persone or between two, you can set how many planets you
|
|
59
|
-
need in the settings in the utility module.
|
|
60
|
-
It also can generate an SVG of a birthchart, a composite chart or a transit chart.
|
|
61
|
-
|
|
62
|
-
## Installation
|
|
63
|
-
|
|
64
|
-
Kerykeion is a Python 3 package, make sure you have Python 3 installed on your system.
|
|
65
|
-
|
|
66
|
-
```bash
|
|
67
|
-
pip3 install kerykeion
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
## Usage
|
|
71
|
-
|
|
72
|
-
Here some examples:
|
|
73
|
-
|
|
74
|
-
```python
|
|
75
|
-
|
|
76
|
-
# Import the main class for creating a kerykeion instance:
|
|
77
|
-
from kerykeion import KrInstance
|
|
78
|
-
|
|
79
|
-
# Create a kerykeion instance:
|
|
80
|
-
# Args: Name, year, month, day, hour, minuts, city, nation(optional)
|
|
81
|
-
kanye = KrInstance("Kanye", 1977, 6, 8, 8, 45, "Atlanta")
|
|
82
|
-
|
|
83
|
-
# Get the information about the sun in the chart:
|
|
84
|
-
# (The position of the planets always starts at 0)
|
|
85
|
-
kanye.sun
|
|
86
|
-
|
|
87
|
-
#> {'name': 'Sun', 'quality': 'Mutable', 'element': 'Air', 'sign': 'Gem', 'sign_num': 2, 'pos': 17.598992059774275, 'abs_pos': 77.59899205977428, 'emoji': '♊️', 'house': '12th House', 'retrograde': False}
|
|
88
|
-
|
|
89
|
-
# Get informations about the first house:
|
|
90
|
-
kanye.first_house
|
|
91
|
-
|
|
92
|
-
#> {'name': 'First House', 'quality': 'Cardinal', 'element': 'Water', 'sign': 'Can', 'sign_num': 3, 'pos': 17.995779673209114, 'abs_pos': 107.99577967320911, 'emoji': '♋️'}
|
|
93
|
-
|
|
94
|
-
# Get element of the moon sign:
|
|
95
|
-
kanye.moon.get("element")
|
|
96
|
-
|
|
97
|
-
#> 'Water'
|
|
98
|
-
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
## Generate a SVG Chart:
|
|
102
|
-
|
|
103
|
-
```python
|
|
104
|
-
from kerykeion import KrInstance, MakeSvgInstance
|
|
105
|
-
|
|
106
|
-
first = KrInstance("Jack", 1990, 6, 15, 15, 15, "Roma")
|
|
107
|
-
second = KrInstance("Jane", 1991, 10, 25, 21, 00, "Roma")
|
|
108
|
-
|
|
109
|
-
# Set the type, it can be Natal, Composite or Transit
|
|
110
|
-
|
|
111
|
-
name = MakeSvgInstance(first, chart_type="Composite", second_obj=second)
|
|
112
|
-
name.makeSVG()
|
|
113
|
-
print(len(name.aspects_list))
|
|
114
|
-
|
|
115
|
-
#> Generating kerykeion object for Jack...
|
|
116
|
-
#> Generating kerykeion object for Jane...
|
|
117
|
-
#> Jack birth location: Roma, 41.89193, 12.51133
|
|
118
|
-
#> SVG Generated Correctly
|
|
119
|
-
#> 38
|
|
120
|
-
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-

|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
# Example of a possible text output with information:
|
|
127
|
-
|
|
128
|
-
```python
|
|
129
|
-
from kerykeion import print_all_data, KrInstance
|
|
130
|
-
|
|
131
|
-
kanye = KrInstance("Kanye", 1977, 6, 8, 8, 45, "Atlanta")
|
|
132
|
-
|
|
133
|
-
print_all_data(kanye)
|
|
134
|
-
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
Returns:
|
|
138
|
-
|
|
139
|
-
```
|
|
140
|
-
NAME: Kanye
|
|
141
|
-
PLANET POSITION
|
|
142
|
-
|
|
143
|
-
Sun: Gem 17.599 in 12th House
|
|
144
|
-
Moon: Pis 16.425 in 9th House
|
|
145
|
-
Mercury: Tau 26.286 in 11th House
|
|
146
|
-
Venus: Tau 2.032 in 10th House
|
|
147
|
-
Mars: Tau 1.79 in 10th House
|
|
148
|
-
Jupiter: Gem 14.607 in 11th House
|
|
149
|
-
Saturn: Leo 12.799 in 2nd House
|
|
150
|
-
Uranus: Sco 8.273 in 4th House
|
|
151
|
-
Neptune: Sag 14.693 in 5th House
|
|
152
|
-
Pluto: Lib 11.446 in 4th House
|
|
153
|
-
|
|
154
|
-
PLACIDUS HAUSES
|
|
155
|
-
House Cusp 1: Can 17.996
|
|
156
|
-
House Cusp 2: Leo 9.506
|
|
157
|
-
House Cusp 3: Vir 4.022
|
|
158
|
-
House Cusp 4: Lib 3.977
|
|
159
|
-
House Cusp 5: Sco 9.393
|
|
160
|
-
House Cusp 6: Sag 15.681
|
|
161
|
-
House Cusp 7: Cap 17.996
|
|
162
|
-
House Cusp 8: Aqu 9.506
|
|
163
|
-
House Cusp 9: Pis 4.022
|
|
164
|
-
House Cusp 10: Ari 3.977
|
|
165
|
-
House Cusp 11: Tau 9.393
|
|
166
|
-
House Cusp 12: Gem 15.681
|
|
167
|
-
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
## Other exeples of possibles usecase
|
|
171
|
-
|
|
172
|
-
```python
|
|
173
|
-
# Get all aspects between two persons:
|
|
174
|
-
|
|
175
|
-
from kerykeion import CompositeAspects, KrInstance
|
|
176
|
-
first = KrInstance("Jack", 1990, 6, 15, 15, 15, "Roma")
|
|
177
|
-
second = KrInstance("Jane", 1991, 10, 25, 21, 00, "Roma")
|
|
178
|
-
|
|
179
|
-
name = CompositeAspects(first, second)
|
|
180
|
-
aspect_list = name.get_relevant_aspects()
|
|
181
|
-
print(aspect_list[0])
|
|
182
|
-
|
|
183
|
-
#> Generating kerykeion object for Jack...
|
|
184
|
-
#> Generating kerykeion object for Jane...
|
|
185
|
-
#> {'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}
|
|
186
|
-
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
## Documentation
|
|
190
|
-
|
|
191
|
-
Most of the functions and the classes are self documented by the types and have docstrings.
|
|
192
|
-
An auto-generated documentation [is available here](https://g-battaglia.github.io/kerykeion).
|
|
193
|
-
|
|
194
|
-
Sooner or later I'll try to write an extensive documentation.
|
|
195
|
-
|
|
196
|
-
## Development
|
|
197
|
-
|
|
198
|
-
You can clone this repository or download a zip file using the right side buttons.
|
|
199
|
-
|
|
200
|
-
## Contributing
|
|
201
|
-
|
|
202
|
-
Feel free to contribute to the code!
|
|
203
|
-
|
|
204
|
-
|
kerykeion-3.1.1.dist-info/RECORD
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
kerykeion/__init__.py,sha256=1gMz_eBH5edTEP6Fs2ynB_p135s7_uwg6bgTTgbzldE,4843
|
|
2
|
-
kerykeion/aspects.py,sha256=004fuPirkK9hDcb2bG0urkrliQ4ANcDXeu_BRA30hyM,12884
|
|
3
|
-
kerykeion/fetch_geonames.py,sha256=UfYSkO5OVbnzNJbe_RBqMVX_GHpfOmMb3onla0Gj8v8,4922
|
|
4
|
-
kerykeion/kr.config.json,sha256=yBKPG6SragXya7qx6194jryzkqXPLrCQEWyItosYKWc,10345
|
|
5
|
-
kerykeion/main.py,sha256=lANgmyPzPvpAB0pM1_86tYLLcxppgt3_RdVapGjcMsk,21214
|
|
6
|
-
kerykeion/print_all_data.py,sha256=eIam_XaKEqPZE2LoPGg8ymbfsl79np0UUShQ54OOqN4,3103
|
|
7
|
-
kerykeion/relationship_score.py,sha256=p1u0nDWYnyeNN4U4TP2y4q-E4VA-VSoYZtpQmqOq09Y,7559
|
|
8
|
-
kerykeion/types.py,sha256=_4hFjdK8CY60Lb9Fi-TzScjGnwyQOzWbvJf3MoglRCM,3592
|
|
9
|
-
kerykeion/utilities.py,sha256=iV5nbu_q2CJCjuoQIiYN-bP10pKsp9g6Q5zmsTDKC-Y,5803
|
|
10
|
-
kerykeion/charts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
-
kerykeion/charts/charts_svg.py,sha256=5DGmdKkpahCAQNQUezPcvF3An4VqibJ8IqJW84_wic8,68497
|
|
12
|
-
kerykeion/charts/templates/basic.xml,sha256=IN01p2rpHSBNrH6T46JBPJ5XCThxo1bjs4GFHHNUAw0,57862
|
|
13
|
-
kerykeion/charts/templates/extended.xml,sha256=rKzvXIQ48jhABrulvZYjx9e1Ubq1tkkNXpM744FC7Sc,58108
|
|
14
|
-
kerykeion-3.1.1.dist-info/METADATA,sha256=DU2qfSQcJTRTzOxrRk2JgygljH5CeVOHmvEN4Et5kZI,6327
|
|
15
|
-
kerykeion-3.1.1.dist-info/WHEEL,sha256=G16H4A3IeoQmnOrYV4ueZGKSjhipXx8zc8nu9FGlvMA,92
|
|
16
|
-
kerykeion-3.1.1.dist-info/top_level.txt,sha256=dksQHkHSOqfJo-O1gs0FBHhSHB-2UtVJKgDLgddatOg,10
|
|
17
|
-
kerykeion-3.1.1.dist-info/RECORD,,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
kerykeion
|