DBDelve
Dive deep into your data. A fast, native, multi-engine database client written in Rust. Free and open source, no telemetry.
翻訳待ち
A precise Krishnamurti Paddhati (KP) Vedic astrology engine in pure Python, powered by the Swiss Ephemeris for arc-second accuracy. Compare kpastro with generalist libraries and API-only tools.
翻訳待ち
開発ツールPythonGitHub @Rituparno-Majumdarオンライン所有者未確認
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
KP astrology Python library: Krishnamurti Paddhati engine with nakshatra/sub-lord chains, Vimshottari dasha, Placidus cusps, birth-time rectification, and KP horary (1-249). Swiss Ephemeris powered.
翻訳待ち
Loading the full README.
Read the full README ↗A precise Krishnamurti Paddhati (KP) Vedic astrology engine in pure Python, powered by the Swiss Ephemeris for arc-second accuracy.
Krishnamurti Paddhati (KP) is a stellar system of Vedic astrology developed by Prof. K. S. Krishnamurti that refines the 27 nakshatras into smaller sub-lord and sub-sub-lord divisions, so every chart point carries a precise ruling chain: star-lord, sub-lord, sub-sub-lord. Because a birth Moon sits inside one of 249 narrow zodiacal divisions, KP timing (Vimshottari dasha) and event judgment (significators, horary) reach a granularity classical jyotish does not.
Why Swiss Ephemeris precision — the engine computes every planet and house cusp with the industry-standard Swiss Ephemeris (arc-second accurate), then converts to the sidereal zodiac with a configurable ayanamsa. A silent Moshier fallback keeps the package working even with no data files installed; downloading the official ephemeris files unlocks full JPL/VSOP87 precision.
SE_SIDM_KRISHNAMURTI_VP291) and KP-old (Krishnamurti's table).kpastro command-line tool.Requires Python 3.9+.
# editable install for development
pip install -e .
# with the dev/test extras
pip install -e .[dev]
pyswisseph is the only runtime dependency. On very new CPython releases a source build may be needed; ensure a C compiler is available (or install a pre-built wheel) if the binary wheel is not yet published.
| Feature | kpastro | Generalist Libraries | API-only Tools |
|---|---|---|---|
| KP Specialization | High (249-Division) | Low/None | Variable |
| Precision | Arc-second (Swiss Ephemeris) | Variable | High |
| Deployment | Offline-first (No API) | Varies | Requires Internet |
| Integrability | Designed as an engine | Complex/Bloated | Locked to Cloud |
kpastro is built as an offline-first computational engine. It is designed for developers who need high-precision, sub-second KP system calculations (star-lord, sub-lord, sub-sub-lord) without the overhead of cloud APIs or the bloat of general-purpose astrological frameworks.
kpastro is designed to be easily embeddable. If you are building a larger astrological system and need high-precision KP-system subdivision math (star-lord, sub-lord, sub-sub-lord) without reinventing the wheel, simply import the engine:
from kpastro.vedic import point_info
# Pass any sidereal longitude (0-360°) to get the full KP breakdown
data = point_info(150.5)
print(f\"Sub-lord: {data.sub_lord}\")
print(f\"Sub-sub-lord: {data.sub_sub_lord}\")
This makes kpastro an ideal high-precision subsystem for larger libraries.
# Complete KP birth chart (New Delhi)
python -m kpastro natal --date 1990-01-15 --time 14:30 --tz 5.5 \
--lat 28.6139 --lon 77.2090 --place "New Delhi"
# KP horary (Prashna) from number 45
python -m kpastro horary --number 45 --date 2026-08-20 --time 10:30 \
--tz 5.5 --lat 28.61 --lon 77.20
# Ayanamsa value on a date
python -m kpastro ayanamsa --date 2026-08-20
# Download the Swiss Ephemeris data files for full precision
python -m kpastro download-ephemeris
# Birth-time rectification (BTR) from a JSON file of life events
kpastro-btr events.json --date 1990-01-15 --time 14:30 --tz 5.5 \
--lat 28.6139 --lon 77.2090 --place "New Delhi" --window 30
Other subcommands: dasha, rulings, btr. Run python -m kpastro --help or kpastro-btr --help for all options.
from datetime import date, time
from kpastro import BirthInfo, compute_chart, render_chart, ascendant_from_kp_number
birth = BirthInfo(
date=date(1990, 1, 15), time=time(14, 30),
latitude=28.6139, longitude=77.2090,
tz_hours=5.5, place="New Delhi",
)
chart = compute_chart(birth, ayanamsa="lahiri")
print(render_chart(chart))
# KP horary: all 249 divisions, or the ascendant for one number
divs = kp_divisions() # list of 249 HoraryDiv
q = ascendant_from_kp_number(45) # dict with ascendant + lord chain
This is the beginning of the README. Read the rest at the original. Read the full README ↗