portfolio-optimiser/main.py
Kjell Tore Guttormsen 605c02aa62 feat(5): overleveringspakka er KUN kjørbar Python — container-innpakningen fjernet
Operatørdirektiv 14.08 etter ekstern test: mottakeren skal få kjørbar Python, ikke en
Docker-innpakking. `Dockerfile` og `azure.yaml` er SLETTET fra treet.

Sømmen er valgt av den eksisterende invarianten, ikke av smak: pakka ER `git archive HEAD`,
så å ekskludere filene fra arkivet ville krevd en kurerings-mekanisme — den andre kopien av
«hva mottakeren får», fri til å drifte fra HEAD (kø-(p)). Fjerning holder arkivet ukurert og
gjør fraværet til en egenskap ved HEAD, som er det eneste en gate kan måle.

De to gatene som pinnet flaten er håndtert bevisst:
- 4e-rå-tekst-gaten (`--platform linux/amd64` + ÉN kopi av startkommandoen) er SLETTET, med
  et notat der den sto. En gate som pinner en fjernet flate kan bare bli grønn.
- handover-gatens `_REQUIRED_MEMBERS` er ikke bare fratatt de to navnene, men erstattet av en
  POSITIV fraværs-assert pluss en dokument-gate. Å kun slutte å KREVE dem ville gitt en gate
  som ikke kan skille «fjernet» fra «shippes fortsatt».

Startkommandoen har nå ÉN kopi igjen: DEPLOY.md-ens `python main.py`, som navngir inngangen
subprosess-testen faktisk kjører.
2026-08-14 14:09:35 +02:00

14 lines
668 B
Python

"""Hosted-agent process entry (Fase 4d): the ONE file that starts the service.
Thin by design — the runtime contract lives in ``portfolio_optimiser.hosting`` (packaged
and tested); this file is the scaffold-conventional ``main.py`` that ``python main.py``
starts, which is the single start command DEPLOY.md prints (14.08: the delivery is runnable
Python, and no image ``CMD`` exists to be a second copy of it). It is part of the git archive,
not of the wheel: a wheel consumer starts the same server with
``python -c "from portfolio_optimiser.hosting import main; main()"``.
"""
from portfolio_optimiser.hosting import main
if __name__ == "__main__":
main()