openjyotish 0.1.0__tar.gz
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.
- openjyotish-0.1.0/.gitignore +27 -0
- openjyotish-0.1.0/AGENTS.md +19 -0
- openjyotish-0.1.0/LICENSE +661 -0
- openjyotish-0.1.0/PKG-INFO +172 -0
- openjyotish-0.1.0/README.md +149 -0
- openjyotish-0.1.0/assets/logo.png +0 -0
- openjyotish-0.1.0/core/__init__.py +0 -0
- openjyotish-0.1.0/core/ashtakavarga.py +202 -0
- openjyotish-0.1.0/core/charts.py +374 -0
- openjyotish-0.1.0/core/constants.py +254 -0
- openjyotish-0.1.0/core/dasha.py +237 -0
- openjyotish-0.1.0/core/eclipses.py +229 -0
- openjyotish-0.1.0/core/ephemeris.py +294 -0
- openjyotish-0.1.0/core/geocode.py +209 -0
- openjyotish-0.1.0/core/panchang.py +145 -0
- openjyotish-0.1.0/core/shadbala.py +605 -0
- openjyotish-0.1.0/data/ephe/.gitkeep +0 -0
- openjyotish-0.1.0/data/gazetteer/README.md +38 -0
- openjyotish-0.1.0/data/gazetteer/cities.csv +27502 -0
- openjyotish-0.1.0/environment.yml +8 -0
- openjyotish-0.1.0/openjyotish/__init__.py +3 -0
- openjyotish-0.1.0/openjyotish/__main__.py +6 -0
- openjyotish-0.1.0/openjyotish/core/__init__.py +0 -0
- openjyotish-0.1.0/openjyotish/core/ashtakavarga.py +202 -0
- openjyotish-0.1.0/openjyotish/core/charts.py +374 -0
- openjyotish-0.1.0/openjyotish/core/constants.py +254 -0
- openjyotish-0.1.0/openjyotish/core/dasha.py +237 -0
- openjyotish-0.1.0/openjyotish/core/eclipses.py +229 -0
- openjyotish-0.1.0/openjyotish/core/ephemeris.py +289 -0
- openjyotish-0.1.0/openjyotish/core/geocode.py +206 -0
- openjyotish-0.1.0/openjyotish/core/panchang.py +145 -0
- openjyotish-0.1.0/openjyotish/core/shadbala.py +605 -0
- openjyotish-0.1.0/openjyotish/data/__init__.py +0 -0
- openjyotish-0.1.0/openjyotish/data/ephe/__init__.py +0 -0
- openjyotish-0.1.0/openjyotish/data/ephe/semo_18.se1 +0 -0
- openjyotish-0.1.0/openjyotish/data/ephe/sepl_18.se1 +0 -0
- openjyotish-0.1.0/openjyotish/data/gazetteer/README.md +38 -0
- openjyotish-0.1.0/openjyotish/data/gazetteer/__init__.py +0 -0
- openjyotish-0.1.0/openjyotish/data/gazetteer/cities.csv +27502 -0
- openjyotish-0.1.0/openjyotish/server.py +494 -0
- openjyotish-0.1.0/openjyotish-spec.md +138 -0
- openjyotish-0.1.0/pyproject.toml +46 -0
- openjyotish-0.1.0/requirements-dev.txt +2 -0
- openjyotish-0.1.0/requirements.txt +2 -0
- openjyotish-0.1.0/scripts/build_gazetteer.py +90 -0
- openjyotish-0.1.0/scripts/crosscheck_ashtakavarga.py +69 -0
- openjyotish-0.1.0/scripts/crosscheck_dasha.py +126 -0
- openjyotish-0.1.0/scripts/crosscheck_panchang.py +77 -0
- openjyotish-0.1.0/scripts/crosscheck_shadbala.py +130 -0
- openjyotish-0.1.0/scripts/crosscheck_vargas.py +77 -0
- openjyotish-0.1.0/scripts/download_ephe.py +79 -0
- openjyotish-0.1.0/scripts/fetch_ephemeris.py +54 -0
- openjyotish-0.1.0/scripts/make_fixtures.py +133 -0
- openjyotish-0.1.0/server.py +37 -0
- openjyotish-0.1.0/tests/reference_charts/fixtures.json +2090 -0
- openjyotish-0.1.0/tests/test_eclipses.py +81 -0
- openjyotish-0.1.0/tests/test_ephemeris.py +40 -0
- openjyotish-0.1.0/tests/test_geocode.py +86 -0
- openjyotish-0.1.0/tests/test_reference_charts.py +215 -0
- openjyotish-0.1.0/tests/test_smoke.py +84 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*.egg-info/
|
|
5
|
+
.venv/
|
|
6
|
+
dist/
|
|
7
|
+
build/
|
|
8
|
+
|
|
9
|
+
# Tooling
|
|
10
|
+
.pytest_cache/
|
|
11
|
+
.ruff_cache/
|
|
12
|
+
.mypy_cache/
|
|
13
|
+
.coverage
|
|
14
|
+
|
|
15
|
+
# Ephemeris — legacy top-level data/ephe/ is gitignored for backwards-compat
|
|
16
|
+
# local installs; the canonical bundled files live at openjyotish/data/ephe/
|
|
17
|
+
# and ARE tracked (shipped in the wheel under AGPL).
|
|
18
|
+
data/ephe/*
|
|
19
|
+
!data/ephe/.gitkeep
|
|
20
|
+
!openjyotish/data/ephe/*.se1
|
|
21
|
+
|
|
22
|
+
# Personal/local MCP config
|
|
23
|
+
opencode.json
|
|
24
|
+
.pi/
|
|
25
|
+
|
|
26
|
+
# OS
|
|
27
|
+
.DS_Store
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# OpenJyotish — agent instructions
|
|
2
|
+
|
|
3
|
+
## Python environment (user preference)
|
|
4
|
+
Always work in the conda env for Python tasks. If missing, recreate it:
|
|
5
|
+
`conda env create -f environment.yml`
|
|
6
|
+
Run all Python/pytest commands via: `conda run -n openjyotish python ...`
|
|
7
|
+
Never use system pip/python directly; never use uv venvs here.
|
|
8
|
+
|
|
9
|
+
## Project
|
|
10
|
+
Deterministic Vedic astrology MCP server (see openjyotish-spec.md).
|
|
11
|
+
Stack locked for v1: pyswisseph (Swiss Ephemeris, AGPL), logic built direct on it,
|
|
12
|
+
whole-sign houses, Lahiri ayanamsha default. Every tool response must include an
|
|
13
|
+
explicit `conventions_used` block.
|
|
14
|
+
|
|
15
|
+
## Server framework notes
|
|
16
|
+
- `mcp>=2.0.0` uses the new `MCPServer` API (`from mcp.server.mcpserver import MCPServer`,
|
|
17
|
+
`@server.tool()` decorator, `server.run("stdio")`). There is NO
|
|
18
|
+
`mcp.server.fastmcp.FastMCP` in 2.x.
|
|
19
|
+
- Dev-only oracle PyJHora lives in the env; never import it from core/ or server.py.
|