Snippets

Du code concis, avec une explication claire.

python

bz2: compresser en .bz2 avec bz2.open

Écrire et lire des flux .bz2 avec une bonne compression.

#bz2#compression#stream
python

collections.ChainMap: fusionner dicts par priorité

Superposer plusieurs dictionnaires (ex: args > env > defaults) avec résolution par priorité.

#collections#config
python

calendar.monthrange: jours du mois et jour de départ

Obtenir le nombre de jours et le weekday du premier jour d'un mois.

#calendar#monthrange#dates
python

ProcessPoolExecutor: CPU-bound et chunksize

Paralléliser des calculs CPU avec map et chunksize adapté.

#processpool#cpu
python

ThreadPoolExecutor: as_completed et timeouts

Soumettre des tâches I/O et récupérer les résultats au fil de l'eau.

#threadpool
python

concurrent.futures.wait: FIRST_COMPLETED/FIRST_EXCEPTION

Attendre selon des conditions et récupérer les sets done/pending.

#wait
python

contextlib.closing: garantir la fermeture d'un objet

Utiliser closing pour des objets avec close() mais sans __enter__/__exit__.

#contextlib#closing#resources
python

configparser: lire et écrire un INI

Gérer une configuration .ini avec sections et types simples.

#configparser#ini#config
python

contextlib: créer un context manager

Gérer ouverture/fermeture de ressources avec @contextmanager.

#contextlib#contextmanager
python

contextlib.nullcontext: option sans effet

Fournir un context manager no-op pour simplifier le code conditionnel.

#contextlib#nullcontext#optional
python

contextlib: ExitStack pour ressources multiples

Empiler dynamiquement plusieurs contextes et callbacks de nettoyage.

#contextlib#exitstack
python

contextlib.redirect_stdout/redirect_stderr

Capturer les impressions d'un bloc dans un buffer pour test/log.

#contextlib#stdout#stderr