Skip to main content

Ascendant

Ascendant is a Python library for Vedic Astrology calculations, providing functionalities for charts, dashas, and yogas.

Installation

Install via pip:

pip install astro-ascendant

Ascendant calculates sidereal positions directly with the bundled pyswisseph dependency; no flatlib installation is required.

Documentation

The documentation is a separate Fumadocs app in docs/, backed by Markdown files in docs/content/.

cd docs
bun install
bun run dev

Open http://localhost:3000/docs, or browse the source pages directly:

The docs app is independent: create or configure its Vercel project with docs/ as the project root.

Codex and Agent Skills

This repository is also the canonical source for the Ascendant agent skills. The plugin bundle lives under plugins/agent/, and the same plugins/{scope}/skills layout is discoverable by the skills CLI.

Install the skills with:

npx skills add thaletto/ascendant

Add the Codex marketplace from Git and install the plugin with:

codex plugin marketplace add https://github.com/thaletto/ascendant.git --ref main
codex plugin add agent@ascendant

Core Functionalities:

  • Chart Calculations: Compute and analyze divisional astrological charts (Varga chakras).
  • Dasha System: Implementation of the Vimshottari Dasha system for planetary periods.
  • Yoga Combinations: Identification and interpretation of various Yoga (planetary combinations).
  • Ashtakavarga: Classical Bhinnashtakavarga, Sarvashtakavarga, Shodhana, and Shodhya Pinda calculations.

Usage

from ascendant import Ascendant

# Initialize with birth details
astro = Ascendant(
    year=1990, month=1, day=1,
    hour=12, minute=0, second=0,
    latitude=28.6139, longitude=77.2090,
    utc="+5:30"
)

# Get Rasi Chart (D1)
chart = astro.get_chart(division=1)

# Get Yogas
yogas = astro.get_yogas()

# Get Dasha Timeline
dasha = astro.get_dasha_timeline()

# Get Ashtakavarga / Sarvashtakavarga
ashtakavarga = astro.get_sav()
sarva = ashtakavarga["sarva"]

Advanced Usage

Override the built-in Lahiri and Whole Sign defaults for one chart:

astro = Ascendant(
    ...,
    ayanamsa="Krishnamurti",
    house_system="Equal",
)

Configure typed application-wide defaults once when most charts use the same calculation settings:

from ascendant import (
    AscendantConfig,
    Ayanamsa,
    HouseSystem,
    configure,
)

configure(
    AscendantConfig(
        ayanamsa=Ayanamsa.LAHIRI,
        house_system=HouseSystem.PORPHYRY,
    )
)

astro = Ascendant(...)  # Uses Lahiri and Porphyry.

Explicit Ascendant arguments take precedence over the configured defaults. Configuration is immutable and is captured when each instance is created. Use get_config() to inspect the current defaults and reset_config() to restore Lahiri and Whole Sign. Unsupported constructor values raise ValueError.

Available Ayanamsa

  • Lahiri (default)
  • Lahiri_1940
  • Lahiri_VP285
  • Lahiri_ICRC
  • Raman
  • Krishnamurti
  • Krishnamurti_Senthilathiban

Available House System

  • Whole Sign (default)
  • Placidus
  • Equal
  • Equal 2
  • Porphyry

Accuracy Verification

Run the Swiss Ephemeris reference cases independently:

.venv/bin/python -m pytest tests/test_swiss_ephemeris_accuracy.py -vv

The cases compare sidereal Sun, Moon, ascendant, and house cusp positions against fixed reference values with a maximum angular error of 0.1°. They cover Whole Sign, Placidus, Equal, and Porphyry house systems across multiple ayanamsas and dates. The Porphyry case also checks House 2 so the test distinguishes its cusps from systems that share the same ascendant and first house cusp.

Release files for astro-ascendant 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for astro-ascendant 1.1.0
File Size Uploaded
astro_ascendant-1.1.0.tar.gz 112.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for astro-ascendant 1.1.0
File Interpreter ABI Platform
astro_ascendant-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 212.3 kB

Release files / astro_ascendant-1.1.0.tar.gz

Download URL astro_ascendant-1.1.0.tar.gz
Size 112.9 kB
Tags Source
SHA-256 checksum
How to use checksums
6017db2c5b7d206a4bb242f0e62918304fa3ca4e00eabd8bc71972217e3f14db
BLAKE2b-256 checksum
How to use checksums
9ffa69c70b12835c9040b665699b6d3bd10cfc08535c58b0ba88cbda22c1fe3b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 28, 2026.

Transparency log

Release files / astro_ascendant-1.1.0-py3-none-any.whl

Download URL astro_ascendant-1.1.0-py3-none-any.whl
Size 99.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9c8828b56cf0410e7766506c786b990a80f02c0211198bd60fa58528eec9b15b
BLAKE2b-256 checksum
How to use checksums
507d82fd9ed9af02db5757aa9e20a195ac474559248474b3c2f594462f2510c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 28, 2026.

Transparency log

Release history Release notifications | RSS feed

2.0.0

2 release files

1.1.2

2 release files

1.1.1

2 release files

This release

1.1.0 This release

2 release files

1.0.1

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page