Compare commits

...

2 Commits

Author SHA1 Message Date
16705027d6 Add some useful python packages 2022-07-29 22:02:12 +02:00
2a29096d17 Show how to return values to python generator 2022-07-29 21:59:11 +02:00
2 changed files with 48 additions and 4 deletions

View File

@@ -1,6 +1,6 @@
:PROPERTIES:
:ID: 4fabfe6a-b104-464f-8a87-dfd7d761dbcc
:mtime: 20220607075713
:mtime: 20220720145510
:ctime: 20211230101535
:END:
#+title: Python
@@ -108,7 +108,6 @@ Traçage des appels de fonctions, du code exécuté et des valeurs retournées (
*** [[https://github.com/ionelmc/python-manhole][Manhole]]
Service (interface via une socket Unix permettant l'accès à un REPL) permettant l'inspection d'un programme en cours d'exécution.
* Implémentations
** CPython
Implémentation de référence du language Python.
@@ -135,6 +134,10 @@ Ensemble d'outils en ligne de commande pour convertir en csv et pour les manipul
** Graphique
*** [[https://github.com/tfardet/mpl_chord_diagram][mpl_chord_diagram]]
Génération de [[https://en.wikipedia.org/wiki/Chord_diagram_(information_visualization)][Chord diagrams]] avec /matplotlib/.
*** [[https://networkx.org/][networkX]]
Représentation de graphs.
*** [[https://github.com/pwaller/pyfiglet][pyfiglet]]
Représentation de texte sous forme d'ASCII art font.
** Logs
*** [[https://github.com/itamarst/eliot][eliot]]
Génération de logs sous forme d'arbre.
@@ -148,6 +151,8 @@ Création de classes en évitant l'écriture du /boilerplate code/ (possibilité
** Médias
*** [[https://github.com/ytdl-org/youtube-dl][youtube-dl]]
Téléchargement de vidéo depuis youtube, utilisé par mpv.
*** [[https://github.com/goldsmith/Wikipedia][wikipedia]]
Wrapper permettant l'accès au contenu de wikipedia.
** Sérialization/déserialization
*** [[https://github.com/ICRAR/ijson][ijson]]
Parser JSON ne nécessitant pas que l'ensemble de la donnée soit chargée pour la parser (optimisation de la mémoire
@@ -193,7 +198,6 @@ Framework d'extraction de données depuis des site web.
* utiliser ~python -m pip~ et ~python -m venv~ (exécution du module en tant que script, au lieu de ~pip~ et ~virtualenv~) permet d'éviter les incohérences
entre les différents répertoires des packages Python (cas lorsqu'un répertoire est présent dans le ~PYTHONPATH~ et qu'un autre l'est dans le ~PATH~).
* Tips
** [[id:24408701-21d8-4f4e-aed9-c58746df2244][Différence entre les opérateurs + et +=]]
** [[id:a32ab138-f9a8-4d61-9c09-97953c5a0a92][type == object]]

View File

@@ -1,6 +1,6 @@
:PROPERTIES:
:ID: 67410dad-d959-4029-b281-9bf1c9e69ede
:mtime: 20220529131239
:mtime: 20220729213822
:ctime: 20220529123824
:END:
#+title: Generator
@@ -94,5 +94,45 @@ print(f'{sum(square(fibonacci_numbers(30))) = }')
#+RESULTS:
: sum(square(fibonacci_numbers(30))) = 1120149658760
* Renvoyer une valeur à un /generator/
#+BEGIN_SRC python :results output
def dummy_generator():
i = 0
for i in range(10):
print(f'from generator {yield i}')
generator = dummy_generator()
received = generator.send(None)
print(f'from here {received}')
try:
while True:
received = generator.send(received + 100)
print(f'from here {received}')
except StopIteration:
pass
#+END_SRC
#+RESULTS:
: from here 0
: from generator 100
: from here 1
: from generator 101
: from here 2
: from generator 102
: from here 3
: from generator 103
: from here 4
: from generator 104
: from here 5
: from generator 105
: from here 6
: from generator 106
: from here 7
: from generator 107
: from here 8
: from generator 108
: from here 9
: from generator 109
* Références
* [[https://blog.devgenius.io/what-is-generator-in-python-and-how-does-it-work-e6e0588785c3][What Is Generator in Python and How Does It Work ? - Medium]]