mirror of
https://github.com/migatu/astrololo.git
synced 2026-07-14 13:34:38 +00:00
e69c0714b9
Pierwszy increment implementacji warstwy logicznej (ścieżka A). LOG-24: interfejs EphemerisEngine z dwoma backendami — SkyfieldEngine (własny, permisywny: Skyfield MIT + dane JPL public domain) oraz RemoteEngine (klient izolowanej usługi swisseph). Fabryka + leniwa inicjalizacja; endpointy /chart/positions i /chart/compare. LOG-01: pozycje obiektów (długość/szerokość ekliptyczna, prędkość, kierunek, formaty: w znaku / absolutny / dziesiętny). LOG-25/28: harness porównawczy (compare.py) z progami tolerancji oraz wspólny kontrakt parzystości; pełen zestaw testów. LOG-27: services/engine-swisseph — osobna, opcjonalna usługa AGPL (pyswisseph, tryb Moshiera), licencjonowana osobno, w compose pod profilem "comparison"; nie wchodzi do zamkniętego produktu. Walidacja: SkyfieldEngine zgadza się ze Swiss Ephemeris co do ~1" dla wszystkich 10 obiektów na horoskopie referencyjnym (30.04.1984, Warszawa); 12 testów przechodzi (silnik B pomijany gdy nieskonfigurowany). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
25 lines
1.0 KiB
Markdown
25 lines
1.0 KiB
Markdown
# engine-swisseph (silnik B — AGPL, izolowany)
|
||
|
||
Osobna, **opcjonalna** usługa będąca drugim silnikiem efemeryd (LOG‑27). Liczy
|
||
pozycje przez **pyswisseph / Swiss Ephemeris** i służy jako **wyrocznia
|
||
walidacyjna / tryb porównawczy** (LOG‑25/26) dla naszego silnika własnego.
|
||
|
||
## ⚠️ Licencja
|
||
Ten komponent jest **AGPL‑3.0** (bo linkuje Swiss Ephemeris) — patrz [LICENSE](LICENSE).
|
||
Jest **wydzielony jako osobny proces** i wołany przez HTTP, więc nie „zaraża"
|
||
permisywnej reszty systemu. **Nie wchodzi do dystrybucji zamkniętego produktu.**
|
||
|
||
## API
|
||
- `POST /positions` → `{when_utc, lat, lon, objects?}` → pozycje (ten sam kształt co silnik własny)
|
||
- `GET /health`
|
||
|
||
Tryb Moshiera (`FLG_MOSEPH`) — bez plików efemeryd, zero konfiguracji.
|
||
|
||
## Uruchomienie (tylko profil porównawczy / dev / CI)
|
||
```bash
|
||
pip install -r requirements.txt
|
||
uvicorn app.main:app --port 8003
|
||
```
|
||
Następnie w warstwie logicznej ustaw `ENGINE_SWISSEPH_URL=http://localhost:8003`,
|
||
aby włączyć silnik B (tryb dual-run i testy kontraktowe silnika B).
|