Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@ All notable changes to this project will be documented in this file.

Format based on [Keep a Changelog](https://keepachangelog.com/).

## [1.1.0] - 2026-04-08

### Added
- Added test case coverage for `cast_transit` return structure.

### Changed
- Refactored `cast_transit` to accept birth parameters (`dob_str`, `time_str`, `lat`, `lon`, `timezone`) directly instead of requiring a pre-calculated `natal_chart` input.

## [1.0.0] - 2026-03-31

### Added
Expand All @@ -23,4 +31,5 @@ Format based on [Keep a Changelog](https://keepachangelog.com/).
- Sarvashtakavarga, Bhinnashtakavarga, and Prashtara Ashtakavarga
- Divisional charts: D2, D3, D4, D7, D9, D10, D12, D16, D20, D24, D27, D30, D40, D60

[1.1.0]: https://github.com/adarshj322/dashaflow/compare/v1.0.0...v1.1.0
[1.0.0]: https://github.com/adarshj322/dashaflow/releases/tag/v1.0.0
6 changes: 4 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,9 @@ print(chart["dashas"]["maha"]["planet"]) # Current Mahadasha lord
print(chart["yogas"]) # Detected yogas

# Transits
transit = dashaflow.cast_transit("2026-03-29", chart)
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)
Expand All @@ -52,7 +54,7 @@ print(career["career_themes"])
| 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, natal_chart, timezone="Asia/Kolkata")` | Planetary transits overlaid on natal chart with SAV points, Sade Sati, Rahu-Ketu axis |
| `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 |
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ requires-python = ">=3.10"
authors = [
{ name = "Adarsh J" },
]
keywords = ["vedic", "astrology", "jyotish", "horoscope", "dashaflow", "vimshottari", "navamsha"]
keywords = ["vedic", "astrology", "jyotish", "horoscope", "dashaflow", "vimshottari", "navamsha", "python", "python3", "swiss-ephemeris", "astrology-api", "pypi-package", "birth-chart", "jyotisha", "vedic-astrology", "jyotish-open-source"]
classifiers = [
"Development Status :: 4 - Beta",
"Intended Audience :: Developers",
Expand Down
23 changes: 20 additions & 3 deletions src/dashaflow/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,10 @@ def cast_chart(

def cast_transit(
transit_date: str,
natal_chart: dict,
dob_str: str,
time_str: str,
lat: float,
lon: float,
timezone: str = "Asia/Kolkata",
) -> dict:
"""
Expand All @@ -101,8 +104,14 @@ def cast_transit(
----------
transit_date : str
Date to compute transits as "YYYY-MM-DD"
natal_chart : dict
Full dict output from cast_chart()
dob_str : str
Date of birth as "YYYY-MM-DD"
time_str : str
Time of birth as "HH:MM" (24-hour)
lat : float
Birth latitude (-90 to 90)
lon : float
Birth longitude (-180 to 180)
timezone : str, optional
IANA timezone. Defaults to "Asia/Kolkata".

Expand All @@ -111,6 +120,14 @@ def cast_transit(
dict
Transit planets with house positions, SAV points, Sade Sati, Rahu-Ketu axis.
"""
validate_birth_input(dob_str, time_str, lat, lon, timezone)
natal_chart = calculate_vedic_chart(
dob_str=dob_str,
time_str=time_str,
lat=lat,
lon=lon,
timezone_str=timezone,
)
return calculate_transit(
transit_date_str=transit_date,
natal_chart=natal_chart,
Expand Down
2 changes: 1 addition & 1 deletion src/dashaflow/_version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = "1.0.0"
__version__ = "1.1.0"
9 changes: 9 additions & 0 deletions tests/test_comprehensive.py
Original file line number Diff line number Diff line change
Expand Up @@ -1310,6 +1310,15 @@ def test_cast_chart_invalid_timezone_raises(self):
with self.assertRaises(ValueError):
dashaflow.cast_chart("1990-04-15", "14:30", 28.6139, 77.2090, "Bogus/Zone")

def test_cast_transit_returns_dict(self):
import dashaflow
transit = dashaflow.cast_transit(
"2026-03-29", "1990-04-15", "14:30", 28.6139, 77.2090, "Asia/Kolkata"
)
self.assertIsInstance(transit, dict)
self.assertIn("planets", transit)
self.assertIn("sade_sati", transit)

def test_version_exists(self):
import dashaflow
self.assertIsInstance(dashaflow.__version__, str)
Expand Down
Loading