-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathkabbalah.py
More file actions
67 lines (55 loc) · 2.54 KB
/
kabbalah.py
File metadata and controls
67 lines (55 loc) · 2.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
"""Kabbalah category client."""
from __future__ import annotations
from astroapi.categories.base import BaseCategoryClient
from astroapi.types.requests import (
BirthAngelsRequest,
GematriaRequest,
TikkunRequest,
TreeOfLifeChartRequest,
)
from astroapi.types.responses import GenericResponse
from astroapi.utils.validators import validate_datetime_location
class KabbalahClient(BaseCategoryClient):
"""Client for Kabbalah endpoints."""
API_PREFIX = "/api/v3/kabbalah"
def get_tree_of_life_chart(self, request: TreeOfLifeChartRequest) -> GenericResponse:
"""Get Tree of Life chart."""
validate_datetime_location(request.birth_data)
url = self._build_url("tree-of-life-chart")
data = self._http.post(url, json=request.model_dump(exclude_none=True))
return GenericResponse(**data)
def get_birth_angels(self, request: BirthAngelsRequest) -> GenericResponse:
"""Get birth angels."""
validate_datetime_location(request.birth_data)
url = self._build_url("birth-angels")
data = self._http.post(url, json=request.model_dump(exclude_none=True))
return GenericResponse(**data)
def get_tikkun(self, request: TikkunRequest) -> GenericResponse:
"""Get Tikkun analysis."""
validate_datetime_location(request.birth_data)
url = self._build_url("tikkun")
data = self._http.post(url, json=request.model_dump(exclude_none=True))
return GenericResponse(**data)
def get_gematria(self, request: GematriaRequest) -> GenericResponse:
"""Calculate Gematria."""
url = self._build_url("gematria")
data = self._http.post(url, json=request.model_dump(exclude_none=True))
return GenericResponse(**data)
def get_sephiroth_glossary(self, system: str | None = None) -> GenericResponse:
"""Get Sephiroth glossary."""
url = self._build_url("glossary", "sephiroth")
params: dict[str, str] = {}
if system:
params["system"] = system
data = self._http.get(url, params=params or None)
return GenericResponse(**data)
def get_hebrew_letters_glossary(self) -> GenericResponse:
"""Get Hebrew letters glossary."""
url = self._build_url("glossary", "hebrew-letters")
data = self._http.get(url)
return GenericResponse(**data)
def get_angels_glossary(self) -> GenericResponse:
"""Get 72 angels glossary."""
url = self._build_url("glossary", "angels-72")
data = self._http.get(url)
return GenericResponse(**data)