Vedic astrology calculation engine — Swiss Ephemeris with Sidereal Lahiri ayanamsha
Project description
DashaFlow
A Vedic astrology calculation engine for Python, built on the Swiss Ephemeris with Sidereal Lahiri ayanamsha. Rooted in Brihat Parashara Hora Shastra (BPHS) and B.V. Raman's Hindu Predictive Astrology.
pip install dashaflow
Quick Start
import dashaflow
# Cast a natal chart
chart = dashaflow.cast_chart("1990-04-15", "14:30", 28.6139, 77.2090, "Asia/Kolkata")
print(chart["lagna"]["sign"]) # "Leo"
print(chart["planets"]["Moon"]["nakshatra"]) # "Ashwini"
print(chart["planets"]["Jupiter"]["dignity"]) # "exalted"
print(chart["dashas"]["maha"]["planet"]) # Current Mahadasha lord
print(chart["yogas"]) # Detected yogas
# Transits
transit = dashaflow.cast_transit(
"2026-03-29", "1990-04-15", "14:30", 28.6139, 77.2090, "Asia/Kolkata"
)
print(transit["sade_sati"])
# Compatibility (Person 1 = Male, Person 2 = Female)
compat = dashaflow.calculate_compatibility(
"1990-04-15", "14:30", 28.61, 77.21, "Asia/Kolkata",
"1992-08-20", "09:15", 19.07, 72.87, "Asia/Kolkata",
)
print(f"Score: {compat['total']}/36")
# Muhurtha (electional astrology)
muhurtha = dashaflow.check_muhurtha("marriage", "2026-11-15", "10:30", 28.61, 77.21, "Asia/Kolkata")
print(muhurtha["verdict"]) # "auspicious" / "mixed" / "inauspicious"
# Career analysis
career = dashaflow.analyze_career("1990-04-15", "14:30", 28.61, 77.21, "Asia/Kolkata")
print(career["career_themes"])
API
Top-Level Functions
| Function | Description |
|---|---|
cast_chart(dob, time, lat, lon, timezone, query_date=None, ephe_path='') |
Complete natal chart — planets, dashas, yogas, ashtakavarga, shadbala, vargas, and more |
cast_transit(transit_date, dob_str, time_str, lat, lon, timezone="Asia/Kolkata") |
Planetary transits overlaid on natal chart with SAV points, Sade Sati, Rahu-Ketu axis |
calculate_compatibility(dob1, time1, lat1, lon1, tz1, dob2, time2, lat2, lon2, tz2) |
36-point Ashtakoot + extended kutas + Kuja Dosha |
check_muhurtha(activity, date, time, lat, lon, timezone) |
Electional astrology for 6 activity types |
analyze_career(dob, time, lat, lon, timezone) |
D10 Dashamsha career analysis with theme recommendations |
Sub-Module Access
from dashaflow.dasha import calculate_dashas
from dashaflow.matchmaking import calculate_ashtakoot
from dashaflow.shadbala import calculate_shadbala
from dashaflow.jaimini import calculate_jaimini_karakas, calculate_arudha_padas
from dashaflow.yoga import detect_yogas, detect_kaal_sarpa
from dashaflow.ashtakavarga import calculate_ashtakavarga
cast_chart() Returns
| Key | Description |
|---|---|
metadata |
DOB, time, coordinates, ayanamsha (Lahiri), query date |
panchang |
Tithi, Vara, Nakshatra, Yoga, Karana |
lagna |
Ascendant sign, degree, nakshatra, pada, D2–D60 signs |
planets |
Per planet: sign, degree, house, nakshatra, pada, dignity, combustion, retrograde, digbala, aspects, 14 varga signs |
dashas |
5 levels: Maha, Antar, Pratyantar, Sukshma, Prana + 120-year timeline |
yogas |
24 types detected with forming planets and descriptions |
ashtakavarga |
SAV, BAV, Prashtara (source-level bindus) |
jaimini_karakas |
7 Karakas by degree (Atmakaraka through Darakaraka) |
shadbala |
Six-fold strength in Rupas + percentage + Ishta/Kashta Phala |
bhava_chalit |
Equal-house Bhava Chalit with planet placements per bhava |
avasthas |
Planetary age-states: Bala, Kumara, Yuva, Vriddha, Mrita |
kaal_sarpa |
Kaal Sarpa Dosha detection (full/partial, ascending/descending) |
graha_yuddha |
Planetary war — pairs within 1° with winner/loser |
gandanta |
Planets at water-fire sign boundaries (karmic knots) |
arudha_padas |
All 12 Arudha Padas (A1–A12) with BPHS exception rule |
upapada |
Upapada Lagna (A12) with lord and 2nd from UL |
karakamsha |
AK in Navamsha, Ishta Devata, planets in Karakamsha |
Features
- Natal Chart — Lagna, 9 grahas, whole-sign houses, nakshatras with padas, dignities
- 14 Divisional Charts — D2, D3, D4, D7, D9, D10, D12, D16, D20, D24, D27, D30, D40, D60
- Planetary Strength — Dignity (B.V. Raman), combustion (BPHS orbs), Digbala, Shadbala (6-fold), Ishta/Kashta Phala
- BPHS Aspects — 7th for all, special aspects for Mars (4th/8th), Jupiter (5th/9th), Saturn (3rd/10th)
- Vimshottari Dasha — 5 levels (Maha → Antar → Pratyantar → Sukshma → Prana), 120-year timeline
- 24 Yoga Types — Pancha Mahapurusha, Gajakesari, Budhaditya, Raj Yoga, Neecha Bhanga, Parivartana, Dhana, and more
- Ashtakavarga — SAV, BAV, Prashtara (source-level bindu contributions)
- Jaimini — 7 Karakas, Arudha Padas (A1–A12), Upapada Lagna, Karakamsha
- Compatibility — 8 Ashtakoot kutas (36 pts) + Mahendra, Stree Deergha, Vedha, Rajju, Kuja Dosha
- Muhurtha — 6 activity types with Panchang Suddhi and marriage doshas
- Career — D10 analysis with planet-career significations and domain recommendations
- Bhava Chalit — Equal-house chart from Lagna midpoint
- Avasthas — 5 planetary age-states per BPHS
- Kaal Sarpa, Graha Yuddha, Gandanta — Dosha and junction detection
Architecture
dashaflow/
├── __init__.py Public API (5 functions)
├── vedic_calculator.py Core engine — Swiss Ephemeris computations
├── constants.py Zodiac, nakshatras, dignity tables
├── nakshatra.py Nakshatra lookup from longitude
├── panchang.py Tithi, Vara, Yoga, Karana
├── yoga.py 24 yoga types + Kaal Sarpa, Graha Yuddha, Gandanta
├── dasha.py Vimshottari Dasha (5 levels)
├── dignity.py Dignity, combustion, digbala
├── ashtakavarga.py SAV, BAV, Prashtara
├── jaimini.py Karakas, Arudha Padas, Upapada, Karakamsha
├── shadbala.py Six-fold strength + Ishta/Kashta Phala
├── matchmaking.py 16-factor compatibility + Kuja Dosha
├── muhurtha.py Electional astrology
└── career.py D10 career analysis
Ayanamsha
All calculations use Lahiri (Chitrapaksha) — the official standard of the Indian government and the most widely used system in Vedic astrology.
Extended Ephemeris
The bundled Swiss Ephemeris files cover ~1800–2400 AD. For historical or far-future charts, download additional .se1 files from astro.com and pass the path:
chart = dashaflow.cast_chart("1200-03-10", "12:00", 28.61, 77.21, "Asia/Kolkata",
ephe_path="/path/to/extended/ephemeris")
References
- Brihat Parashara Hora Shastra — foundational text for Vedic astrology
- Hindu Predictive Astrology — B.V. Raman
- Swiss Ephemeris — high-precision astronomical computation
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dashaflow-1.1.0.tar.gz.
File metadata
- Download URL: dashaflow-1.1.0.tar.gz
- Upload date:
- Size: 66.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af92c9703a057c1665ebfaa600ffcd1f8866b86434b173aec2f8636bfa48b55f
|
|
| MD5 |
a9b86c7c6146e72351bdac7772a80cf5
|
|
| BLAKE2b-256 |
9d0df8d9e22a82d300b534cd115c2e98b672d1334e88a1a124caeacdb7b7001f
|
Provenance
The following attestation bundles were made for dashaflow-1.1.0.tar.gz:
Publisher:
publish.yml on adarshj322/dashaflow
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dashaflow-1.1.0.tar.gz -
Subject digest:
af92c9703a057c1665ebfaa600ffcd1f8866b86434b173aec2f8636bfa48b55f - Sigstore transparency entry: 1252421412
- Sigstore integration time:
-
Permalink:
adarshj322/dashaflow@f8f8ead76e56b9048f80adbbbff282c007068cf7 -
Branch / Tag:
refs/tags/v1.1.0 - Owner: https://github.com/adarshj322
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f8f8ead76e56b9048f80adbbbff282c007068cf7 -
Trigger Event:
release
-
Statement type:
File details
Details for the file dashaflow-1.1.0-py3-none-any.whl.
File metadata
- Download URL: dashaflow-1.1.0-py3-none-any.whl
- Upload date:
- Size: 48.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
45980ba58c5b15465c68c24de433494963b1e28eb1fc7fc026fdcf03ef87861c
|
|
| MD5 |
d52ea9e33b21b97aca9cd081300f43c7
|
|
| BLAKE2b-256 |
c33d0d51f8f22a65cafca5c7fb901a54e82caed6b2748175bb8a876fd859f8fb
|
Provenance
The following attestation bundles were made for dashaflow-1.1.0-py3-none-any.whl:
Publisher:
publish.yml on adarshj322/dashaflow
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dashaflow-1.1.0-py3-none-any.whl -
Subject digest:
45980ba58c5b15465c68c24de433494963b1e28eb1fc7fc026fdcf03ef87861c - Sigstore transparency entry: 1252421424
- Sigstore integration time:
-
Permalink:
adarshj322/dashaflow@f8f8ead76e56b9048f80adbbbff282c007068cf7 -
Branch / Tag:
refs/tags/v1.1.0 - Owner: https://github.com/adarshj322
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f8f8ead76e56b9048f80adbbbff282c007068cf7 -
Trigger Event:
release
-
Statement type: