Veroeffentlichung: Lizenzen, README, Colab-Entscheidung, JupyterLab im Image
Sechs Dinge, alle fuer das jetzt oeffentliche Repository. LIZENZEN. LICENSE traegt die MIT-Lizenz fuer den Programmcode (alle .py, Notebooks, Dockerfile, pyproject.toml), LICENSE-TEXT.md die CC BY-SA 4.0 fuer Buchtext, PDF, Website und Diagramme. Beide Dateien nennen ausdruecklich, was sie abdecken und was nicht - ein Codeblock im Buchtext bleibt Programmcode und steht unter MIT. Vorher hatte das Repository gar keine Lizenz, womit standardmaessig "alle Rechte vorbehalten" galt und niemand die 76 Programme haette weiterverwenden duerfen. COLAB. COLAB_BASIS_URL steht jetzt auf "". Der Platzhalter zeigte auf GitHub, das Repository liegt auf einer eigenen Forgejo-Instanz - und Colab oeffnet Notebooks NUR aus GitHub, Google Drive oder einem Upload. Die URL-Form colab.research.google.com/github/... ist fest auf GitHub verdrahtet; eine selbstgehostete Adresse dort einzusetzen ergaebe keinen Link zum eigenen Server, sondern einen toten GitHub-Link. Der Kommentar im Quelltext ging von GitHub aus und war damit selbst irrefuehrend; er ist ersetzt. Verloren geht nichts: Die 25 Notebooks liegen neben der Website und bekommen einen echten Download-Link, jetzt mit dem Hinweis, was man damit tut - "herunterladen und in Jupyter oeffnen, in Colab hochladen oder mit dem Kurs-Image starten". JUPYTERLAB IM KURS-IMAGE. Neue pyproject-Gruppe [notebook] mit jupyterlab, die Notebooks werden ins Image kopiert, und ein kleiner Startbefehl macht beide Betriebsarten ohne --entrypoint moeglich: ohne Argument JupyterLab, mit Argument ein einzelnes Programm. Gebaut und geprueft - Rucksack.py laeuft, JupyterLab antwortet mit HTTP 200 und zeigt alle 25 Notebooks. Image 1,31 -> 1,46 GB. Es laeuft ohne Token, deshalb im README die Portfreigabe an 127.0.0.1 gebunden. README KOMPLETT NEU. Es war die Bau-Anleitung eines privaten Verzeichnisses und ist jetzt die Visitenkarte eines oeffentlichen Repositorys: was das Buch ist, wo man es liest, drei Wege die Beispiele auszufuehren (Container, schlanke Installation, alles auf einmal), was hier liegt, wie man baut, die Colab-Frage, die Lizenzen und wie man mitwirkt. Alle relativen Links geprueft: 0 tot. .gitattributes. Ohne die Datei entschied core.autocrlf des jeweiligen Rechners, was beim Klonen passiert - ein Windows-Leser bekam CRLF-Rauschen in jedem Diff. Jetzt: im Repository immer LF, im Arbeitsverzeichnis passend zum System, Binaerdateien ausdruecklich ausgenommen. Der Bestand war bereits sauber (git add --renormalize aendert null Dateien). Zusaetzlich sind die erzeugten Verzeichnisse als linguist-generated markiert, sonst zaehlt die Sprachstatistik das Repository als HTML-Projekt. PROGRESS.md: Remote-Repository als erledigt markiert, der Colab-Befund festgehalten. CLAUDE.md um Veroeffentlichung, Lizenzen und die neuen Dateien ergaenzt. Geprueft: --check ohne Fehler, 0 tote README-Links, 76 Programme unveraendert, 33 pytest-Tests, pyproject baut mit acht Gruppen, PDF 759 Seiten (eine weniger - die Colab-Zeile entfaellt in 25 Kapiteln). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
360912dbfa
commit
4fa4e20b04
37 changed files with 467 additions and 258 deletions
|
|
@ -79,13 +79,22 @@ NOTEBOOK_VERZ = os.path.join(BASIS, NOTEBOOK_NAME)
|
|||
# Leerstring => es werden keine Colab-Badges erzeugt, nur lokale
|
||||
# Notebook-Hinweise.
|
||||
#
|
||||
# ACHTUNG BEIM VEROEFFENTLICHEN: Der Pfad danach lautet 'Notebooks_04/<name>.ipynb'
|
||||
# und wird relativ zur REPOSITORY-WURZEL aufgeloest. Seit der Trennung von
|
||||
# Version 03 und 04 ist das Version_04/ - der Pfad stimmt also, sobald dieses
|
||||
# Verzeichnis die Wurzel des neuen Repositorys ist. Zu aendern sind nur
|
||||
# Kontoname und Repository-Name in der URL unten. Die 25 Badges auf den
|
||||
# Kapitelseiten haengen daran; ein falscher Wert faellt erst beim Klicken auf.
|
||||
COLAB_BASIS_URL = "https://colab.research.google.com/github/dschlueter/or-mit-python/blob/main"
|
||||
# WARUM HIER EIN LEERSTRING STEHT: Das Repository liegt auf einer eigenen
|
||||
# Forgejo-Instanz, und Colab kann Notebooks NUR aus GitHub, aus Google Drive
|
||||
# oder aus einem Upload oeffnen. Die URL-Form
|
||||
# 'colab.research.google.com/github/<konto>/<repo>/...' ist fest auf GitHub
|
||||
# verdrahtet - eine selbstgehostete Adresse dort einzusetzen ergibt keinen
|
||||
# Link zum eigenen Server, sondern einen toten GitHub-Link.
|
||||
#
|
||||
# Verloren geht dadurch nichts: Die 25 Notebooks liegen neben der Website in
|
||||
# OR_HTML_04/Notebooks_04/ und bekommen einen echten Download-Link. Wer sie
|
||||
# ohne eigene Installation ausfuehren will, nimmt das Kurs-Image
|
||||
# (docker run -p 8888:8888 or-mit-python) - siehe README.md.
|
||||
#
|
||||
# Wer spaeter doch nach GitHub spiegelt, traegt hier die Basis-URL ein; der
|
||||
# Pfad danach lautet 'Notebooks_04/<name>.ipynb' und wird relativ zur
|
||||
# Repository-Wurzel aufgeloest, stimmt also unveraendert.
|
||||
COLAB_BASIS_URL = ""
|
||||
|
||||
# Reihenfolge der Kapitel im Gesamtdokument
|
||||
DATEIEN = [
|
||||
|
|
@ -1885,6 +1894,10 @@ def ergaenze_notebook_hinweis(text: str, notebook: str | None,
|
|||
lokal = (f"[{notebook}]({NOTEBOOK_NAME}/{notebook})" if als_link
|
||||
else f"`{NOTEBOOK_NAME}/{notebook}`")
|
||||
zeilen = [f"> **Notebook:** {lokal}"]
|
||||
if als_link and not COLAB_BASIS_URL:
|
||||
# Ohne Colab-Knopf soll wenigstens dastehen, was man mit der Datei tut.
|
||||
zeilen[0] += (" \u2014 herunterladen und in Jupyter \u00f6ffnen, in Colab "
|
||||
"hochladen oder mit dem Kurs-Image starten")
|
||||
if COLAB_BASIS_URL:
|
||||
ziel = f"{COLAB_BASIS_URL}/{NOTEBOOK_NAME}/{notebook}"
|
||||
zeilen.append(f"> [In Google Colab öffnen]({ziel})")
|
||||
|
|
|
|||
Loading…
Reference in a new issue