kundali-chart-mcp 0.2.3 → 0.2.5
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.
- package/README.md +63 -143
- package/azure-function/flatlib/LICENSE +22 -0
- package/azure-function/flatlib/MANIFEST.in +2 -0
- package/azure-function/flatlib/README.md +31 -0
- package/azure-function/flatlib/README.rst +47 -0
- package/azure-function/flatlib/docs/Makefile +195 -0
- package/azure-function/flatlib/docs/README.md +37 -0
- package/azure-function/flatlib/docs/make.bat +263 -0
- package/azure-function/flatlib/docs/source/_static/python-interpreter-osx.png +0 -0
- package/azure-function/flatlib/docs/source/_static/python-interpreter-win32.png +0 -0
- package/azure-function/flatlib/docs/source/_static/xcode-command-line-tools.png +0 -0
- package/azure-function/flatlib/docs/source/conf.py +286 -0
- package/azure-function/flatlib/docs/source/faq.rst +49 -0
- package/azure-function/flatlib/docs/source/index.rst +23 -0
- package/azure-function/flatlib/docs/source/installation.rst +87 -0
- package/azure-function/flatlib/docs/source/tutorials/chart-properties.rst +196 -0
- package/azure-function/flatlib/docs/source/tutorials/create-chart.rst +129 -0
- package/azure-function/flatlib/docs/source/tutorials/index.rst +9 -0
- package/azure-function/flatlib/docs/source/tutorials/intro-python.rst +168 -0
- package/azure-function/flatlib/flatlib/__init__.py +14 -0
- package/azure-function/flatlib/flatlib/angle.py +127 -0
- package/azure-function/flatlib/flatlib/aspects.py +330 -0
- package/azure-function/flatlib/flatlib/chart.py +185 -0
- package/azure-function/flatlib/flatlib/const.py +308 -0
- package/azure-function/flatlib/flatlib/datetime.py +212 -0
- package/azure-function/flatlib/flatlib/dignities/__init__.py +9 -0
- package/azure-function/flatlib/flatlib/dignities/accidental.py +482 -0
- package/azure-function/flatlib/flatlib/dignities/essential.py +219 -0
- package/azure-function/flatlib/flatlib/dignities/tables.py +495 -0
- package/azure-function/flatlib/flatlib/ephem/__init__.py +23 -0
- package/azure-function/flatlib/flatlib/ephem/eph.py +189 -0
- package/azure-function/flatlib/flatlib/ephem/ephem.py +211 -0
- package/azure-function/flatlib/flatlib/ephem/swe.py +327 -0
- package/azure-function/flatlib/flatlib/ephem/tools.py +107 -0
- package/azure-function/flatlib/flatlib/geopos.py +93 -0
- package/azure-function/flatlib/flatlib/lists.py +106 -0
- package/azure-function/flatlib/flatlib/object.py +268 -0
- package/azure-function/flatlib/flatlib/predictives/__init__.py +9 -0
- package/azure-function/flatlib/flatlib/predictives/primarydirections.py +336 -0
- package/azure-function/flatlib/flatlib/predictives/profections.py +44 -0
- package/azure-function/flatlib/flatlib/predictives/returns.py +44 -0
- package/azure-function/flatlib/flatlib/props.py +357 -0
- package/azure-function/flatlib/flatlib/protocols/__init__.py +9 -0
- package/azure-function/flatlib/flatlib/protocols/almutem.py +117 -0
- package/azure-function/flatlib/flatlib/protocols/behavior.py +69 -0
- package/azure-function/flatlib/flatlib/protocols/temperament.py +271 -0
- package/azure-function/flatlib/flatlib/resources/README.md +3 -0
- package/azure-function/flatlib/flatlib/resources/swefiles/fixstars.cat +1138 -0
- package/azure-function/flatlib/flatlib/resources/swefiles/seas_12.se1 +0 -0
- package/azure-function/flatlib/flatlib/resources/swefiles/seas_18.se1 +0 -0
- package/azure-function/flatlib/flatlib/resources/swefiles/seas_24.se1 +0 -0
- package/azure-function/flatlib/flatlib/resources/swefiles/semo_12.se1 +0 -0
- package/azure-function/flatlib/flatlib/resources/swefiles/semo_18.se1 +0 -0
- package/azure-function/flatlib/flatlib/resources/swefiles/semo_24.se1 +0 -0
- package/azure-function/flatlib/flatlib/resources/swefiles/sepl_12.se1 +0 -0
- package/azure-function/flatlib/flatlib/resources/swefiles/sepl_18.se1 +0 -0
- package/azure-function/flatlib/flatlib/resources/swefiles/sepl_24.se1 +0 -0
- package/azure-function/flatlib/flatlib/tools/__init__.py +9 -0
- package/azure-function/flatlib/flatlib/tools/arabicparts.py +184 -0
- package/azure-function/flatlib/flatlib/tools/chartdynamics.py +152 -0
- package/azure-function/flatlib/flatlib/tools/planetarytime.py +182 -0
- package/azure-function/flatlib/flatlib/utils.py +76 -0
- package/azure-function/flatlib/recipes/README.md +3 -0
- package/azure-function/flatlib/recipes/accidentaldignities.py +59 -0
- package/azure-function/flatlib/recipes/almutem.py +25 -0
- package/azure-function/flatlib/recipes/arabicparts.py +24 -0
- package/azure-function/flatlib/recipes/aspects.py +28 -0
- package/azure-function/flatlib/recipes/behavior.py +25 -0
- package/azure-function/flatlib/recipes/chartdynamics.py +45 -0
- package/azure-function/flatlib/recipes/eclipses.py +23 -0
- package/azure-function/flatlib/recipes/essentialdignities.py +34 -0
- package/azure-function/flatlib/recipes/leapyears.py +70 -0
- package/azure-function/flatlib/recipes/planetarytime.py +29 -0
- package/azure-function/flatlib/recipes/primarydirections.py +51 -0
- package/azure-function/flatlib/recipes/profections.py +28 -0
- package/azure-function/flatlib/recipes/siderealzodiac.py +22 -0
- package/azure-function/flatlib/recipes/solarreturn.py +34 -0
- package/azure-function/flatlib/recipes/solaryears.py +61 -0
- package/azure-function/flatlib/recipes/temperament.py +37 -0
- package/azure-function/flatlib/requirements.txt +1 -0
- package/azure-function/flatlib/scripts/build.py +51 -0
- package/azure-function/flatlib/scripts/clean.py +9 -0
- package/azure-function/flatlib/scripts/utils.py +51 -0
- package/azure-function/flatlib/setup.py +49 -0
- package/azure-function/flatlib/tests/test_chart.py +19 -0
- package/azure-function/function_app.py +43 -13
- package/azure-function/requirements.txt +3 -3
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 🪔 Kundali Chart MCP
|
|
2
2
|
|
|
3
|
-
**The most comprehensive Vedic Astrology MCP server — 48 tools, zero
|
|
3
|
+
**The most comprehensive Vedic Astrology MCP server — 48 tools, zero setup.**
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/kundali-chart-mcp)
|
|
6
6
|
[](LICENSE)
|
|
@@ -12,36 +12,53 @@
|
|
|
12
12
|
## 🚀 Quick Start
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
|
-
|
|
16
|
-
kundali-chart-mcp-setup
|
|
15
|
+
npx kundali-chart-mcp
|
|
17
16
|
```
|
|
18
17
|
|
|
19
|
-
|
|
18
|
+
That's it. The server connects to a hosted backend — no Python, no dependencies, no configuration.
|
|
19
|
+
|
|
20
|
+
### Auto-setup (recommended)
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npx kundali-chart-mcp-setup
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
This automatically configures Kundali Chart MCP for Claude Desktop, Cursor, VS Code, Windsurf, and Zed. Restart your IDE after running.
|
|
27
|
+
|
|
28
|
+
---
|
|
20
29
|
|
|
21
30
|
## 💬 Try This
|
|
22
31
|
|
|
23
32
|
> *"Generate a kundali chart for someone born on 15 August 1990 at 6:30 AM in Mumbai, India"*
|
|
24
33
|
|
|
34
|
+
> *"What doshas are present in my chart? Born 6 Nov 2002, 12:05 PM, Bareilly"*
|
|
35
|
+
|
|
36
|
+
> *"Show me my Vimshottari Dasha periods"*
|
|
37
|
+
|
|
38
|
+
> *"Check compatibility between these two charts..."*
|
|
39
|
+
|
|
25
40
|
---
|
|
26
41
|
|
|
27
42
|
## ✨ Features
|
|
28
43
|
|
|
29
|
-
- **48 astrology tools** — Charts, doshas, yogas, dasha, transits, compatibility, muhurta
|
|
30
|
-
- **Zero
|
|
44
|
+
- **48 astrology tools** — Charts, doshas, yogas, dasha, transits, compatibility, muhurta, and more
|
|
45
|
+
- **Zero setup** — No Python, no files, no configuration needed
|
|
31
46
|
- **AI-ready** — Works with Claude, Cursor, ChatGPT, Gemini, Copilot, any MCP client
|
|
32
|
-
- **
|
|
33
|
-
- **
|
|
34
|
-
- **BPHS-grade** — Uses Swiss Ephemeris + vedicastro
|
|
47
|
+
- **Professional grade** — Swiss Ephemeris engine, BPHS-standard calculations
|
|
48
|
+
- **Always up-to-date** — Hosted backend means you always get the latest calculations
|
|
35
49
|
|
|
36
50
|
---
|
|
37
51
|
|
|
38
52
|
## 🔧 Manual Config
|
|
39
53
|
|
|
54
|
+
If auto-setup doesn't work for your IDE, add this to your MCP configuration:
|
|
55
|
+
|
|
40
56
|
```json
|
|
41
57
|
{
|
|
42
58
|
"mcpServers": {
|
|
43
59
|
"kundali-chart": {
|
|
44
|
-
"command": "
|
|
60
|
+
"command": "npx",
|
|
61
|
+
"args": ["kundali-chart-mcp"]
|
|
45
62
|
}
|
|
46
63
|
}
|
|
47
64
|
}
|
|
@@ -52,160 +69,63 @@ Then restart your IDE. That's it.
|
|
|
52
69
|
## 🪔 All 48 Tools
|
|
53
70
|
|
|
54
71
|
### Core Chart
|
|
55
|
-
- `generate_kundali` — Full Vedic birth chart
|
|
72
|
+
- `generate_kundali` — Full Vedic birth chart (9 planets, 12 houses, nakshatras)
|
|
56
73
|
- `list_available_chart_types` — D1–D60 vargas
|
|
57
74
|
- `list_ayanamsa_modes` — 30+ sidereal modes
|
|
58
75
|
- `list_house_systems` — Placidus, Koch, Equal, Whole Sign, etc.
|
|
59
|
-
- `get_transit_positions` —
|
|
76
|
+
- `get_transit_positions` — Current planetary transits
|
|
60
77
|
- `search_birth_places` — City geocoding
|
|
61
78
|
- `get_timezone_for_coordinates` — Timezone from lat/lon
|
|
62
79
|
|
|
63
80
|
### Extended Analysis
|
|
64
81
|
- `get_extended_chart` — KP SubLord data
|
|
65
|
-
- `get_vimshottari_dasha` — Vimshottari Dasha
|
|
66
|
-
- `get_pratyantar_dasha` — 3-level dasha
|
|
67
|
-
- `get_sookshma_dasha` — 4th level
|
|
68
|
-
- `get_prana_dasha` — 5th level
|
|
69
|
-
- `get_yogini_dasha` — 8-yogini cycle
|
|
70
|
-
- `get_kalachakra_dasha` — 112-year
|
|
82
|
+
- `get_vimshottari_dasha` — Vimshottari Dasha (mahadasha + antardasha)
|
|
83
|
+
- `get_pratyantar_dasha` — 3-level dasha (MD → AD → PD)
|
|
84
|
+
- `get_sookshma_dasha` — 4th level dasha
|
|
85
|
+
- `get_prana_dasha` — 5th level dasha
|
|
86
|
+
- `get_yogini_dasha` — 8-yogini, 36-year cycle
|
|
87
|
+
- `get_kalachakra_dasha` — 112-year sign-based dasha
|
|
71
88
|
- `get_char_dasha` — Jaimini Chara Dasha
|
|
72
89
|
- `get_narayana_dasha` — Jaimini Narayana Dasha
|
|
73
|
-
- `get_ashtottari_dasha` — 108-year cycle
|
|
74
|
-
- `get_planetary_aspects` — All aspects
|
|
75
|
-
- `get_significators` — KP significators
|
|
90
|
+
- `get_ashtottari_dasha` — 108-year, 8-planet cycle
|
|
91
|
+
- `get_planetary_aspects` — All planetary aspects
|
|
92
|
+
- `get_significators` — KP planet-wise and house-wise significators
|
|
76
93
|
|
|
77
94
|
### Yogas & Doshas
|
|
78
|
-
- `get_yogas` — Raj Yoga, Gaja Kesari, Dhana,
|
|
79
|
-
- `get_doshas` — Mangal, Kaal Sarp, Sade Sati
|
|
80
|
-
- `get_special_conditions` — Vargottama, Dig Bala
|
|
81
|
-
- `get_nabhasha_yogas` — Ashrayas, Dala, Akriti
|
|
82
|
-
- `get_arishta` — Longevity assessment
|
|
83
|
-
- `get_kartari` — Kartari Yoga
|
|
84
|
-
- `get_gandanta` — Gandanta
|
|
95
|
+
- `get_yogas` — Raj Yoga, Gaja Kesari, Dhana Yoga, and 50+ more
|
|
96
|
+
- `get_doshas` — Mangal Dosha, Kaal Sarp Dosha, Sade Sati, Graha Yuddha, Combustion
|
|
97
|
+
- `get_special_conditions` — Vargottama, Pushkara Navamsha, Dig Bala, Jaimini Karakas
|
|
98
|
+
- `get_nabhasha_yogas` — Ashrayas, Dala, Akriti yogas
|
|
99
|
+
- `get_arishta` — Longevity assessment yogas
|
|
100
|
+
- `get_kartari` — Kartari Yoga (hemmed between benefics/malefics)
|
|
101
|
+
- `get_gandanta` — Gandanta zone analysis
|
|
85
102
|
|
|
86
103
|
### Panchanga & Muhurta
|
|
87
104
|
- `get_panchanga` — Tithi, Vara, Nakshatra, Yoga, Karana
|
|
88
|
-
- `get_muhurta` — Auspicious timing score
|
|
89
|
-
- `get_best_muhurta` — Top 5 windows
|
|
105
|
+
- `get_muhurta` — Auspicious timing score for any datetime
|
|
106
|
+
- `get_best_muhurta` — Top 5 auspicious windows in a date range
|
|
90
107
|
- `get_hora` — Planetary Hour
|
|
91
108
|
|
|
92
109
|
### Transits & Returns
|
|
93
|
-
- `get_gochara` —
|
|
94
|
-
- `get_varshaphal` — Solar Return
|
|
95
|
-
- `get_tajaka` — Tajaka analysis
|
|
96
|
-
- `get_lunar_return` — Chandraphal
|
|
97
|
-
- `get_bhava_chalit` —
|
|
110
|
+
- `get_gochara` — Vedic transit analysis
|
|
111
|
+
- `get_varshaphal` — Solar Return chart
|
|
112
|
+
- `get_tajaka` — Tajaka annual analysis
|
|
113
|
+
- `get_lunar_return` — Chandraphal (Lunar Return)
|
|
114
|
+
- `get_bhava_chalit` — Actual house positions
|
|
98
115
|
|
|
99
116
|
### Compatibility & Special
|
|
100
|
-
- `get_compatibility` — Ashtakoot Milan (36-point)
|
|
101
|
-
- `get_jaimini` — Full Jaimini analysis
|
|
102
|
-
- `get_shadbala` — Six-fold strength
|
|
103
|
-
- `get_ashtakavarga` — Benefic
|
|
104
|
-
- `get_avasthas` — 9 planetary states
|
|
105
|
-
- `get_upagrahas` — Shadow sub-planets
|
|
106
|
-
- `get_nakshatra_analysis` — Deep nakshatra
|
|
107
|
-
- `get_sudarshana_chakra` — Triple-layer chart
|
|
108
|
-
- `get_prasna` — Horary chart
|
|
117
|
+
- `get_compatibility` — Ashtakoot Milan (36-point marriage compatibility)
|
|
118
|
+
- `get_jaimini` — Full Jaimini analysis: Chara Karakas, aspects, Karakamsha
|
|
119
|
+
- `get_shadbala` — Six-fold planetary strength
|
|
120
|
+
- `get_ashtakavarga` — Benefic point scores
|
|
121
|
+
- `get_avasthas` — 9 planetary states + Baladi Avasthas
|
|
122
|
+
- `get_upagrahas` — Shadow sub-planets: Gulika, Mandi, Dhuma
|
|
123
|
+
- `get_nakshatra_analysis` — Deep nakshatra information per planet
|
|
124
|
+
- `get_sudarshana_chakra` — Triple-layer chart analysis
|
|
125
|
+
- `get_prasna` — Horary/Question chart
|
|
109
126
|
- `get_kurmachakra` — Directional analysis
|
|
110
|
-
- `get_travel_direction_score` — Direction score (0-100)
|
|
111
|
-
- `get_full_kurmachakra_chart` — All 9 directions
|
|
112
|
-
|
|
113
|
-
---
|
|
114
|
-
|
|
115
|
-
## 🏗 Self-Host Your Own
|
|
116
|
-
|
|
117
|
-
Don't want to use the shared backend? Deploy in 5 minutes.
|
|
118
|
-
|
|
119
|
-
### Prerequisites
|
|
120
|
-
|
|
121
|
-
- [Azure CLI](https://docs.microsoft.com/cli/azure/install-azure-cli) installed
|
|
122
|
-
- An Azure account ([free trial](https://azure.microsoft.com/free) works)
|
|
123
|
-
|
|
124
|
-
### Deploy
|
|
125
|
-
|
|
126
|
-
```bash
|
|
127
|
-
# Login to Azure
|
|
128
|
-
az login
|
|
129
|
-
|
|
130
|
-
# Create resource group
|
|
131
|
-
az group create --name kundali-rg --location eastus
|
|
132
|
-
|
|
133
|
-
# Create storage account (needs globally unique name)
|
|
134
|
-
az storage account create --name kundalistorage$RANDOM \
|
|
135
|
-
--resource-group kundali-rg --location eastus --sku Standard_LRS
|
|
136
|
-
|
|
137
|
-
# Create function app
|
|
138
|
-
az functionapp create --name kundali-mcp-func \
|
|
139
|
-
--resource-group kundali-rg \
|
|
140
|
-
--storage-account kundalistorage \
|
|
141
|
-
--consumption-plan-location eastus \
|
|
142
|
-
--runtime python --runtime-version 3.11 \
|
|
143
|
-
--os-type Linux --functions-version 4
|
|
144
|
-
|
|
145
|
-
# Deploy the code
|
|
146
|
-
./deploy.sh
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
### Use your own URL
|
|
150
|
-
|
|
151
|
-
```bash
|
|
152
|
-
kundali-chart-mcp https://kundali-mcp-func.azurewebsites.net
|
|
153
|
-
kundali-chart-mcp-setup
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
---
|
|
157
|
-
|
|
158
|
-
## 📡 Direct API (without MCP)
|
|
159
|
-
|
|
160
|
-
You can also call the backend directly — no MCP client needed.
|
|
161
|
-
|
|
162
|
-
### Base URL
|
|
163
|
-
```
|
|
164
|
-
https://kundali-mcp-func.azurewebsites.net/api/kundali/{toolName}
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
### Health check
|
|
168
|
-
```bash
|
|
169
|
-
curl -X POST https://kundali-mcp-func.azurewebsites.net/api/kundali/health \
|
|
170
|
-
-H "Content-Type: application/json" -d '{}'
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
### Generate kundali
|
|
174
|
-
```bash
|
|
175
|
-
curl -X POST https://kundali-mcp-func.azurewebsites.net/api/kundali/generate_kundali \
|
|
176
|
-
-H "Content-Type: application/json" -d '{
|
|
177
|
-
"name": "Rahul",
|
|
178
|
-
"city": "Mumbai, India",
|
|
179
|
-
"date_of_birth": "1990-08-15",
|
|
180
|
-
"time_of_birth": "06:30",
|
|
181
|
-
"latitude": 19.076,
|
|
182
|
-
"longitude": 72.8777,
|
|
183
|
-
"timezone": "Asia/Kolkata"
|
|
184
|
-
}'
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
### List available tools
|
|
188
|
-
```bash
|
|
189
|
-
curl -X POST https://kundali-mcp-func.azurewebsites.net/api/kundali/list_available_chart_types \
|
|
190
|
-
-H "Content-Type: application/json" -d '{}'
|
|
191
|
-
```
|
|
192
|
-
|
|
193
|
-
### Response format
|
|
194
|
-
|
|
195
|
-
All endpoints return JSON:
|
|
196
|
-
```json
|
|
197
|
-
{
|
|
198
|
-
"name": "Rahul",
|
|
199
|
-
"birth_details": {
|
|
200
|
-
"datetime": "1990-08-15T06:30:00",
|
|
201
|
-
"latitude": 19.076,
|
|
202
|
-
"longitude": 72.8777,
|
|
203
|
-
"timezone": "Asia/Kolkata"
|
|
204
|
-
},
|
|
205
|
-
"planetary_positions": [...],
|
|
206
|
-
"houses": [...]
|
|
207
|
-
}
|
|
208
|
-
```
|
|
127
|
+
- `get_travel_direction_score` — Direction auspiciousness score (0-100)
|
|
128
|
+
- `get_full_kurmachakra_chart` — All 9 directions reference
|
|
209
129
|
|
|
210
130
|
---
|
|
211
131
|
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2015 FlatAngle
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
22
|
+
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# flatlib
|
|
2
|
+
|
|
3
|
+
Flatlib is a python library for Traditional Astrology.
|
|
4
|
+
|
|
5
|
+
```python
|
|
6
|
+
|
|
7
|
+
>>> date = Datetime('2015/03/13', '17:00', '+00:00')
|
|
8
|
+
>>> pos = GeoPos('38n32', '8w54')
|
|
9
|
+
>>> chart = Chart(date, pos)
|
|
10
|
+
|
|
11
|
+
>>> sun = chart.get(const.SUN)
|
|
12
|
+
>>> print(sun)
|
|
13
|
+
<Sun Pisces +22:47:25 +00:59:51>
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Documentation
|
|
18
|
+
|
|
19
|
+
Flatlib's documentation is available at [http://flatlib.readthedocs.org/](http://flatlib.readthedocs.org/).
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
## Installation
|
|
23
|
+
|
|
24
|
+
Flatlib is a Python 3 package, make sure you have Python 3 installed on your system.
|
|
25
|
+
|
|
26
|
+
You can install flatlib with `pip3 install flatlib` or download the latest stable version from [https://pypi.python.org/pypi/flatlib](https://pypi.python.org/pypi/flatlib) and install it with `python3 setup.py install`.
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
## Development
|
|
30
|
+
|
|
31
|
+
You can clone this repository or download a zip file using the right side buttons.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
flatlib
|
|
2
|
+
=======
|
|
3
|
+
|
|
4
|
+
A Python 3 library for Traditional Astrology.
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Example
|
|
8
|
+
-------
|
|
9
|
+
|
|
10
|
+
::
|
|
11
|
+
|
|
12
|
+
>>> date = Datetime('2015/03/10', '14:00', '+00:00')
|
|
13
|
+
>>> pos = GeoPos('38n32', '8w54')
|
|
14
|
+
>>> chart = Chart(date, pos)
|
|
15
|
+
|
|
16
|
+
>>> sun = chart.get(const.SUN)
|
|
17
|
+
>>> print(sun)
|
|
18
|
+
<Sun Pisces +19:40:13 +00:59:57>
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
Changelog
|
|
22
|
+
---------
|
|
23
|
+
|
|
24
|
+
* 0.2.1 (released 06-05-2016)
|
|
25
|
+
- Added Pars Horsemanship
|
|
26
|
+
- Return accidental dignities that score more than zero
|
|
27
|
+
- Added chartdynamics.disposits to return dignities where planet A disposes a planet B
|
|
28
|
+
- Includes new Triplicity Faces
|
|
29
|
+
|
|
30
|
+
* 0.2.0 (released 08-04-2015)
|
|
31
|
+
- Many new features:
|
|
32
|
+
- Planetary time
|
|
33
|
+
- Arabic Parts
|
|
34
|
+
- Chart Dynamics
|
|
35
|
+
- Accidental dignities
|
|
36
|
+
- Predictives (Profections, Solar Returns and Primary Directions)
|
|
37
|
+
- Protocols (Almutem, Temperament and Behavior calculations)
|
|
38
|
+
- Bug fixes
|
|
39
|
+
|
|
40
|
+
* 0.1.1 (released 18-03-2015)
|
|
41
|
+
- Changed threshold for stationary (1 arc-second)
|
|
42
|
+
- Implementation of essential dignities
|
|
43
|
+
- Added essential dignities recipe
|
|
44
|
+
|
|
45
|
+
* 0.1.0 (released 14-03-2015)
|
|
46
|
+
- Initial release
|
|
47
|
+
- Implementation of core modules
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
# Makefile for Sphinx documentation
|
|
2
|
+
#
|
|
3
|
+
|
|
4
|
+
# You can set these variables from the command line.
|
|
5
|
+
SPHINXOPTS =
|
|
6
|
+
SPHINXBUILD = sphinx-build
|
|
7
|
+
PAPER =
|
|
8
|
+
BUILDDIR = build
|
|
9
|
+
|
|
10
|
+
# User-friendly check for sphinx-build
|
|
11
|
+
ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
|
|
12
|
+
$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
|
|
13
|
+
endif
|
|
14
|
+
|
|
15
|
+
# Internal variables.
|
|
16
|
+
PAPEROPT_a4 = -D latex_paper_size=a4
|
|
17
|
+
PAPEROPT_letter = -D latex_paper_size=letter
|
|
18
|
+
ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
|
|
19
|
+
# the i18n builder cannot share the environment and doctrees with the others
|
|
20
|
+
I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
|
|
21
|
+
|
|
22
|
+
.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest coverage gettext
|
|
23
|
+
|
|
24
|
+
help:
|
|
25
|
+
@echo "Please use \`make <target>' where <target> is one of"
|
|
26
|
+
@echo " html to make standalone HTML files"
|
|
27
|
+
@echo " dirhtml to make HTML files named index.html in directories"
|
|
28
|
+
@echo " singlehtml to make a single large HTML file"
|
|
29
|
+
@echo " pickle to make pickle files"
|
|
30
|
+
@echo " json to make JSON files"
|
|
31
|
+
@echo " htmlhelp to make HTML files and a HTML help project"
|
|
32
|
+
@echo " qthelp to make HTML files and a qthelp project"
|
|
33
|
+
@echo " applehelp to make an Apple Help Book"
|
|
34
|
+
@echo " devhelp to make HTML files and a Devhelp project"
|
|
35
|
+
@echo " epub to make an epub"
|
|
36
|
+
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
|
|
37
|
+
@echo " latexpdf to make LaTeX files and run them through pdflatex"
|
|
38
|
+
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
|
|
39
|
+
@echo " text to make text files"
|
|
40
|
+
@echo " man to make manual pages"
|
|
41
|
+
@echo " texinfo to make Texinfo files"
|
|
42
|
+
@echo " info to make Texinfo files and run them through makeinfo"
|
|
43
|
+
@echo " gettext to make PO message catalogs"
|
|
44
|
+
@echo " changes to make an overview of all changed/added/deprecated items"
|
|
45
|
+
@echo " xml to make Docutils-native XML files"
|
|
46
|
+
@echo " pseudoxml to make pseudoxml-XML files for display purposes"
|
|
47
|
+
@echo " linkcheck to check all external links for integrity"
|
|
48
|
+
@echo " doctest to run all doctests embedded in the documentation (if enabled)"
|
|
49
|
+
@echo " coverage to run coverage check of the documentation (if enabled)"
|
|
50
|
+
|
|
51
|
+
clean:
|
|
52
|
+
rm -rf $(BUILDDIR)/*
|
|
53
|
+
|
|
54
|
+
html:
|
|
55
|
+
$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
|
56
|
+
@echo
|
|
57
|
+
@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
|
|
58
|
+
|
|
59
|
+
dirhtml:
|
|
60
|
+
$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
|
|
61
|
+
@echo
|
|
62
|
+
@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
|
|
63
|
+
|
|
64
|
+
singlehtml:
|
|
65
|
+
$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
|
|
66
|
+
@echo
|
|
67
|
+
@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
|
|
68
|
+
|
|
69
|
+
pickle:
|
|
70
|
+
$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
|
|
71
|
+
@echo
|
|
72
|
+
@echo "Build finished; now you can process the pickle files."
|
|
73
|
+
|
|
74
|
+
json:
|
|
75
|
+
$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
|
|
76
|
+
@echo
|
|
77
|
+
@echo "Build finished; now you can process the JSON files."
|
|
78
|
+
|
|
79
|
+
htmlhelp:
|
|
80
|
+
$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
|
|
81
|
+
@echo
|
|
82
|
+
@echo "Build finished; now you can run HTML Help Workshop with the" \
|
|
83
|
+
".hhp project file in $(BUILDDIR)/htmlhelp."
|
|
84
|
+
|
|
85
|
+
qthelp:
|
|
86
|
+
$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
|
|
87
|
+
@echo
|
|
88
|
+
@echo "Build finished; now you can run "qcollectiongenerator" with the" \
|
|
89
|
+
".qhcp project file in $(BUILDDIR)/qthelp, like this:"
|
|
90
|
+
@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/flatlib.qhcp"
|
|
91
|
+
@echo "To view the help file:"
|
|
92
|
+
@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/flatlib.qhc"
|
|
93
|
+
|
|
94
|
+
applehelp:
|
|
95
|
+
$(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp
|
|
96
|
+
@echo
|
|
97
|
+
@echo "Build finished. The help book is in $(BUILDDIR)/applehelp."
|
|
98
|
+
@echo "N.B. You won't be able to view it unless you put it in" \
|
|
99
|
+
"~/Library/Documentation/Help or install it in your application" \
|
|
100
|
+
"bundle."
|
|
101
|
+
|
|
102
|
+
devhelp:
|
|
103
|
+
$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
|
|
104
|
+
@echo
|
|
105
|
+
@echo "Build finished."
|
|
106
|
+
@echo "To view the help file:"
|
|
107
|
+
@echo "# mkdir -p $$HOME/.local/share/devhelp/flatlib"
|
|
108
|
+
@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/flatlib"
|
|
109
|
+
@echo "# devhelp"
|
|
110
|
+
|
|
111
|
+
epub:
|
|
112
|
+
$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
|
|
113
|
+
@echo
|
|
114
|
+
@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
|
|
115
|
+
|
|
116
|
+
latex:
|
|
117
|
+
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
|
118
|
+
@echo
|
|
119
|
+
@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
|
|
120
|
+
@echo "Run \`make' in that directory to run these through (pdf)latex" \
|
|
121
|
+
"(use \`make latexpdf' here to do that automatically)."
|
|
122
|
+
|
|
123
|
+
latexpdf:
|
|
124
|
+
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
|
125
|
+
@echo "Running LaTeX files through pdflatex..."
|
|
126
|
+
$(MAKE) -C $(BUILDDIR)/latex all-pdf
|
|
127
|
+
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
|
128
|
+
|
|
129
|
+
latexpdfja:
|
|
130
|
+
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
|
|
131
|
+
@echo "Running LaTeX files through platex and dvipdfmx..."
|
|
132
|
+
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
|
|
133
|
+
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
|
|
134
|
+
|
|
135
|
+
text:
|
|
136
|
+
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
|
|
137
|
+
@echo
|
|
138
|
+
@echo "Build finished. The text files are in $(BUILDDIR)/text."
|
|
139
|
+
|
|
140
|
+
man:
|
|
141
|
+
$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
|
|
142
|
+
@echo
|
|
143
|
+
@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
|
|
144
|
+
|
|
145
|
+
texinfo:
|
|
146
|
+
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
|
147
|
+
@echo
|
|
148
|
+
@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
|
|
149
|
+
@echo "Run \`make' in that directory to run these through makeinfo" \
|
|
150
|
+
"(use \`make info' here to do that automatically)."
|
|
151
|
+
|
|
152
|
+
info:
|
|
153
|
+
$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
|
|
154
|
+
@echo "Running Texinfo files through makeinfo..."
|
|
155
|
+
make -C $(BUILDDIR)/texinfo info
|
|
156
|
+
@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
|
|
157
|
+
|
|
158
|
+
gettext:
|
|
159
|
+
$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
|
|
160
|
+
@echo
|
|
161
|
+
@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
|
|
162
|
+
|
|
163
|
+
changes:
|
|
164
|
+
$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
|
|
165
|
+
@echo
|
|
166
|
+
@echo "The overview file is in $(BUILDDIR)/changes."
|
|
167
|
+
|
|
168
|
+
linkcheck:
|
|
169
|
+
$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
|
|
170
|
+
@echo
|
|
171
|
+
@echo "Link check complete; look for any errors in the above output " \
|
|
172
|
+
"or in $(BUILDDIR)/linkcheck/output.txt."
|
|
173
|
+
|
|
174
|
+
doctest:
|
|
175
|
+
$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
|
|
176
|
+
@echo "Testing of doctests in the sources finished, look at the " \
|
|
177
|
+
"results in $(BUILDDIR)/doctest/output.txt."
|
|
178
|
+
|
|
179
|
+
coverage:
|
|
180
|
+
$(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage
|
|
181
|
+
@echo "Testing of coverage in the sources finished, look at the " \
|
|
182
|
+
"results in $(BUILDDIR)/coverage/python.txt."
|
|
183
|
+
|
|
184
|
+
xml:
|
|
185
|
+
$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
|
|
186
|
+
@echo
|
|
187
|
+
@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
|
|
188
|
+
|
|
189
|
+
pseudoxml:
|
|
190
|
+
$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
|
|
191
|
+
@echo
|
|
192
|
+
@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
|
|
193
|
+
|
|
194
|
+
livehtml:
|
|
195
|
+
sphinx-autobuild -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Flatlib documentation
|
|
2
|
+
|
|
3
|
+
This document explains how you can setup your environment to build and contribute to the flatlib documentation.
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
## Readthedocs
|
|
7
|
+
|
|
8
|
+
Flatlib's documentation is available at [http://flatlib.readthedocs.org/](http://flatlib.readthedocs.org/). Every change to this repository triggers an immediate documentation build on the readthedocs server.
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
## Installing Sphinx and Sphinx-autobuild
|
|
12
|
+
|
|
13
|
+
### Sphinx
|
|
14
|
+
|
|
15
|
+
The flatlib documentation is built from reStructuredText sources using [Sphinx](http://sphinx-doc.org/).
|
|
16
|
+
The preferred way of installing Sphinx is with pip:
|
|
17
|
+
|
|
18
|
+
* `pip install sphinx` on Linux or Mac.
|
|
19
|
+
* `py pip install sphinx` on Windows.
|
|
20
|
+
|
|
21
|
+
Refer to the [Sphinx documentation](http://sphinx-doc.org/install.html) for alternative ways to install Sphinx in your environment.
|
|
22
|
+
|
|
23
|
+
### Sphinx-autobuild
|
|
24
|
+
|
|
25
|
+
Sphinx-autobuild is a tool to watch a Sphinx directory and rebuild the documentation when a change is detected.
|
|
26
|
+
To install sphinx-autobuild use:
|
|
27
|
+
|
|
28
|
+
* `pip install sphinx-autobuild` on Linux or Mac.
|
|
29
|
+
* `py pip install sphinx-autobuild` on Windows.
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
## Build the documention
|
|
33
|
+
|
|
34
|
+
There are two ways for building the documentation, both made possible by the available makefiles. Open a terminal or command prompt and *cd* into the *docs* directory:
|
|
35
|
+
|
|
36
|
+
* To build the HTML documentation, execute `make html`. The generated documentation will be at *docs/build/html*.
|
|
37
|
+
* Execute `make livehtml` to start the autobuild server. Visit the webpage served at `localhost:8000`, and the server will autoreload the page when a change is detected. Quit the server by pressing Ctrl+C (or Command+C).
|