fix(domy): przepnij build_chart na cusps_for — inaczej nowe systemy dają 500
Testy / Testy warstwy logicznej (silnik) (push) Successful in 10m30s
Testy / Testy warstwy prezentacji (dostęp do baz) (push) Successful in 9m28s
Testy / Testy warstwy bazodanowej (ochrona baz) (push) Successful in 9m28s
Testy / Build obrazu silnika B (swisseph) (push) Successful in 20s
Testy / Kontrola składni wszystkich warstw (push) Successful in 9s
Testy / Testy warstwy logicznej (silnik) (push) Successful in 10m30s
Testy / Testy warstwy prezentacji (dostęp do baz) (push) Successful in 9m28s
Testy / Testy warstwy bazodanowej (ochrona baz) (push) Successful in 9m28s
Testy / Build obrazu silnika B (swisseph) (push) Successful in 20s
Testy / Kontrola składni wszystkich warstw (push) Successful in 9s
Rozszerzenie houses.SYSTEMS do ośmiu pozycji odblokowało w chart.py filtr `house_system in H.SYSTEMS`, ale liczenie zostało na H.cusps(), które zna wyłącznie trzy systemy dzielące ekliptykę i dla pozostałych rzuca ValueError. Wybranie campanusa przechodziło więc walidację i dopiero potem wywalało 500. Test parametryzowany po H.SYSTEMS zamyka tę klasę błędu na przyszłość: każdy system ogłoszony na liście musi przejść przez build_chart, więc dopisanie nazwy bez przepięcia liczenia od razu zapali się na czerwono. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -97,7 +97,9 @@ def build_chart(engine: EphemerisEngine, moment: ChartMoment, house_system: str
|
||||
asc = H.compute_asc(ramc, eps, moment.lat)
|
||||
mc = H.compute_mc(ramc, eps)
|
||||
system = house_system if house_system in H.SYSTEMS else H.WHOLE_SIGN
|
||||
cusp_list = H.cusps(asc, mc, system) # tropikalne — geometria domów jest niezmiennicza
|
||||
# cusps_for, nie cusps: to drugie zna tylko trzy systemy dzielące ekliptykę.
|
||||
# Systemy egzotyczne dzielą inne koła wielkie i potrzebują pełnego (RAMC, ε, φ).
|
||||
cusp_list = H.cusps_for(ramc, eps, moment.lat, system) # tropikalne — geometria domów jest niezmiennicza
|
||||
|
||||
def _cusps_out(cl: list[float]) -> list[dict]:
|
||||
"""Cuspy → wiersze pod UI/kosmogram: znak, stopień w znaku, długość, glif."""
|
||||
@@ -132,7 +134,7 @@ def build_chart(engine: EphemerisEngine, moment: ChartMoment, house_system: str
|
||||
if len(ordered) > 1:
|
||||
result["house_systems"] = []
|
||||
for s in ordered:
|
||||
cl = cusp_list if s == system else H.cusps(asc, mc, s)
|
||||
cl = cusp_list if s == system else H.cusps_for(ramc, eps, moment.lat, s)
|
||||
result["house_systems"].append({"system": s, "cusps": _cusps_out(cl)})
|
||||
for pdict, obj in zip(result["positions"], positions):
|
||||
pdict.setdefault("houses", {})[s] = H.assign_house(obj.longitude, cl)
|
||||
|
||||
Reference in New Issue
Block a user