From 2c82c48dba3e5f5ddecf1a457b3a9a54fa495d86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Grobol?= Date: Tue, 17 Dec 2024 23:02:08 +0100 Subject: [PATCH] bump --- .vscode/launch.json | 25 ++++++++++++++++++++++++ requirements.txt | 2 +- slides/08-html/examples/html_receiver.py | 4 +++- slides/08-html/html-slides.py.md | 24 +++++++++-------------- slides/08-html/rise.css | 6 ++++++ slides/08-html/solutions.py.md | 5 ++--- slides/09-debug/debug-slides.py.md | 18 ++++++++--------- slides/09-debug/rise.css | 6 ++++++ 8 files changed, 61 insertions(+), 29 deletions(-) create mode 100644 .vscode/launch.json create mode 100644 slides/08-html/rise.css create mode 100644 slides/09-debug/rise.css diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..8182e3c --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,25 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + + { + "name": "Python Debugger: Remote Attach", + "type": "debugpy", + "request": "attach", + "connect": { + "host": "localhost", + "port": 5678 + }, + "justMyCode": false, + // "pathMappings": [ + // { + // "localRoot": "${workspaceFolder}", + // "remoteRoot": "." + // } + // ] + } + ] +} \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 8db4406..aaca6d6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,7 +6,7 @@ httpx[http2] ipycytoscape ipympl Jinja2 -jupyter_server!=2.11.0 +jupyter_server != 2.11.0 jupyterlab jupyterlab_rise jupytext diff --git a/slides/08-html/examples/html_receiver.py b/slides/08-html/examples/html_receiver.py index 1451c69..90d2773 100644 --- a/slides/08-html/examples/html_receiver.py +++ b/slides/08-html/examples/html_receiver.py @@ -1,6 +1,8 @@ import itertools import pathlib +from typing import Annotated + from fastapi import FastAPI, Form @@ -8,7 +10,7 @@ @app.post("/") -async def read_message(message: str = Form(...)): +async def read_message(message: Annotated[str, Form()]): file_number = next( i for i in itertools.count() if not pathlib.Path(f"{i}.txt").exists() ) diff --git a/slides/08-html/html-slides.py.md b/slides/08-html/html-slides.py.md index d8500a9..e617a5f 100644 --- a/slides/08-html/html-slides.py.md +++ b/slides/08-html/html-slides.py.md @@ -7,7 +7,7 @@ jupyter: extension: .md format_name: markdown format_version: '1.3' - jupytext_version: 1.16.0 + jupytext_version: 1.16.5 kernelspec: display_name: Python 3 (ipykernel) language: python @@ -18,10 +18,6 @@ jupyter: -```python - -``` - Cours 10 : Générer du HTML ========================== @@ -30,10 +26,6 @@ Cours 10 : Générer du HTML -```python slideshow={"slide_type": "-"} -from IPython.display import display -``` - ## HTML @@ -59,10 +51,13 @@ Concevoir Assurez-vous qu'elle passe au [valideur du W3C](https://validator.w3.org) - Une API avec FastAPI qui reçoit des requêtes de type POST venant de la page que vous avez créé et qui crée pour chacune un nouveau fichier texte sur votre machine dont le contenu est le contenu du - champ de texte. Vous aurez besoin de regarder [dans sa - doc](https://fastapi.tiangolo.com/tutorial/request-forms/) comment on récupère dans FastAPI des + champ de texte. **Vous aurez besoin de regarder [dans sa + doc](https://fastapi.tiangolo.com/tutorial/request-forms/)** comment on récupère dans FastAPI des données envoyées depuis un formulaire (malheureusement ce n'est pas du JSON ! Pour ça il faut court-circuiter avec du JavaScript). + - **Attention** les champs de formulaire sont référencés par leur attribut `name` dans une un + envoi de formulaire via POST. Si cette phrase est complètement obscure pour vous, allez **lire + les docs**. @@ -137,9 +132,7 @@ fichier et qui écrit dans ce fichier une page HTML qui contient une liste non-o ```python -from typing import List - -def make_ul(elems: List[str], path: str): +def make_ul(elems: list[str], path: str): pass # À vous de jouer # Pour tester @@ -259,7 +252,8 @@ En plus dans aucun des deux cas on a le confort de - Une gestion correcte par git - … -Ce qui serait **bien** ça serait de pouvoir écrire du HTML normalement et en Python de ne faire que changer les parties intéressantes. +Ce qui serait **bien** ça serait de pouvoir écrire du HTML normalement et en Python de ne faire que +changer les parties intéressantes. diff --git a/slides/08-html/rise.css b/slides/08-html/rise.css new file mode 100644 index 0000000..55d5b30 --- /dev/null +++ b/slides/08-html/rise.css @@ -0,0 +1,6 @@ +/* This to fix the code size in RISE slideshows. Unstable, untested etc. And must be present in +every directory where there are slide notebooks */ + +.rise-enabled .cm-editor{ + font-size: 1.75rem; +} diff --git a/slides/08-html/solutions.py.md b/slides/08-html/solutions.py.md index 873b1da..08a4c79 100644 --- a/slides/08-html/solutions.py.md +++ b/slides/08-html/solutions.py.md @@ -91,7 +91,7 @@ async def read_message(message: str = Form(...)): Bien entendu, vérifiez que votre HTML passe au [valideur du W3C](https://validator.w3.org). ```python -def make_ul(elems: List[str], path: str): +def make_ul(elems: list[str], path: str): above = """ @@ -126,7 +126,6 @@ print(open("local/moody_bands.html").read()) ```python # %load examples/echo_list_api.py -from typing import List from fastapi import FastAPI from pydantic import BaseModel from fastapi.responses import HTMLResponse @@ -135,7 +134,7 @@ app = FastAPI() class InputData(BaseModel): - lines: List[str] + lines: list[str] @app.post("/", response_class=HTMLResponse) diff --git a/slides/09-debug/debug-slides.py.md b/slides/09-debug/debug-slides.py.md index 45db942..cab6f37 100644 --- a/slides/09-debug/debug-slides.py.md +++ b/slides/09-debug/debug-slides.py.md @@ -7,7 +7,7 @@ jupyter: extension: .md format_name: markdown format_version: '1.3' - jupytext_version: 1.16.0 + jupytext_version: 1.16.5 kernelspec: display_name: Python 3 (ipykernel) language: python @@ -322,7 +322,7 @@ On va utiliser [Ruff](https://pypi.org/project/ruff/), pensez à l'installer ave avant de lancer la cellule suivante. ```python -!ruff lintme.py +!ruff check lintme.py ``` [`lintme.py`](lintme.py) contient les fonctions qu'on a défini précédemment, allez voir ce qu'il y a @@ -414,7 +414,7 @@ Voici un fichier moche Est-ce que c'est un problème ? Oui. Ruff vous le dira ```python -!ruff --select "E" ugly.py +!ruff check --select "E" ugly.py ``` @@ -526,7 +526,7 @@ Ah, c'est bon d'avoir du code qui marche ```python -display(common_neighbours("moi", ancor_t2i, ancor_i2t, ancor_cooc)) +common_neighbours("moi", ancor_t2i, ancor_i2t, ancor_cooc) ``` @@ -534,11 +534,11 @@ Enfin, on a fini, la fonction marche, on peut l'appliquer à ce qu'on veut ```python -display(common_neighbours("bonjour", ancor_t2i, ancor_i2t, ancor_cooc)) +common_neighbours("bonjour", ancor_t2i, ancor_i2t, ancor_cooc) ``` ```python slideshow={"slide_type": "subslide"} -display(common_neighbours("Russie", ancor_t2i, ancor_i2t, ancor_cooc)) +common_neighbours("Russie", ancor_t2i, ancor_i2t, ancor_cooc) ``` @@ -546,11 +546,11 @@ Euh ```python slideshow={"slide_type": "subslide"} -display(common_neighbours("Orléans", ancor_t2i, ancor_i2t, ancor_cooc)) +common_neighbours("Orléans", ancor_t2i, ancor_i2t, ancor_cooc) ``` ```python -display(common_neighbours("médecin", ancor_t2i, ancor_i2t, ancor_cooc)) +common_neighbours("médecin", ancor_t2i, ancor_i2t, ancor_cooc) ``` @@ -597,7 +597,7 @@ code en particulier ça va être compliqué à gérer. ### Pour les grand⋅e⋅s -On va débugger dans [Visual Studio Code](https://code.visualstudio.com/). +On va débugger dans [Visual Studio Code](https://code.visualstudio.com/) avec `debugpy`. (On regarde le tableau, désolé pour celleux qui ne sont pas là) diff --git a/slides/09-debug/rise.css b/slides/09-debug/rise.css new file mode 100644 index 0000000..55d5b30 --- /dev/null +++ b/slides/09-debug/rise.css @@ -0,0 +1,6 @@ +/* This to fix the code size in RISE slideshows. Unstable, untested etc. And must be present in +every directory where there are slide notebooks */ + +.rise-enabled .cm-editor{ + font-size: 1.75rem; +}