Snippets
Du code concis, avec une explication claire.
bz2: compresser en .bz2 avec bz2.open
Écrire et lire des flux .bz2 avec une bonne compression.
collections.ChainMap: fusionner dicts par priorité
Superposer plusieurs dictionnaires (ex: args > env > defaults) avec résolution par priorité.
calendar.monthrange: jours du mois et jour de départ
Obtenir le nombre de jours et le weekday du premier jour d'un mois.
ProcessPoolExecutor: CPU-bound et chunksize
Paralléliser des calculs CPU avec map et chunksize adapté.
ThreadPoolExecutor: as_completed et timeouts
Soumettre des tâches I/O et récupérer les résultats au fil de l'eau.
concurrent.futures.wait: FIRST_COMPLETED/FIRST_EXCEPTION
Attendre selon des conditions et récupérer les sets done/pending.
contextlib.closing: garantir la fermeture d'un objet
Utiliser closing pour des objets avec close() mais sans __enter__/__exit__.
configparser: lire et écrire un INI
Gérer une configuration .ini avec sections et types simples.
contextlib: créer un context manager
Gérer ouverture/fermeture de ressources avec @contextmanager.
contextlib.nullcontext: option sans effet
Fournir un context manager no-op pour simplifier le code conditionnel.
contextlib: ExitStack pour ressources multiples
Empiler dynamiquement plusieurs contextes et callbacks de nettoyage.
contextlib.redirect_stdout/redirect_stderr
Capturer les impressions d'un bloc dans un buffer pour test/log.