PyConFR 2024

Dev, cloud & sécu31 octobre – 3 novembre 2024Strasbourg, Université de Strasbourg (UFR de mathématique et d'informatique)15e édition

Conférence gratuite de l'AFPy : sprints les 31 octobre et 1er novembre, conférences et ateliers les 2 et 3 novembre. Environ 300 personnes (rapport de transparence) ; 364 inscrits et 280 badges pointés selon l'AG de l'AFPy. Trois plénières, toutes données par des femmes (choix délibéré). Édition prévue à Strasbourg depuis 2020, reportée par la crise sanitaire.

Une PyConFR de communauté, gratuite et militante : la qualité du code Python au quotidien (tests, ORM, migrations, packaging) et l'inclusion ont dominé un programme où l'IA générative est surtout abordée sous l'angle de la sobriété et des petits modèles spécialisés.

25 sessions résumées · 24 vidéos · mise à jour le jeudi 8 octobre 2026 · synthèse à compléter

Sources lues et limites de cette synthèse

Corpus : Programme officiel complet, 24 transcripts de vidéos Indymotion lus (3 plénières, 21 conférences) plus l'ouverture, la clôture et l'assemblée générale de l'AFPy, sur 50 vidéos publiées entre janvier et février 2025. S'y ajoutent le rapport de transparence du code de conduite (13 novembre 2024, avec un sondage de 100 répondants), une trentaine de pouets Mastodon publiés du 31 octobre au 5 novembre 2024, deux fils du forum discuss.afpy.org et les slides de deux speakers.

Limites : Retours participants très minces : aucun post LinkedIn ni article de blog post-événement trouvé, et les pouets Mastodon (mrjmad, jmny, Ash_Crow, mdk, petitlepton, Sarah Abderemane) se limitent souvent à annoncer la session suivie. La plupart des résumés reposent donc sur les transcripts automatiques, qui déforment des noms propres. Les ateliers, les sprints et les lightning talks ne sont pas documentés, et la conférence sur la covariance n'a pas été publiée (problème de son).

Synthèse globale

1. Une édition attendue depuis 2020, gratuite et portée par des bénévoles

Strasbourg devait accueillir la PyConFR dès 2020 ; l'édition a enfin eu lieu, accueillie gratuitement par l'UFR de mathématique et d'informatique (ouverture, AG de l'AFPy). Le format reste celui de la communauté : deux jours de sprints, deux jours de conférences et d'ateliers, entrée gratuite financée par les sponsors (PSF, EuroPython Society, Kraken, Alma, Entr'ouvert, Makina Corpus…). L'assemblée générale donne la mesure de l'effort : environ 364 inscrits pour 280 badges pointés, des sponsors plus rares (« pas de budget, on ne recrute pas »), une inflation d'environ 20 % sur la nourriture, 25 demandes de bourses pour 3 400 € accordés, et un résultat qui se jouera « sur un mouchoir de poche ». Côté participants, l'ambiance ressort surtout en creux sur Mastodon : « super ambiance » (SlowKat69), la file au food truck et la zone calme détournée pour des appels en haut-parleur (Ash_Crow).

2. Le cœur du programme : la qualité du code au quotidien

Le fil le plus dense de l'édition est très concret. Deux talks se répondent sur le problème N+1 des ORM (Roxane Bellot côté Django, Carmen Alvarez en comparant Django et SQLAlchemy), avec la même conclusion : rendre visibles les requêtes et les verrouiller par des tests. Le pass Culture montre comment migrer un schéma PostgreSQL en pleine journée grâce à deux branches Alembic et au linter Squawk. Philippe Gregoire plaide pour pytest et une couverture vue comme un plancher, Julien Lenormand rappelle par l'exemple d'une mission Python 2 que, sans tests, on ne peut rien porter. Le seul « TIL » relayé sur Mastodon vient d'ailleurs de ce registre (connection.queries, mdk).

3. Comprendre la machine : packaging, venv, imports, CPython

Plusieurs sessions démontent les mécanismes que l'on utilise sans y penser : ce que contient un virtualenv et ce qu'est une wheel (Denis Viviès), les finders et loaders du système d'import (Antoine Rozo), la nouvelle API sys.monitoring de Python 3.12 vue par un développeur JVM (Johannes Bechberger). La plénière de Françoise Conil élargit le sujet au packaging dans la recherche publique, chiffres à l'appui (110 000 pyproject.toml analysés), avec une réserve sur la dépendance à des outils portés par une seule personne ou financés par une levée de fonds (uv). Victor Stinner présente Python 3.13, dont mrjmad retient « le début de la fin du GIL ». Rust apparaît comme le moteur caché d'une partie de l'outillage (Ruff, uv, Polars, pydantic-core), présenté par Guillaume Fassot.

4. L'IA générative, abordée par la sobriété

Contrairement à beaucoup de conférences de 2024, l'IA reste ici périphérique et critique. Ines Montani défend en plénière l'idée de distiller les LLM en petits composants spécialisés, rapides et hébergés en interne, plutôt que de tout confier à un modèle de bout en bout ; petitlepton salue des slides « top notch ». Reynald Rivière et Camille Hascoët proposent une étiquette énergétique des approches, de « pas d'IA » à « LLM », et des techniques chiffrées de réduction (quantisation, pruning, distillation). Les deux talks convergent : mesurer d'abord, et choisir le plus petit outil qui fait le travail.

5. L'inclusion, sujet assumé par les organisateurs

Les trois plénières ont été confiées à des femmes, « choix délibéré » selon le rapport de transparence. Houleymatou Baldé ouvre la conférence en récusant l'injonction « il faut oser », Isra Chahrazed Goumiri décrit le « seau qui fuit » des carrières féminines, et Léa Coston relie sécurité psychologique et performance des équipes, un talk auquel Agnès Haasser renvoie dans le sien. L'organisation suit : garderie gratuite (peu utilisée selon l'AG), déjeuner PyLadies, aide aux propositions de talks pour les minorités. Les chiffres progressent lentement : 23 % d'oratrices en conférence (contre 10 % en 2018), environ 17 % de participantes estimées.

6. L'erreur et l'apprentissage comme sujets techniques

Une veine plus personnelle traverse le programme : la « tempête de boulettes » d'Agnès Haasser, talk le plus commenté de l'édition (« le contenu, le ton, l'humour et les excellents conseils », petitlepton ; « on fait tous des boulettes », Sarah Abderemane), la reconversion et la remise en question de Yann Bouvet (« jamais trop tard pour redevenir junior »), et le guide de Stefanie Molin pour faire sa première contribution open source. Le message commun : rendre les erreurs collectives et racontables plutôt que honteuses.

7. Tensions et critiques

  • Comportements en salle : le rapport de transparence relève deux incidents qualifiés de mineurs, dont une oratrice interrompue à plusieurs reprises par un homme du public ; plusieurs répondants au sondage décrivent des coupures de parole lors de talks donnés par des femmes. Ash_Crow déplore aussi, le dimanche après-midi, une remarque du public laissée passer au micro (« l'animation de salle ne devrait pas reposer sur les speakers »). L'AFPy en tire une règle pour la suite : rappeler en ouverture qu'une question est une question.
  • Sponsoring et climat : un participant a lancé en plein amphi un propos méprisant envers Gandi, sponsor principal, ce qui a entraîné un rappel de la charte (rapport de transparence).
  • Vidéos tardives et incomplètes : publication à partir de janvier 2025, indexation PyVideo fin mai 2025 seulement, et une conférence (covariance) perdue pour un problème de son (discuss.afpy.org).
  • Économie fragile : moins de sponsors, plus de demandes de bourses, peu de bénévoles en amont (AG).

8. Biais du corpus

Les retours de participants sont rares : une trentaine de pouets Mastodon, souvent limités à « je suis dans telle salle », aucun post LinkedIn ni billet de blog post-événement trouvé. La synthèse s'appuie donc surtout sur les transcripts automatiques des vidéos et sur des documents de l'organisation (rapport de transparence, AG), qui reflètent le point de vue des organisateurs. Les ateliers, les sprints et les lightning talks échappent entièrement au corpus.

Actions concrètes citées

  1. Compter ses requêtes ORM : select_related / prefetch_related côté Django, joinedload / selectinload côté SQLAlchemy, et verrouiller le résultat par un test assertNumQueries (Roxane Bellot, Carmen Alvarez).
  2. Supprimer une colonne en un seul déploiement grâce à deux branches Alembic « pre » et « post », lock_timeout court avec retries, index CONCURRENTLY et linter Squawk en CI (pass Culture).
  3. Distinguer visuellement les environnements (violet en local, orange en pré-prod, rouge en prod) et ne jamais rester seul face à un incident : une personne agit, une relit, une communique (Agnès Haasser).
  4. Packager même un petit projet de recherche : structure src/, pyproject.toml minimal, pip install -e, tags git annotés, TestPyPI avant PyPI (Françoise Conil).
  5. Mesurer avant d'optimiser une IA (CodeCarbon) et envisager quantisation, pruning, distillation ou un petit modèle fine-tuné avant un LLM ; « la meilleure façon de ne pas faire consommer nos IA, c'est de ne pas en utiliser » (Rivière, Hascoët).
  6. Utiliser le LLM pour prototyper et annoter, puis le distiller en composants petits, rapides et hébergés en interne (Ines Montani).
  7. Sans tests ni CI, impossible de migrer : « si tu n'as pas de tests tu ne peux pas porter ton application » (Julien Lenormand, encore en Python 2 en 2024).
  8. Pour contribuer à l'open source : partir des projets qu'on utilise, des sprints, de la doc et des vieilles issues ; « aucune contribution n'est trop petite » (Stefanie Molin).
  9. Installer la sécurité psychologique dans l'équipe (oser dire « hier, je n'ai rien fait » en daily) plutôt que de faire semblant de savoir (Léa Coston).
  10. En conférence, une question est une question, pas une remarque : le rapport de transparence demande de le rappeler dès l'ouverture, après des interruptions d'oratrices.

Session par session

Samedi 2 novembre

Keynote▶ vidéo + transcript

De villageoise à l'itWoman… Quelles actions pour faire de mon rêve TECH une réalité ?

Houleymatou Baldé

Retours : mrjmad (Mastodon), jmny (Mastodon)

  • Récit de parcours : orpheline dans un village du nord de la Guinée, scolarisée grâce à une cotisation du village, théâtre militant (excision, mariage précoce), puis diplômée à Lyon en 2016 ; aujourd'hui lead technique dans un éditeur lyonnais (transcript).
  • Chiffres cités sur scène : 16 % de femmes dans le développement, 50 % des femmes quittent l'informatique avant 35 ans, moins de 10 % des DSI sont des femmes.
  • Contre l'injonction « il faut oser », qui fait porter l'inégalité aux femmes : six leviers proposés (éduquer, responsabiliser, promouvoir, expérimenter, communiquer, inclure), dont réagir aux propos sexistes et nommer des femmes à des postes techniques de haut niveau plutôt que les pousser vers la gestion de projet.
  • Formule de fin : « Notre différence, c'est notre force. »
  • Réception : une keynote « à voir et écouter absolument » (mrjmad).

▶ Voir la vidéo ↗

Conférence▶ vidéo + transcript

Nouveautés de Python 3.13

Victor Stinner — Red Hat

Retours : mrjmad (Mastodon), mdk (Mastodon), jmny (Mastodon)

  • Free-threading (PEP 703), encore expérimental : démo Fibonacci sur 12 threads ramenée de 33,6 s à 14 s, mais mode plus lent en monothread. Retenu par mrjmad comme « le début de la fin du GIL ».
  • JIT expérimental « copy-and-patch » (PEP 744), désactivé par défaut : environ 1,5 fois plus rapide sur un crible d'Ératosthène.
  • Confort : messages d'erreur qui suggèrent de renommer un script masquant un module (random.py), nouveau REPL coloré avec historique multiligne, python -m random (mdk en a retenu le pierre-feuille-ciseaux).
  • Plateformes : WebAssembly passe au niveau de support 2, Android et iOS entrent au niveau 3.
  • Dette technique : suppression des « dead batteries » de la PEP 594 (cgi, crypt, nntplib…) et de 263 fonctions privées de l'API C.

▶ Voir la vidéo ↗

Conférence▶ vidéo + transcript

Comment et pourquoi (bien) tester en Python

Philippe Gregoire

  • Pourquoi tester : prouver la conformité (y compris en recette contractuelle), détecter les régressions, sécuriser les refactorings ; pyramide des tests et coût croissant vers le haut.
  • Couverture : 100 % sur l'unitaire, ou au minimum ne jamais faire baisser le taux sur du legacy. « Le 100% de coverage, c'est juste un minimum. »
  • pytest plutôt qu'unittest pour un nouveau projet : assert introspectif, fixtures avec scope (tmp_path, capsys), tests paramétrés, centaines de plugins.
  • Mocking : monkey patching contre injection de dépendances ; bouchonner les appels aux LLM, qui ne répondent « jamais deux fois la même chose ».
  • Au-delà des tests : typage, linting, scanners de secrets. Démo VS Code écourtée faute de temps.
  • Aucun retour participant trouvé : résumé tiré du seul transcript.

▶ Voir la vidéo ↗

Conférence▶ vidéo + transcript

IA, potion ou poison ?

Reynald Rivière, Camille Hascoët

  • L'IA comme pharmakon : distinguer l'« AI for green » (optimiser une logistique) de la « green AI » (éco-concevoir le modèle). Environ 90 % de la consommation d'une IA a lieu en production.
  • Constats : les papiers de recherche publient la performance, jamais la consommation ; en compétition, on double le CO2 pour quelques centièmes.
  • Étiquette énergétique des approches, de A+ (pas d'IA) à X (LLM), à mettre en regard de la criticité du cas d'usage. « La meilleure façon de ne pas faire consommer nos IA, c'est de ne pas en utiliser. »
  • Quatre techniques chiffrées : quantisation 32 → 8 bits (consommation divisée par 3), petit modèle fine-tuné (Phi-3 à 85 % contre 72 % pour Mistral en détection de toxicité), pruning, distillation (jusqu'à 96 % de taille en moins pour environ 3 points de précision).
  • Obsession de la mesure avec CodeCarbon. Résumé tiré du seul transcript, sans retour participant.

▶ Voir la vidéo ↗

Conférence

Covariance de type, contravariance et aspirine

Samuel de Framond

Retours : mdk (Mastodon), petitlepton (Mastodon), jmny (Mastodon)

  • Conférence longue sur la variance des types génériques en Python typé.
  • Le titre a tenu sa promesse : « #need aspirine » (mdk), qui relaie l'exemple piège du talk : est-il sûr d'ajouter un Fruit à une list[Banana] ?
  • petitlepton dit ajouter cette définition de la covariance « à celles de la statistique et de la physique ».
  • Pas de vidéo : l'enregistrement a souffert d'un problème de son et n'a pas été publié (Lucie Anglade, discuss.afpy.org, septembre 2025).

Conférence▶ vidéo + transcript

Je fais encore du Python 2 en 2024…

Julien Lenormand — Kaizen Solutions

  • Une mission « Python » acceptée en 2022 s'est révélée être du Python 2. Sondage en salle : environ 80 % en ont déjà fait, une dizaine de pourcents depuis moins d'un an.
  • Rappel historique : 2.7 en 2010, PEP 404 (pas de 2.8), fin de vie repoussée à 2020 ; adoption de Python 3 sous les 80 % encore en 2018 (JetBrains).
  • Poches de résistance : Ubuntu 18 supporté jusqu'en 2028, PyPy, ActiveState, le fork Tauthon ; 6 % des développeurs Python feraient encore du Python 2 (sondage JetBrains 2023).
  • Diagnostic : « si tu n'as pas de tests tu ne peux pas porter ton application ». Sans CI ni environnement maîtrisé, on reste prisonnier de son code.
  • Résumé tiré du seul transcript.

▶ Voir la vidéo ↗

Conférence▶ vidéo + transcript

Tempête de boulettes géantes – le retour

Agnès Haasser — Hashbang

Retours : petitlepton (Mastodon), Sarah Abderemane (Mastodon), Ash_Crow (Mastodon), mrjmad (Mastodon)

  • Point de départ : sa suppression accidentelle d'un index Elasticsearch d'un million d'enregistrements en 2018 (une ligne vide dans un fichier d'IDs), sans sauvegarde.
  • Sondage de 195 réponses : environ trois quarts des boulettes causent indisponibilité ou perte de données ; plus d'un tiers viennent d'interventions directes en prod.
  • Prévention : ne pas rester seul (revue, pair, « canard » humain), automatiser, couleur par environnement (rouge en prod), et une « barrière de potentiel de flemme » qui rend la prod pénible d'accès sans la rendre impossible.
  • Réponse à incident : « protéger, alerter, secourir », au moins trois rôles (agir, relire, communiquer), post-mortem factuel ; une boulette est rarement individuelle. « Ne restez pas toute seule avec votre boulette. »
  • Réception très chaleureuse : « le contenu, le ton, l'humour et les excellents conseils » (petitlepton) ; « on fait tous des boulettes, moi compris » (Sarah Abderemane) ; Ash_Crow relaie « les pires journées font les meilleures histoires ».

▶ Voir la vidéo ↗

Conférence▶ vidéo + transcript

Tout ce que vous ne vouliez pas savoir sur le DNS... en Python

Arthur Vuillard — Hashbang

Retours : jmny (Mastodon, simple mention)

  • Contexte : Le Bureau, bureau d'enregistrement coopératif lancé après le rachat de Gandi, avec un sprint pendant PyConFR (speaker).
  • Bases du DNS avec dnspython (A/AAAA, MX, CNAME, TTL, reverse DNS), puis une résolution itérative codée à la main de la racine au serveur faisant autorité, et un serveur DNS en nserver qui renvoie le titre du talk en cours.
  • Économie du nommage : un .fr coûte un peu moins de 6 € au registre, l'accréditation ICANN demande plus de 70 000 $ de trésorerie.
  • Vie privée et censure : blocage de sites par les résolveurs des FAI, recommandation d'un résolveur neutre en DoH ou DoT. « Demander une information sur un nom de domaine, ça en dit beaucoup sur la personne qui demande. »

▶ Voir la vidéo ↗

Conférence▶ vidéo + transcript

À la découverte de la communauté libre autour de l'outil de gestion Odoo

Virginie Dewulf — OCA, Pierre Verkest

Retours : Virginie Dewulf (speaker, Mastodon)

  • Fil rouge : l'informatisation d'un supermarché coopératif bruxellois (environ 4 000 membres) avec Odoo Community et les modules de l'OCA, par choix de coût, de maîtrise des données et de logiciel libre.
  • Open core : depuis la v9 (2015), Odoo réserve des fonctions à l'édition Enterprise ; l'OCA (Odoo Community Association) publie en LGPL ou AGPL.
  • Chiffres OCA : environ 1 400 contributeurs GitHub, 8 000 PR fusionnées en 2023, 238 dépôts, plus de 500 membres individuels en 2024 ; deux relectures obligatoires par PR, runbot, publication des modules sur PyPI.
  • Démo d'un module Odoo 18 ; les migrations entre versions restent « très compliquées », d'où le projet OpenUpgrade financé par l'OCA.
  • Virginie Dewulf avait annoncé venir de Bruxelles pour présenter la communauté (speaker).

▶ Voir la vidéo ↗

Conférence▶ vidéo + transcript

Optimizing SQL Queries in Django and SQLAlchemy: Tackling the N+1 Problem with ORMs

Carmen Alvarez — Genymobile

  • Démo sur 100 films : le chargement paresseux produit 101 requêtes, jusqu'à 301 sous Django et 227 sous SQLAlchemy pour la page complète.
  • SQLAlchemy en fait moins sur certaines relations grâce à l'identity map de la session.
  • Correctifs : select_related / joinedload pour le one-to-one et le many-to-one, prefetch_related / selectinload pour le many-to-many ; on retombe à 1 ou 2 requêtes, au prix de données dupliquées.
  • Tests anti-régression : django_assert_num_queries (pytest-django) et get_recorded_queries (Flask-SQLAlchemy).
  • « Les ORM sont un peu magiques […] mais cette magie peut aussi poser problème » (trad.). Résumé tiré du seul transcript.

▶ Voir la vidéo ↗

Conférence▶ vidéo + transcript

Python 3.12's New Monitoring and Debugging API

Johannes Bechberger — SAP

  • Un développeur OpenJDK écrit un débogueur Python de zéro : d'abord sys._getframe(), puis sys.settrace, appelé à chaque ligne et coûteux.
  • Cœur du talk : PEP 669 (sys.monitoring), avec identifiants d'outils, événements activables globalement ou par fonction, retour DISABLE (utile pour la couverture) et instrumentation du bytecode.
  • Benchmark : settrace multiplie le temps d'exécution par 3,5 en moyenne (jusqu'à 12), contre environ 20 % de surcoût avec sys.monitoring sans handler de ligne.
  • PyCharm et VS Code l'utilisent déjà, pas encore pdb. Résumé tiré du seul transcript.

▶ Voir la vidéo ↗

Conférence▶ vidéo + transcript

Rust pour les développeurs Python : Avantages et intégration

Guillaume Fassot

  • Thèse : Rust en back-end, Python en front-end, deux langages aux forces complémentaires (ownership et borrow checker, sans ramasse-miettes).
  • L'écosystème Python s'écrit déjà en Rust : Ruff, uv, Polars, pydantic-core. Benchmark maison : pas d'écart net entre Polars et pandas sous 1 Go, Polars nettement devant au-delà ; préférer Parquet au CSV.
  • Intégration recommandée via PyO3 et maturin ; démo d'un Fibonacci 25 fois plus rapide qu'en Python pur.
  • Freins assumés : courbe d'apprentissage et sévérité du compilateur. « Si vous voulez écrire un POC avec Rust, bon courage quand même. » Résumé tiré du seul transcript.

▶ Voir la vidéo ↗

Conférence▶ vidéo + transcript

Il n'est jamais trop tard pour redevenir junior

Yann Bouvet — Shodo

  • Avec 5 ans d'expérience, il rate un entretien où on le juge « trop junior » faute de pratiquer le TDD : « un parpaing de lucidité ».
  • Méthode d'apprentissage : demander du feedback, trier les ressources selon fiabilité et accessibilité, trouver « ses experts » un peu en avance (meetups Python et Software Crafters à Lyon), pratiquer pair et mob programming.
  • Objectifs à trois horizons (1 à 2 ans, 6 mois, une demi-journée), relecture active à 24-48 h : il y reconnaît après coup la roue de Deming (PDCA).
  • Aujourd'hui « relais craft » en mission (event storming, TDD en mob). Résumé tiré du seul transcript.

▶ Voir la vidéo ↗

Conférence▶ vidéo + transcript

Mettre à jour le schéma d'une vaste base de données sans downtime et sans stress

Corentin Normant — pass Culture, Damien Ramelet — pass Culture

  • Contexte pass Culture : une quarantaine de développeurs, une mise en production par semaine, environ 10 millions de requêtes HTTP par jour, stack Flask, SQLAlchemy, Alembic et PostgreSQL.
  • Deux branches Alembic : « pre » (compatible avec le code en production) avant le déploiement, « post » après ; une colonne se supprime en un seul déploiement, pratiqué depuis un an et demi.
  • Verrous : lock_timeout court avec 30 retries, CREATE INDEX CONCURRENTLY, contraintes NOT VALID validées après déploiement, mises à jour massives par lots d'environ 1 000 lignes.
  • Linter Squawk en pre-commit et en CI, job qui teste upgrade puis downgrade.
  • « On passe chaque semaine des migrations en production, en pleine journée, sans downtime et sans stress. Presque. » Résumé tiré du seul transcript.

▶ Voir la vidéo ↗

Conférence▶ vidéo + transcript

Zero Python

Dorian Turba, Karine Bauch

  • Outil né en école d'ingénieurs pour enseigner l'algorithmique en Python sans enseigner Python : len, range, sorted, les méthodes, les imports, for ou try sont interdits.
  • Il s'appuie sur l'AST pour détecter et retirer les éléments interdits, exécuter le reste et produire des rapports ; il a servi à corriger 600 programmes de 150 étudiants.
  • Effet de bord assumé : quasi aucun code public n'existe sous ces contraintes, donc ChatGPT échoue (il réutilise len ou contourne par __len__, aussi bloqué).
  • Puzzle joué avec la salle : ajouter 4 à [1, 2, 3] sans append. Résumé tiré du seul transcript.

▶ Voir la vidéo ↗

Conférence▶ vidéo + transcript

La mécanique des imports

Antoine Rozo

  • Démo en notebook, partie de l'envie d'« importer un PNG » pour un interpréteur du langage Piet.
  • Bases : importlib.import_module, cache sys.modules, sys.path qui accepte des zips. « Souvent quand on en vient à manipuler le sys.path c'est qu'on fait une connerie. »
  • Finders et loaders : find_spec, ModuleSpec, exec_module, path_hooks, meta_path.
  • Détournements ludiques : import depuis un .tar.gz, un « Python++ » avec x++, des modules en ROT13, un finder qui fait pip install à la volée. Résumé tiré du seul transcript.

▶ Voir la vidéo ↗

Keynote▶ vidéo + transcript

Recherche des bonnes pratiques de packaging

Françoise Conil — CNRS (LIRIS)

Retours : Françoise Conil (speaker, Mastodon et slides)

  • Point de vue de la recherche publique, où la moitié des logiciels ont 2 à 5 contributeurs : packager sert la distribution et la reproductibilité ; éviter sys.path.insert.
  • Processus minimal : structure src/, pyproject.toml minimal, pip install -e.
  • Pièges : nom installé contre nom importé, normalisation des versions, tags git annotés (l'interface GitHub crée des tags légers qui ont cassé un plugin setuptools), TestPyPI avant PyPI, suppression de version irréversible.
  • Étude de 110 000 pyproject.toml fin 2023 : setuptools domine (environ la moitié), puis Poetry ; Flit, Hatch et PDM reposent surtout sur une personne. Réserve sur uv (financé par une levée de fonds) et rappel du passage d'Anaconda au payant.
  • Slides publiées par la speaker le 22 novembre 2024.

▶ Voir la vidéo ↗

Dimanche 3 novembre

Keynote▶ vidéo + transcript

Reality Is Not an End-to-End Prediction Problem: Applied NLP in the Age of Generative AI

Ines Montani — Explosion

Retours : petitlepton (Mastodon), jmny (Mastodon, simple mention)

  • Thèse : utiliser le LLM pour prototyper et aider à annoter, puis le distiller en composants petits et spécialisés (modulaires, rapides, hébergés en interne), avec un humain dans la boucle (spaCy, Prodigy, spacy-llm).
  • Cas S&P Global : 8 pipelines en production, précision jusqu'à 99 %, modèles de 6 Mo, environ 16 000 mots par seconde.
  • « Refactorer » les données comme le code : séparer la logique métier de ce qui relève de la langue ; le RAG est flexible mais monolithique.
  • Image du knocker-upper : on l'a remplacé par le réveil, pas par une machine à frapper aux fenêtres. « You don't want to build a window knocking machine, you want to build an alarm clock. »
  • Réception : « de belles slides », une présentation « top notch » (petitlepton, trad.).

▶ Voir la vidéo ↗

Conférence▶ vidéo + transcript

Getting Started with Open Source Contributions

Stefanie Molin — Bloomberg

  • Mainteneuse de numpydoc : pas besoin d'être expert, les débutants voient les pièges que les experts ne voient plus.
  • Trouver quoi faire : lister les projets qu'on utilise, filtrer par licence, activité, taille, stack et accès au dépôt.
  • Cinq stratégies graduées : sprints, exemples de documentation, issues étiquetées (et vieilles issues, les labels « easy »/« hard » sont subjectifs), correction de bug, nouvelle fonctionnalité (son hook pre-commit lui a valu d'être invitée comme core developer).
  • Commenter l'issue avant de commencer, rester patient avec des mainteneurs bénévoles. « Aucune contribution n'est trop petite » (trad.). Résumé tiré du seul transcript.

▶ Voir la vidéo ↗

Conférence▶ vidéo + transcript

Les gens ne savent pas ce qu'ils font, la plupart du temps !

Léa Coston

Retours : mrjmad (Mastodon, simple mention), Agnès Haasser (renvoi depuis son talk)

  • Développeuse reconvertie, elle constate que chaque équipe croit connaître « la bonne manière », jamais la même : « la plupart des gens, la plupart du temps, ne savent pas ce qu'ils font, et font juste comme si ».
  • Les dailies où l'on gonfle son activité ne relèvent pas de la paresse mais de peurs interpersonnelles ; oser dire « hier, je n'ai rien fait » a révélé une surcharge cognitive et des tickets trop gros.
  • Appui sur la sécurité psychologique (Amy Edmondson, The Fearless Organization) : ni gentillesse ni complaisance, mais « trouver des solutions et pas des boucs émissaires ».
  • Déconstruction du mythe du développeur génial et solitaire ; les soft skills sont des compétences à évaluer autant que la technique.
  • Agnès Haasser y renvoie explicitement dans son propre talk sur les incidents.

▶ Voir la vidéo ↗

Conférence▶ vidéo + transcript

Petit manuel de déminage de l'ORM Django

Roxane Bellot

Retours : mdk (Mastodon)

  • L'ORM cache la base, donc les problèmes de performance sont invisibles : observer avec connection.queries (en DEBUG=True), un helper dans son PYTHONSTARTUP, la Django Debug Toolbar. mdk en a fait son « TIL ».
  • Laziness et cache des QuerySets : savoir ce qui déclenche une requête (first(), get(), list()) et quand le _result_cache est vidé.
  • len() contre .count(), if qs contre .exists() : aucun n'est meilleur dans l'absolu, cela dépend de l'usage des données ensuite.
  • N+1 : select_related pour une relation simple, prefetch_related pour les relations multiples, annotate pour un simple compte.
  • Tests avec CaptureQueriesContext et assertNumQueries. « Le nombre de requêtes c'est qu'un indicateur » : dans le doute, on mesure.

▶ Voir la vidéo ↗

Conférence▶ vidéo + transcript

Faire du gRPC simplement avec Django

Léni Gauffier, Adrien Montagu

  • Contexte : découper un monolithe en services avec de gros payloads (rapports PDF de 90 à 110 pages). Comparaison REST, WebSocket, event-driven et gRPC (HTTP/2, Protobuf, contrat obligatoire).
  • Présentation de la bibliothèque django-socio-grpc : ProtoSerializers et services à la manière de DRF, génération des .proto (à vérifier en CI avec --check).
  • Gains annoncés : requête front de 2 s à 1,4 s ; HTTP classique et gRPC peuvent cohabiter pour migrer progressivement.
  • Côté web, proxy Envoy requis et streaming serveur seulement. Un seul orateur audible dans la vidéo ; résumé tiré du seul transcript.

▶ Voir la vidéo ↗

Conférence▶ vidéo + transcript

Qu'est-ce qu'il y a dans un virtualenv?

Denis Viviès — Foodles

  • activate ne fait que placer venv/bin en tête du PATH ; en cas de doute, appeler directement venv/bin/python.
  • Anatomie d'un venv (pyvenv.cfg qui change sys.prefix, site-packages), puis recréation d'un venv en bash en suivant EnvBuilder et ensurepip.
  • Une wheel est un zip standardisé : décodage de son nom (le t du free-threading 3.13), dist-info, front-end et back-end de build.
  • Tour des outils (pyenv, pipx, pip-tools, Poetry, pex, uv, utilisé en production chez Foodles depuis peu). « Finalement installer des packages ça ressemble juste à faire un unzip et à faire un move. » Résumé tiré du seul transcript.

▶ Voir la vidéo ↗

Conférence▶ vidéo + transcript

The Leaking Bucket: Women in Tech

Isra Chahrazed Goumiri

Retours : mrjmad (Mastodon, simple mention)

  • La métaphore du seau qui fuit : environ 20 % de femmes dans les STEM en France, puis des départs à chaque étape (études, première année, mi-carrière), jusqu'à 3 % aux postes de direction (chiffres cités sur scène).
  • Causes avancées : jouets genrés, stéréotypes, manque de modèles et de mentors, conciliation des temps de vie.
  • Leviers : s'entraider et s'auto-promouvoir, politiques d'entreprise (congés, horaires flexibles), communautés comme PyLadies, ateliers gratuits pour enfants et éducateurs.
  • Questions-réponses nourries sur le harcèlement et les questions illégales en recrutement. Résumé tiré du transcript ; talk court, de l'aveu même de l'oratrice.

▶ Voir la vidéo ↗

Conférence▶ vidéo + transcript

What Streamlit Can and Can't (or Shouldn't) Do

Yuichiro Tachibana

Retours : mrjmad (Mastodon, simple mention)

  • Principe clé : le script est réexécuté de haut en bas à chaque interaction, sans callbacks ; mise en page et thème imposés, une contrainte qui simplifie.
  • Bons cas : UI dynamique ou conditionnelle, visualisation de données (un uploader CSV avec tableau et graphique en une quinzaine de lignes), tableaux de bord rafraîchis.
  • Limites : grosses pages, flux par polling, sources événementielles, interfaces riches type glisser-déposer ; pour une UI posée sur une seule fonction, Gradio est jugé plus adapté.
  • « Streamlit vous donne facilement une UI/UX quatre étoiles, mais vous prive d'une UI/UX cinq étoiles sur mesure » (trad.). Résumé tiré du transcript.

▶ Voir la vidéo ↗

Sessions sans retour trouvé (33)

  • Teaching Children Python – What Works? (Mykalin Jones, vidéo)
  • Wagtail : un CMS puissant pour les sites web modernes (Thevenel Joazard)
  • Easy Service to Service Communication Using Pydantic Models (Michal Korbela, vidéo)
  • Garantir la robustesse du CI/CD des BDD relationnelles avec SQLAlchemy et Alembic (Léo Ecrepont, vidéo)
  • Anatomy of a Python OpenTelemetry instrumentation (Riccardo Magliocchetti, vidéo)
  • Pythonade – Humour en Python (Melcore, vidéo)
  • Programming and Philosophy: Beyond the Code (Lorenzo Mele, vidéo)
  • Pathlib, mangez-en ! (HS-157, vidéo)
  • Quelques challenges techniques rencontrés sur l'auto instrumentation (Christophe Papazian)
  • Sparse Dataframes, a Memory Must (Michel Klüger, vidéo)
  • Introduction à l'apprentissage automatique avec scikit-learn (Pénélope Gittos, vidéo)
  • Duckdb for Data Scientists (Sara Iris Garcia, vidéo)
  • Python et Kedro au service de l'agriculture de précision (Flavien Lambert, Paul Arnaud, vidéo)
  • Intégrer un CMS aux applications Django avec Wagtail (Darko Stankovski, vidéo ; simples mentions Mastodon de mrjmad et Ash_Crow)
  • Une application versionnée automatiquement (David Rigaudie, vidéo)
  • Dédé ! Des dés aux données (Antoine Rigoureau, vidéo)
  • Impostor Syndrome in Tech (Paweł Zajączkowski, vidéo)
  • Confidentialité des bases de données médicales avec synthcity (Clément Benoist, vidéo)
  • Retour d'expérience : on a créé notre SaaS avec le CMS Wagtail (SebCorbin, Tristan Benier ; simple mention Mastodon d'Ash_Crow)
  • SLM – School Library Management (Georges Khaznadar, vidéo)
  • Une stack ML complète avec Kedro et MLflow (Anis Smail, vidéo)
  • Visual Data Storytelling with Blender and Python (Neeraj Pandey, vidéo)
  • Vos variables de configurations, le menu Rougail - Tiramisu (Emmanuel Garette)
  • Django FTL: Resolving Bottlenecks on the Path to High Performance (Maxim Danilov, vidéo)
  • Python et éducation : bien, mais peut mieux faire… (Claude Simon)
  • Créez une app mobile hybride avec Turbo Native et Strada (Thierry Chappuis)
  • Python WebServer : du WSGI à ASGI (Guillaume Fassot, vidéo)
  • Django-Oscar, retour d'expérience sur un site marchand en Python (Julie Rymer, vidéo)
  • DBnomics : un agrégateur de données économiques en Python (Christophe Benz, vidéo)
  • Lightning talks « C'est vous qui choisissez ! »
  • Ateliers (OpenTelemetry, pandas, animation de communauté, Wagtail, web app data science, Make Open Data, jeux vidéo, microservices Flask, HARP Proxy)
  • Sprints des 31 octobre et 1er novembre (dont traduction de la documentation Python et Le Bureau)
  • Déjeuner PyLadies

Sources