Alle 25 Notebooks sind nun fehlerfrei testbar (25 passed). Dafür drei
Änderungen im Build und eine neue Test-Infrastruktur:
1. pyproject.toml: nbmake>=1.5 in der dev-Gruppe.
2. build_version_04.py: Notebooks bekommen zwei Setup-Zellen und
Subprocess-Zellen für Programme, die nicht direkt im Kernel laufen:
- NOTEBOOK_SETUP_2: __file__ definieren, sys.path für or_kern,
multiprocessing auf fork (Spawn findet Kernel-Funktionen nicht).
- _braucht_subprocess: erkennt highspy (Solver-Konflikt), pytest
(SystemExit), get_context('spawn'), subprocess+__file__ (sucht
.py-Dateien), sys.exit (SystemExit). Diese Programme erscheinen
als Markdown-Codeblock (sichtbar, nicht ausführbar) plus einer
Subprocess-Zelle mit NO_COLOR=1 (verhindert ANSI-Codes, die der
Parser von Mutationstest.py nicht verarbeitet).
- Solver-Konflikt-Erkennung: wenn ein Kapitel sowohl ortools als
auch highspy importiert, laufen auch reine ortools-Programme als
Subprocess (highspy schon im Kernel).
3. teste_code_04.py: inkrementeller Test — nur geänderte/neue Programme
und Notebooks (via git status). Netzabhängige Dateien (yfinance)
werden automatisch erkannt und nur getestet, wenn Internet verfügbar.
4. PLAN.md Abschnitt 10: neuer Verifikationsschritt 4 (pytest --nbmake).
PROGRESS.md und CLAUDE.md aktualisiert.
Gefundene und behobene Probleme:
- or_kern-Import: sys.path im Notebook erweitert.
- __file__ nicht definiert: zweite Setup-Zelle setzt es.
- multiprocessing spawn: fork erzwungen (Ein_System_Vier_Ansaetze.py).
- ortools/highspy-Konflikt: Subprocess für beide Solver.
- pytest SystemExit: Subprocess für test_or_kern.py und Mutationstest.py.
- sys.exit(0): Subprocess für Installationstest.py.
- ANSI-Codes in pytest-Ausgabe: NO_COLOR=1 in Subprocess-Zelle.
40 lines
1.3 KiB
Text
40 lines
1.3 KiB
Text
# Gilt fuer die Version 04. Alle Pfade sind relativ zu diesem Verzeichnis -
|
|
# damit funktioniert die Datei unveraendert weiter, sobald Version_04 die
|
|
# Wurzel eines eigenen Repositorys ist.
|
|
|
|
__pycache__/
|
|
*.pyc
|
|
venv/
|
|
.venv/
|
|
|
|
# pip install -e . legt dieses Verzeichnis an (Metadaten des editierbaren Pakets)
|
|
or_mit_python.egg-info/
|
|
|
|
# LaTeX/xelatex-Nebenprodukte des PDF-Baus (build_version_04.py --pdf)
|
|
build_v04.log
|
|
build_v04.tex
|
|
build_v04.aux
|
|
build_v04.toc
|
|
build_v04.out
|
|
build_v04.idx
|
|
build_v04.ilg
|
|
build_v04.ind
|
|
svg-inkscape/
|
|
|
|
# Von den Beispielprogrammen beim Lauf erzeugte Dateien
|
|
Operations_Research_mit_Python_Version_04_Programme/output/
|
|
produktionsmix.xlsx
|
|
produktionsmix_ergebnis.xlsx
|
|
|
|
# Zugangsdaten fuers Veroeffentlichen (veroeffentliche_04.py). Enthaelt zwar
|
|
# kein Passwort - die Anmeldung laeuft ueber den SSH-Schluessel -, aber Host,
|
|
# Benutzer und Serverpfad gehen niemanden etwas an. Vorlage: .env.beispiel
|
|
.env
|
|
|
|
# Die Arbeitsgrundlagen des Umbaus - Rezension und Verbesserungsvorschlaege.
|
|
# Sie haben ihren Zweck erfuellt und gehoeren nicht in die Veroeffentlichung.
|
|
# NEUER_TITEL.md lag frueher hier und musste per Gegenausnahme gerettet
|
|
# werden; seit dem Umzug nach Operations_Research_mit_Python_Version_04/
|
|
# steht die Titelquelle bei den uebrigen Quellen, und das ganze Verzeichnis
|
|
# kann ausgeschlossen werden.
|
|
Kritik_und_Verbesserungsvorschlaege/
|