Skip to content

Commit 0a5a7ec

Browse files
committed
cleanup pass with nbnorm focusing on slideshow & empty tags
1 parent f37fe11 commit 0a5a7ec

File tree

15 files changed

+58
-146
lines changed

15 files changed

+58
-146
lines changed

jupytext.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
cell_metadata_filter = """all,-hidden,-heading_collapsed,-run_control,-trusted,-editable"""
1+
cell_metadata_filter = """all,-hidden,-heading_collapsed,-run_control,-trusted,-editable,-slideshow"""
22
# use the jupytext config exclusively for exclusions
33
notebook_metadata_filter = """all, -jupytext.cell_metadata_filter, -jupytext.notebook_metadata_filter, -jupytext.text_representation.jupytext_version, -jupytext.text_representation.format_version,-language_info.version, -language_info.codemirror_mode,-language_info.file_extension, -language_info.mimetype, -toc, -rise, -version"""

notebooks/dashboards/marimo/README-marimo-nb.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ so you can {download}`download the companion zip<./ARTEFACTS-marimo.zip>`
2424
to run our samples locally
2525
```
2626

27-
*`marimo.io`* is a recent system to build [its own kind of notebooks](https://docs.marimo.io/index.html)
27+
*`marimo.io`* is a recent system to build [its own kind of notebooks](https://docs.marimo.io/index.html)
2828

2929
+++
3030

notebooks/dashboards/streamlit/README-streamlit-nb.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,6 @@ mais voici pour commencer un aperçu rapide de ce qu'on peut en faire
2525

2626
la bibliothèque `streamlit` (<https://streamlit.io/>) est un utilitaire qui permet de réaliser rapidement des applis de type *dashboard* - c'est-à-dire par exemple une visualisation interactive où on peut faire varier différents paramètres d'entrée, pour explorer interactivement des données
2727

28-
29-
30-
3128
+++
3229

3330
## pour quoi faire ?

notebooks/geo-howtos/folium/HOWTO-folium-nb.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ la bibliothèque `folium` (<https://python-visualization.github.io/folium/latest
2525

2626
elle est donc souvent utilisée en conjonction avec `geopandas`
2727

28-
2928
+++
3029

3130
## les bases

notebooks/geo-tps/addresses/README-addresses-nb.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,6 @@ import pandas as pd
7777
vous pouvez charger le fichier `data/addresses.csv`; toutes ces adresses sont situées à PARIS
7878

7979
```{code-cell} ipython3
80-
:tags: []
81-
8280
# load the data in data/addresses.csv
8381
# and display a few first lines
8482
@@ -162,8 +160,6 @@ import requests
162160
```
163161

164162
```{code-cell} ipython3
165-
:tags: []
166-
167163
# here's how to use the API
168164
169165
def localize_one(num, typ, nom):
@@ -255,6 +251,7 @@ curl -X POST -F data=@path/to/file.csv -F columns=voie -F columns=ville https://
255251
```bash
256252
curl -o lapageweb.html http://github.com/flotpython/
257253
```
254+
258255
* quand on utilise une API, comme on vient de le faire pour aller chercher la position de la rue des bernardins, on doit **passer des paramètres** à l'API
259256
et pour faire ça dans une requête http, il y a **deux mécanismes: GET et POST**
260257
@@ -303,22 +300,26 @@ sauf que nous, on ne veut pas utiliser `curl`, on veut faire cette requête en P
303300
2. le résultat - toujours au format csv - pourra être également transformé en dataframe
304301
3. qu'il ne restera plus qu'à `merge` (ou `join` si vous préférez) avec la dataframe de départ, pour ajouter les résultats de la géolocalisation dans les données de départ
305302
pour cette étape on peut envisager de ne garder que certaines colonnes de la géolocalisation (assez bavarde par ailleurs), je vous recommande de conserver uniquement:
303+
306304
* `latitude`, `longitude` - *of course*
307305
* `result_city` pour pouvoir vérifier la validité des résultats - ici on devrait toujours avoir `Paris`
308306
* `result_type` qui devrait toujours renvoyer `housenumber`, ça permet à nouveau de vérifier qu'on a bien une adresse connue
309307

310308
+++
311309

312310
````{tip}
311+
313312
* pour envoyer un POST avec des paramètres, on peut faire
314313
```python
315314
response = requests.post(url, file=some_dict, data=another_dict)
316315
```
316+
317317
* et donc dans notre cas, puisque `data` est un paramètre de type fichier, alors que `columns` est un paramètre usuel, on fera
318318
```python
319319
response = requests.post(url, files={'data': file_like}, data={'columns': ['col1', ...]})
320320
```
321321
dans lequel `file_like` désigne le résultat d'un `open()`
322+
322323
* enfin, `pd.read_csv` s'attend à un paramètre de type fichier, i.e. du genre de ce qu'on obtient avec `open()`
323324
et du coup pour reconstruire une dataframe à partir du texte obtenu dans la requête http, on a deux choix
324325
1. soit on commence par sauver le texte dans un fichier temporaire (juste faire attention à choisir un nom de fichier qui n'existe pas, de préférence dans un dossier temporaire, voir le module `tempfile`)
@@ -334,8 +335,6 @@ je vous recommande d'y aller pas à pas, commencez par juste l'étape 1, puis 1
334335
c'est utile aussi de commencer par une toute petite dataframe pour ne pas attendre des heures pendant la mise au point...
335336

336337
```{code-cell} ipython3
337-
:tags: []
338-
339338
import requests
340339
# this one is to fake a file from a string
341340
import io

notebooks/numpy-exos/EXO-mandelbrot-nb.md

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,26 +33,22 @@ il s'agit de calculer l'image de la convergence de mandelbrot:
3333
</div>
3434

3535
```{code-cell} ipython3
36-
---
37-
slideshow:
38-
slide_type: slide
39-
---
4036
import numpy as np
4137
import matplotlib.pyplot as plt
4238
%matplotlib ipympl
4339
```
4440

4541
## comment ça marche ?
4642

47-
+++ {"cell_style": "center", "slideshow": {"slide_type": "slide"}}
43+
+++ {"cell_style": "center"}
4844

4945
* dans l'espace complexe, on définit pour chaque $c\in\mathbb{C}$ la suite
5046
* $z_0 = c$
5147
* $z_{n+1} = z_n^2 + c$
5248
* on démontre que
5349
* lorsque $|z_n|>2$, la suite diverge
5450

55-
+++ {"cell_style": "center", "slideshow": {"slide_type": "-"}}
51+
+++ {"cell_style": "center"}
5652

5753
il s'agit pour nous de
5854

@@ -70,7 +66,7 @@ il s'agit pour nous de
7066

7167
* on n'a plus qu'à afficher ensuite l'image obtenue `diverge` avec `plt.imshow`
7268

73-
+++ {"slideshow": {"slide_type": "slide"}}
69+
+++
7470

7571
````{admonition} indices
7672

notebooks/numpy-tps/images/README-images1-nb.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,13 @@ ou toute autre librairie d'affichage que vous aimez et/ou savez utiliser: `seabo
8888
:width: 100px
8989
:align: right
9090
```
91+
9192
* l'affichage à l'écran, d'une image couleur `rgb`, utilise les règles de la synthèse additive
9293
`(r, g, b) = (255, 255, 255)` donne la couleur blanche
9394
`(r, g, b) = (0, 0, 0)` donne du noir
9495
`(r, g, b) = (255, 0, 0)` donne du rouge
9596
`(r, g, b) = (255, 255, 0)` donne du jaune ...
97+
9698
* pour afficher le tableau `im` comme une image, utilisez: `plt.imshow(im)`
9799
* pour afficher plusieurs images dans une même cellule de notebook faire `plt.show()` après chaque `plt.imshow(...)`
98100
````
@@ -104,6 +106,7 @@ ou toute autre librairie d'affichage que vous aimez et/ou savez utiliser: `seabo
104106
1. Créez un tableau **non initialisé**, pour représenter une image carrée **de 91 pixels de côté**, d'entiers 8 bits non-signés, et affichez-le
105107
```{admonition} indices
106108
:class: tip
109+
107110
* il vous faut pouvoir stocker 3 `uint8` par pixel pour ranger les 3 couleurs
108111
* on s'intéresse uniquement à la taille, et pas au contenu puisqu'on a dit "non initialisé"; que vous ayez du blanc, du noir ou du bruit, c'est OK
109112
```
@@ -215,6 +218,7 @@ ou toute autre librairie d'affichage que vous aimez et/ou savez utiliser: `seabo
215218
216219
* vous pouvez créer plusieurs figures depuis une seule cellule
217220
pour cela, faites plusieurs fois la séquence `plt.imshow(...); plt.show()`
221+
218222
* vous pouvez ensuite choisir de 'replier' ou non la zone *output* en hauteur;
219223
c'est-à-dire d'afficher soit toute la hauteur, soit une zone de taille fixe avec une scrollbar pour naviguer
220224
pour cela cliquez dans la marge gauche de la zone *output*
@@ -259,6 +263,7 @@ affichez-le pour `(l, c) = (10, 20)`) puis `(l, c) = (100, 200)`
259263
* mais pour afficher une image unidimensionnelle contenant des nombres de `0` à `255`,
260264
il faut bien lui dire à quoi correspondent les valeurs
261265
(lors de l'affichage, le `255` des rouges n'est pas le même `255` des verts)
266+
262267
* du coup, voyez le paramètre `cmap=` de `plt.imshow`; et notamment avec `'Reds'`, `'Greens'` ou `'Blues'`
263268
```
264269
@@ -273,6 +278,7 @@ affichez-le pour `(l, c) = (10, 20)`) puis `(l, c) = (100, 200)`
273278
```
274279

275280
5. Copiez l'image, et dans la copie, remplacer le carré de taille `(200, 200)` en bas à droite:
281+
276282
* d'abord par un carré de couleur RGB `(219, 112, 147)` (vous obtenez quelle couleur)
277283
* puis par un carré blanc avec des rayures horizontales rouges de 1 pixel d'épaisseur
278284

notebooks/numpy-tps/images/README-images2-nb.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ on obtiendrait cette fois (observez la taille en pixels de l'image)
131131

132132
```{admonition} indice
133133
:class: tip dropdown
134+
134135
* votre fonction retourne un tuple avec deux morceaux: le nombre de lignes, et le nombre de colonnes
135136
* dans un premier temps, vous pouvez vous contenter d'une version un peu brute: on pourrait utiliser juste la racine carrée, et toujours fabriquer des carrés
136137
@@ -164,6 +165,7 @@ def rectangle_size(n):
164165

165166
````{admonition} indices
166167
:class: dropdown
168+
167169
* sont potentiellement utiles pour cet exo:
168170
* la fonction `np.indices()`
169171
* [l'indexation d'un tableau par un tableau](https://numerique.info-mines.paris/numpy-optional-indexing-nb/)
@@ -346,6 +348,7 @@ B' = 0.272 * R + 0.534 * G + 0.131 * B
346348
* dans notre cas on suppose qu'en entrée on a des entiers non-signé 8 bits
347349
* mais attention, les calculs vont devoir se faire en flottants, et pas en uint8
348350
pour ne pas avoir, par exemple, 256 devenant 0
351+
349352
* toutefois on veut tout de même en sortie des entiers non-signé 8 bits !
350353
351354
ça signifie qu'il va sans doute vous falloir faire un peu de gymnastique avec les types de vos tableaux

notebooks/numpy-tps/pentominos/README-pentominos-nb.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,7 @@ you have 12 pieces and 60 slots to fill, so you need 72 columns
256256
### model the problem
257257

258258
decide how to represent the board and pieces:
259+
259260
* using nd-arrays, so rectangular spaces
260261
* use only **booleans** to model **obstacles** in the board and the actual **contour** of pieces
261262

notebooks/numpy-tps/sounds/README-sounds-nb.md

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -155,11 +155,8 @@ def MyAudio(what, **kwds):
155155
```
156156

157157
```{code-cell} ipython3
158-
---
159-
slideshow:
160-
slide_type: ''
161-
tags: [raises-exception, gridwidth-1-2]
162-
---
158+
:tags: [raises-exception, gridwidth-1-2]
159+
163160
# je peux me contenter de faire ceci
164161
165162
MyAudio(la_1seconde)
@@ -223,8 +220,6 @@ def sine(freq, duration=1, amplitude=1.):
223220
#MyAudio(sine(LA, 1.5), autoplay=True)
224221
```
225222

226-
+++ {"tags": []}
227-
228223
### pour les rapides
229224

230225
on veut obtenir un effet de 'note qui monte'
@@ -234,16 +229,12 @@ améliorer un peu pour générer une courbe avec un fréquence qui croit (ou dé
234229
écrire une fonction `sine_linear(freq1, freq2, duration)`
235230

236231
```{code-cell} ipython3
237-
:tags: []
238-
239232
# votre code
240233
def sine_linear(freq1, freq2, duration):
241234
...
242235
```
243236

244237
```{code-cell} ipython3
245-
:tags: []
246-
247238
# décommenter pour écouter
248239
#MyAudio(sine_linear(440, 660, 3))
249240
```
@@ -364,6 +355,7 @@ ce qui nous amène à une petite digression: profitons-en pour regarder un peu c
364355
l'encodage des **entiers signés** fonctionne comme suit; on regarde ici les types `int8` et `uint8` car c'est plus simple, le principe est exactement le même pour des tailles plus grandes
365356

366357
il y a deux types d'encodages pour les entiers:
358+
367359
* `uint8` (le `u` signifie *unsigned*): les entiers **non signés** reposent sur un encodage "naturel": on décompose en base 2, et donc avec 8 bits, on peut aller **de 0 à 255**
368360
* `int8`: par contre pour les entiers **signés**, on va devoir utiliser **un bit comme bit de signe**, ce qui limite le spectre de ce qu'il est possible d'encoder; avec en tout 8 bits on peut encoder de **-128 à 127 inclus**
369361

0 commit comments

Comments
 (0)