Short talk
Tout ce dont votre package a besoin
Joseph Barbier
Room B421 − Saturday, November 1, 2025 at 10:30 AM − 25 min
Un bon package inspire confiance. Il facilite les contributions. Il s’installe sans surprise. Et surtout, il donne envie d’être utilisé.
Créer un bon package Python, ce n’est pas seulement écrire du bon code. C’est aussi penser à tout ce qui l’entoure : les tests, la documentation, l’automatisation, la gestion des dépendances, etc.
Dans cette présentation, on verra ensemble tout ces choses primordiales dans les packages Python mais qui ne sont pas du Python. On parlera de :
- Comment ne jamais commit une erreur
- Comment tester dans les meilleures conditions
- Créer la meilleure documentation possible
- Gestion des dépendances et des environnements
- Configuration du
pyproject.toml
Et pour aller plus loin, un template complet et prêt à l’emploi sera partagé.
Documenter son projet avec Sphinx
Françoise Conil
Room C436 − Saturday, November 1, 2025 at 10:30 AM − 25 min
Sphinx est le logiciel de documentation historique de la communauté Python. Peu médiatisé, il est très utilisé avec plus de 60 000 projets sur GitHub et très riche. La présentation explique comment démarrer et construire sa documentation de logiciel avec cet outil.
Développement de CPython
Victor Stinner
Room B003 − Saturday, November 1, 2025 at 10:30 AM − 25 min
Découvrons ensemble comment le projet CPython est développé : tickets, pull requests, reviews, core developers, etc. Ce projet a plus de 30 ans et a plus de 1,6 millions de lignes de code. Nous aborderons aussi bien l'aspect technique que l'aspect humain.
Empowering Science Education with Python: Lessons from a Low-Resource Nigerian Junior Secondary School
Okoro Nosakhare
Room B316 − Saturday, November 1, 2025 at 10:30 AM − 25 min
This talk shares how Python was used to enhance science education in a Nigerian secondary school. With limited internet and resources, we applied Python in hands-on projects to teach scientific thinking. Attendees will gain strategies for engaging learners through simple code-based experiments—even in challenging educational settings.
In this session, I will share how Python is being used to transform science education at Edo National Junior College, Iguobazuwa, Nigeria. With minimal technology and no formal programming background among students, we integrated Python into junior science instruction to improve engagement, comprehension, and real-world problem-solving.
Our students used Python to:
- Simulate plant growth under various environmental conditions using conditional logic
- Create basic data visualizations from local science experiments using
matplotlib
- Analyze temperature or motion data using simple Python code and offline tools like Thonny and Jupyter Notebook
To make this work in a low-resource environment, we adopted a peer-assisted, project-based learning model. We treated Python not just as a programming skill, but as a lens to understand scientific processes—such as cause and effect, measurement, and experimentation.
This talk will cover:
- Our step-by-step integration of Python into science lessons
- The learning materials and tools we used offline
- The impact on student interest and STEM outcomes
- Challenges faced and how we overcame them
- How this model can be adapted by other educators or community groups globally.
Whether you're an educator, community organizer, or developer, this session offers a practical example of how Python can democratize science learning and empower students, especially in underserved regions.
Doc Busters
Sarah Haïm-Lubczanski,
Pauline Rambaud
Room B003 − Saturday, November 1, 2025 at 12:00 PM − 25 min
Incompréhensible ? Interminable ? Introuvable ? Obsolète ? Et en plus, vous n’avez pas trouvé la réponse pour débugger votre code ?
Bienvenue dans le monde cauchemardesque de la documentation mal faite. Embarquez avec nous, dans un voyage au cœur des pires pratiques documentaires.
Comment allons-nous nous en sortir ? Comment améliorer ce voyage, ou les prochains voyages dans la doc ?
From Fields to Code: Open-Source Python Tools for European Farmers
Felipe Arruda Pontes
Room B316 − Saturday, November 1, 2025 at 12:00 PM − 25 min
Farmers across Europe are using Python-powered tools to fight pests, conserve resources, and monitor livestock—solutions that must work in a wide range of places, from vast crop fields to roaming animal herds, often with unreliable internet connectivity.
The OpenAgri project (an EU Horizon-funded project, now part of Linux Foundation’s AgStack) developed these building blocks for Agricultural Digital Solutions with Django, FastAPI, supporting both Edge and Cloud deployments. We’ll show:
- How Swagger, JSON-LD, and a common data model help drones talk to tractors (yes, really!);
- Why edge computing matters when your infrastructure is a barn;
- Improving sustainability: from reducing water usage during irrigation to minimising tractor fuel consumption;
- The missing pieces: auto-mapping DB models to agricultural ontologies.
Come for the farming stories, stay for the Python-powered agritech solutions.
Protéger les secrets de vos clients
David Rigaudie
Room C436 − Saturday, November 1, 2025 at 12:00 PM − 25 min
La gestion des secrets est un processus qui n'est pas à négliger, une divulgation de ces informations vous expose à de grosses problématiques.
Il est important de prendre en considération ce point, d'autant plus quand ce sont des secrets de vos clients !
Je vais vous parler de la mise en place d'un coffre-fort numérique vault dans une application, afin de stocker de manière sécurisée les mots de passe de mes clients. Tout cela en isolant leur donnée des autres clients bien entendu.
Nous parcourrons la configuration vault et sa mise en œuvre dans une application Python de manière détaillée afin que vous puissiez la reproduire.
Le duo comique accélère une suite de tests Django/Pytest
Agnès Haasser,
Arthur Vuillard
Room B421 − Saturday, November 1, 2025 at 12:00 PM − 25 min
Le TDD et l'intégration continue, c'est cool ! Mais ça devient vite pénible quand on doit attendre plusieurs minutes voire dizaines de minutes pour jouer tous nos tests.
Nous vous proposons un petit tour d'horizon de ce qui ralentissait nos suites de tests Django, et de ce que nous avons mis en place pour accélérer tout ça. Vous pourrez repartir avec quelques idées à essayer chez vous.
Tout cela sur un ton léger, parce qu'on n'est pas venu·e·s ici pour souffrir, OK ?
Accro au café ? Prenez des photos et suivez l'utilisation de la machine du bureau !
Rémi Cardona
Room B003 − Saturday, November 1, 2025 at 1:30 PM − 25 min
Le café est au code ce que le gras est à la vie.
Un jour j'ai découvert le menu maintenance de la machine à café du bureau. Un monde merveilleux de statistiques d'utilisation s'est ouvert à moi. Que boivent mes collègues ? En quelles quantités ? Y a-t-il des jours plus caféinés que d'autres ? Tant de questions, mais il me faut d'abord acquérir les données La machine n'ayant pas de connectique, cela se fera par photo et OCR.
Pour le fun, pour apprendre, pour me changer les idées, je me suis lancé dans un projet perso from scratch. Dans ma vie pro, je fais du Python depuis 2009 et un peu de Django depuis 2018. Mais je n'ai jamais fait de Django sur un projet vide, j'ai toujours travaillé sur des projets existants, parfois énormes (800k+ lignes).
Et si je me lançais dans mon propre projet from scratch et que j'en profitais pour découvrir plein de nouvelles choses, pour confronter la page blanche ? Poetry, uv ? Django-Ninja ? Et les nouveautés de Python 3.13+, Django 5.2+ ?
Enfilez votre plus bel impair et lunettes noires, et venez espionner vos collègues avec moi !
Running Every Street in Paris with Python and PostGIS
Vinayak Mehta
Room B316 − Saturday, November 1, 2025 at 1:30 PM − 25 min
In 2006, Tom Murphy started a project of running every street in Pittsburgh (over 1,500 miles in total). He finished the project in 2022, covering 3661 miles in 269 runs. In this talk, we'll look at how we can do the same in our cities and track our progress, with Paris as an example.
We'll explore how to extract street networks from OpenStreetMap, process GPS tracking data from running activities, and build a system to track progress toward covering every street in a city. We'll dive into challenges like handling GPS inaccuracies, matching runs to streets, and maintaining a database of covered streets.
This talk is aimed at Python developers interested in working with geospatial data using Python libraries like osmnx
, shapely
, geopandas
, and storing it for efficient querying in Postgres and PostGIS.
Comment gérer un changelog facilement quand on est plusieurs ?
Cyrille Pontvieux
Room C436 − Saturday, November 1, 2025 at 1:30 PM − 25 min
Gérer un changelog utile pour les utilisateurs·trices d'une application/bibliothèque n’est pas facile.
Les messages de commit sont à destination des développeurs·euses et peuvent difficilement être utilisés comme changelog cohérent pour une version. Mettre à jour un fichier unique CHANGELOG.md
semble une solution simple… sauf quand on commence à travailler à plusieurs, avec des branches, rebases, merges et autres conflits possibles.
Je propose d’expliquer une solution que j’ai mise en place dans un outil en Python (ezchlog [easy changelog]
) qui permet de résoudre cette problématique en utilisant de petits fichiers changelog
qui se fusionneront dans le fichier général quand on le veut (lors d’une version par exemple).
L’outil est en Python 3.9+, typé, testé avec une couverture de +90% et entièrement configurable.
P.S. : J’ai également développé le même outil en Rust et je peux brièvement parler des différences de développement si ça intéresse du monde.
Travailler avec des Data Lakehouses en Python, sans Spark
Romain Clement
Room B421 − Saturday, November 1, 2025 at 1:30 PM − 25 min
Beaucoup d'équipes utilisent Spark pour traiter de petites et moyennes quantités de données, complexifiant inutilement leurs projets. Cette présentation montre comment utiliser les formats Data Lakehouse (Delta Lake, Apache Iceberg) directement en Python, sans Spark.
Nous verrons comment obtenir les fonctionnalités avancées (tables ACID, historique des versions) avec des bibliothèques Python telles que delta-rs
et pyiceberg
, ainsi que des intégrations comme DuckDB.
Cette conférence s'adresse aux ingénieurs data, ingénieurs ML et data scientists souhaitant simplifier leur stack technique sans perdre les fonctionnalités essentielles.
Gérer ses dépendances Python sans douleur avec uv
Anaïs Gatard
Room B421 − Saturday, November 1, 2025 at 3:00 PM − 25 min
Comment j’ai nettoyé mes projets Python avec uv.
Je gérais mes dépendances avec venv, puis avec pipenv. Quand on a commencé à parler de uv, j'ai pensé « oh non, encore un nouvel outil qu'il va falloir apprivoiser ».
Et puis via un tuto, j’ai découvert uv, un gestionnaire d’environnement et de dépendances codé en Rust, rapide, simple, et diablement efficace. Et je me suis dit qu'il fallait que j'en parle.
Dans ce talk, je vous propose un retour d'expérience concret : comment je suis passée à une gestion propre et reproductible de mes projets. On parlera de uv init
, uv add
, uv sync
, de nettoyage avec pipdeptree
, et même de comment intégrer uv run
dans des tâches Cron.
Ce que vous apprendrez :
- Pourquoi uv surpasse les outils traditionnels (pip, venv, pip freeze, etc.)
- Comment fonctionne uv et pourquoi il est aussi rapide
- Comment migrer un projet existant proprement
- Comment organiser vos dépendances avec des groupes (dev, test, doc, etc.)
- Comment uv peut simplifier vos workflows (même en prod ou en CI)
Un talk pratique, orienté solution, pour les développeur·ses Python qui veulent passer à un outil moderne sans se noyer dans les détails techniques de Rust.
Pas besoin d’avoir déjà utilisé uv pour suivre ce talk.
htmx et Django : retour d’expérience 3 ans plus tard
Céline Martinet Sanchez
Room B003 − Saturday, November 1, 2025 at 3:00 PM − 25 min
Alors que la bibliothèque annonce avoir atteint un stade de maturité, j'aimerais partager avec vous un bilan de notre utilisation.
Nous avons intégré HTMX dans notre monolithe Django il y a trois ans. Aujourd'hui, notre application comptabilise plus de 100 000 requêtes HTTP par jour. Entre l'architecture naïve des débuts et son aspect actuel, nous avons éprouvé l'outil pour l'adapter à nos propres contraintes.
Venez découvrir notre parcours, comment tester HTMX avec Pytest ainsi que quelques unes de nos bonnes recettes !
Leveraging the Power of Python for Moving Target Localization from Airborne Radar Systems
Subhosri Basu
Room B316 − Saturday, November 1, 2025 at 3:00 PM − 25 min
Over the past few years, deep learning models have been rapidly used for radar target detection (RTD), which has both civilian and military applications. Since signals are represented using complex numbers, using a real valued neural network fails to fully exploit the correlation between the real part and the imaginary part. This talk explores the research of introducing complex-valued (CV)—convolutional neural network (CNN) model for target direction of arrival (DOA) and velocity estimation.
The session will begin with an overview of how the problem can be formulated—as either a classification or regression task. It will then explore the role of CV-CNN in target localization, discussing their efficiency in handling complex valued input data. Special focus will be given to multistep training strategy which helps in improving the generalization capability of the network. The discussion will extend to evaluation and comparison with real valued CNNs based on performance metrics. Practical insights will be shared on how to generate training data which incorporates effects similar to real-world measurement, such as array imperfections, inhomogeneous clutters and low signal-to-noise ratio (SNR). The session will conclude by addressing future advancements, and recommendations for further research.
By the end of the session, you will gain a deeper understanding of how Python and Pytorch can be used to simulate realistic radar signals, and the application of complex valued networks in radar signal processing. Whether you're coming from a deep learning, signal processing, or applied research background, this session will give you new tools and perspectives on working with complex-valued data in Python.
Anxiété – Peut-on monitorer sa santé mentale ?
Jeffd
Room C436 − Saturday, November 1, 2025 at 3:00 PM − 25 min
Avec OpenTelemetry on s'assure du bon fonctionnement de nos serveurs mais comment veille t'on sur la santé des humains ?
Le sujet est sensible et rarement traité au delà du syndrome de l'imposteur.
Pourtant reconnaitre les signes d'anxiété ça peut être utile.
C'est donc un petit retour d’expérience sur ce trouble : analyser la situation, suivre l'évolution et des pistes de solution.
Conférence non-technique (mais avec des analogies de développement web). Contient quelques petits morceaux de sciences humaines (sociologie/psychologie).
Construire un type frozendict (dictionnaire immutable)
Antoine Rozo
Room B003 − Saturday, November 1, 2025 at 3:30 PM − 25 min
Dans sa bibliohèque standard, Python propose des collections mutables (listes, ensembles, dictionnaires) comme immutables (tuples, frozensets), mais pas de dictionnaires immutables (inaltérables après leur création).
Voyons comment on peut alors tordre Python pour créer notre propre frozendict (dictionnaire immutable) en pur Python.
Importance of Simulation in the Age of AI
Jeyashree Krishnan,
Ajay Mandyam Rangarajan
Room B316 − Saturday, November 1, 2025 at 3:30 PM − 25 min
Over the last decades, scientists and engineers have developed models using two seemingly opposite paradigms: mechanistic first-principles (PDEs, ODEs) and purely data-driven machine learning (black-box methods). Too often, most of us are exposed to only one side of this. In reality, there exists a more continuous spectrum of techniques that lie somewhere between these extremes.
In the age of AI, numerical simulations are more important than ever, not only as tools for prediction, but as generators of understanding, data, and priors that guide and constrain machine learning models. Simulations remain indispensable for extrapolation, safety-critical systems, demonstrating explainability in addition to helping explore regimes where data is sparse or expensive to obtain.
This talk illustrates this well-known spectrum, from physics-based models through hybrid approaches like reduced-order models and physics-informed neural networks, to black-box learning, offering an overview of these methods using an intuitive and fully reproducible Python example: the damped spring–mass system and other examples from different domains.
Rather than proposing a new theory, this session offers a clear and practical way to understand and visualize this continuum of physics modeling approaches, helping practitioners choose and implement the right method for their problem.
This talk explores the continuum of modeling techniques for dynamical systems, framed as a spectrum:
- Mechanistic models (solving ODEs, PDEs)
- Reduced-order models (surrogates built from simulations)
- Hybrid models (combining known physics and learned components)
- Physics-informed neural networks (PINNs)
- Purely data-driven models (black-box predictors)
We show how these approaches trade off interpretability, data needs, and computational cost.
We walk through Python implementations of each method and visualize their outputs, strengths, and limitations.
This session equips attendees with a conceptual framework and practical code to apply these ideas in their own domains, from engineering to finance to biology.
Objectives:
- Appreciate why simulations remain indispensable in the age of AI, and how they complement machine learning rather than being replaced by it.
- Understand the spectrum of modeling approaches, from mechanistic to data-driven, and when to use each.
- Learn how to integrate physics-based simulations and data-driven methods in Pythonic workflows.
- Evaluate the trade-offs between generalization, efficiency, and interpretability across the modeling spectrum.
Bonnes pratiques de l'intégration d'OIDC et de SAML pour permettre le changement de login
Michael Scherer
Room C436 − Saturday, November 1, 2025 at 3:30 PM − 25 min
Votre responsable arrive en réunion et vous explique qu'à partir de maintenant, les applications doivent permettre de changer le nom d'utilisateur, citant vaguement des contraintes réglementaires et des demandes utilisateurs. Comme votre parc d'applications utilise une authentification centralisée et des bibliothèques libres de qualité, vous vous dites que ça n'est pas un souci, mais le premier test montre qu'hélas, ça n'est pas le cas et qu'il faut tout revoir.
À travers les exemples des applications créées par le projet Fedora en Python et utilisant OIDC et SAML, nous verrons les problèmes qui ont été rencontrés, les bonnes pratiques pour les éviter et pourquoi il a été décidé de permettre de changer ce qu'on estime immuable.
La théorie et la réalité de l'apprentissage du Python à l'école
Luz
Room B421 − Saturday, November 1, 2025 at 3:30 PM − 25 min
Le Python est un langage concis dont la syntaxe est simple. Par conséquent, le Python est particulièrement adapté pour l'apprentissage de la programmation ; de plus, c'est un langage libre. Ainsi, l’Éducation Nationale l'a choisi pour introduire les langages de programmation auprès des élèves. C'est pourquoi le Python est inscrit dans les programmes du lycée.
Cependant, il y a une grande différence entre les discours volontaristes et la réalité en classe. Le fossé entre les programmes officiels et le vécu des élèves sera présenté par une lycéenne.
Migrer l'annuaire LDAP d'un Nextcloud
Armando Femat Ortiz
Room C436 − Saturday, November 1, 2025 at 4:30 PM − 25 min
Petit retour d'expérience de comment migrer un Nextcloud d'un ancien vers un nouveau annuaire LDAP.
Nous pourrons râler ensemble sur Nextcloud et sa documentation. De plus, nous parlerons sur comment les applications gèrent les utilisateurs et un peu du SSO parce que c'est bien.
Tout cela autour d'un script Python :)
MicroPython : programmation Python pour microcontrôleurs
Amine Bendahmane
Room B421 − Saturday, November 1, 2025 at 4:30 PM − 25 min
MicroPython permet aux développeurs d'utiliser une version allégée de Python 3 pour programmer les microcontrôleurs, simplifiant ainsi la création d'applications embarquées pour les objets connectés, les robots et les appareils électroniques.
Cette présentation abordera les bases de MicroPython, notamment ses avantages, ses limites et ses performances comparés à C/C++ et au Python traditionnel.
Nous verrons également quelques exemples pratiques illustrant la simplicité de MicroPython pour créer des applications IoT.
Virtual Environments and Lockfiles—How Python Is Improving Reproducibility
Ivo Bellin Salarin
Room B316 − Saturday, November 1, 2025 at 4:30 PM − 25 min
"It works on my machine!"
Memes about this sentence are popular on the internet, and express a typical phenomenon that the "reproducible builds" initiative aims to eradicate.
Python has evolved a lot in the last 20 years in this aspect, and we have recently seen the introduction of lockfiles.
Let's dig more into the history of virtual environments and how they improve the build reproducibility, yet not achieving perfect reproducibility.
Comment enseigner le Python à l’ère de l’intelligence artificielle générative ?
Pierre-Loic Bayart
Room B003 − Saturday, November 1, 2025 at 4:30 PM − 25 min
L’intelligence artificielle générative change notre rapport à l’apprentissage du code et en particulier du langage Python. De nombreux débutants arrivent désormais à Python via des outils généralistes comme ChatGPT ou plus spécialisés dans le « vibe coding » comme Cursor. Comment adapter l’enseignement du Python à ces nouveaux profils ? Quels concepts faut-il encore enseigner et comment ? Cette conférence propose des pistes pédagogiques concrètes pour aider ces nouveaux utilisateurs à acquérir une compréhension réelle et durable du langage.
What if You Became an Open Source Contributor in 2025?
Amanda Savluchinske
Room B316 − Sunday, November 2, 2025 at 11:00 AM − 25 min
The classic open source dichotomy is well known: everyone uses it, but few give back for the convenience we've all grown so used to. What sustains a community? And how can we help ensure that the frameworks and libraries we rely on daily remain viable and healthy in the long run?
Contributing is easier than it seems. Maintainers are, more often than not, more welcoming and kind than you'd expect, and I want to show you how simple it can be to take your first steps in this world. After all, it wasn't that long ago that I was in that exact same place.
In this talk, you can expect to:
- Learn a bit more about the open source ecosystem;
- Understand how these decentralized communities operate at a basic level;
- Get practical tips on how to start contributing and explore possible paths you can take.
Onzr : l'histoire du CLI deezer un peu en retard
Julien Maupetit
Room B421 − Sunday, November 2, 2025 at 11:00 AM − 25 min
Parce que Deezer ne fournit pas de client Linux officiel, parce que leur player web utilise une quantité absurde de RAM, parce que l'informatique c'est fun, parce qu'apprendre des nouveaux trucs c'est stimulant, parce que tout faire depuis son terminal c'est cool, je me suis lancé dans l'écriture d'un outil en ligne de commande pour streamer ma musique.
Je me propose de vous conter l'histoire de ce side-project open-source.
Advanced Alchemy : Surcouche puissante de SQLAlchemy
Julien
Room B003 − Sunday, November 2, 2025 at 11:00 AM − 25 min
Vous adorez SQLAlchemy mais vous trouvez sa mise en place répétitive, fastidieuse ou peu productive ?
Advanced Alchemy est une surcouche puissante et flexible à SQLAlchemy, conçue pour les développeurs en quête d’efficacité, de scalabilité et de lisibilité.
Dans cette conférence, vous découvrirez comment ce projet issu de Litestar redéfinit l’expérience ORM avec SQLAlchemy, sans enfermer dans un framework particulier.
Grâce à ses modèles typés, sa configuration centralisée, sa compatibilité asynchrone et sa gestion intégrée des migrations, Advanced Alchemy vous permet de créer des API robustes avec des modèles Pydantic, une séparation claire des entités, et des patterns inspirés du DDD (Domain Driven Design).
Nous verrons ensemble :
- Comment créer des modèles scalables avec l’héritage et les mixins d’Advanced Alchemy
- La gestion des migrations (Alembic) simplifiée
- L’optimisation du cycle de vie des sessions avec SQLAlchemyAsyncConfig
- L’intégration avec Litestar (mais aussi utilisable avec FastAPI ou autre)
Ce talk est idéal pour les développeurs Python backend qui utilisent déjà SQLAlchemy, ou pour ceux qui cherchent une alternative moderne aux ORM traditionnels.
Retour d’expérience : une base de projet réutilisable avec Litestar
Mitiaieva Iryna, MONMOUTON
Room C436 − Sunday, November 2, 2025 at 11:00 AM − 25 min
Nous sommes ravis de vous inviter à notre présentation dédiée à l'utilisation du framework Litestar en Python. Lors de cette session, nous partagerons notre expérience de la création d’une base de projet réutilisable, conçu pour accélérer le développement, améliorer la maintenabilité et encourager les bonnes pratiques.
Au programme :
- Pourquoi Litestar ? Une comparaison entre aiohttp, FastAPI et Litestar : avantages, performances et cas d'utilisation.
- C’est quoi Litestar ?
- Création d’un modèle de projet réutilisable qui peut être adapté à diverses applications.
- Retours d’expérience.
Que vous soyez développeur, architecte logiciel ou simplement curieux des frameworks Python modernes, cette présentation vous donnera des pistes utiles pour structurer efficacement vos projets.
Du vrai TDD en data science en passant de Pandas à Polars avec Pelage !
Alix Tiran-Cappello
Room C436 − Sunday, November 2, 2025 at 12:30 PM − 25 min
Dans le monde des données, les incohérences ou les imprécisions représentent souvent un obstacle majeur à l’extraction d’informations pertinentes. Pourtant, les outils et pratiques robustes pour y faire face restent limités. En particulier, la pratique du TDD (Test-Driven Development) reste difficile en data science, alors qu’elle est devenue un standard dans le développement logiciel classique, notamment à cause d’outils et de frameworks mal adaptés.
Pour répondre à ce problème, nous avons développé Pelage, un package Python open-source conçu pour faciliter l’exploration et les tests de données, en s’appuyant sur la syntaxe intuitive et la rapidité de Polars. Pelage permet aux data scientists et analystes de transformer les données plus facilement, d’améliorer leur qualité et de rendre le code plus clair.
Nous démontrerons, dans une approche orientée tests, comment utiliser cette bibliothèque dans un workflow data science pour renforcer la confiance dans vos transformations de données.
Who Does Python Trust, and Why?
Dom Weldon
Room B316 − Sunday, November 2, 2025 at 12:30 PM − 25 min
We all know how important it is to make sure that you see the "secure" padlock icon when paying for something online. It's simple, easy to understand, and automatic.
Is your code the same? How would you start to make sure it is? Let’s dive into those questions in this talk.
First off, the basics: security is based on trust, but trust must be verified. This is especially true in the design of "zero-trust" networks. Knowing who your code trusts, and how you verify that trust, is therefore essential.
This talk will briefly go through some of the basics, such public/private key cryptography, DNS, and x509 certificate signing, before examining some of the wider implementation and regulation of PKI (Public Key Infrastructure) online. We'll look at how python interfaces with this, along with some history, and look towards the future of important integrations like certifi and truststore.
We'll then look at the problems of Supply Chain Attacks and ask how much you should trust your dependencies, before looking at some of the other basic services your code relies on like DNS.
We’ll then see how you can leverage these trust mechanisms to your advantage to make your code as secure as possible, especially when working in your own cloud environment.
Hopefully, this talk will give you a headstart or a refresh on the knowledge required to have genuinely constructive paranoia when coding.
Failing that, at the very least, I promise to make you the go-to expert on how your company's VPN and proxy cause headaches in python and how to fix them securely, rather than giving up and setting a "trusted-host". Hopefully you’ll come away having learned a new swear word that you’ll never type again: pip config set global.verify_ssl false
.
Pas d’algo, pas de bug, pas de bug pas de problème. Pas de problème… pas de problème
Matthieu Sauboua-Beneluz
Room B421 − Sunday, November 2, 2025 at 12:30 PM − 25 min
Vous arrive-t-il parfois de devoir résoudre des problèmes ? Que ce soient des sudokus, des échecs, le placement de tables de votre mariage ou encore un emploi du temps aux contraintes interchangeables ? En tant que développeureuses, vous devez probablement créer des algorithmes pour répondre à ces problèmes pour vous.
C'est là que les problèmes commencent : un algorithme, cela devient vite complexe, fouillis, illisible, surtout sur des problèmes aux nombreuses contraintes.
Ce que je vous propose, c'est de venir découvrir des outils pour répondre à ces soucis de manière déclarative et épurée, avec des outils disponibles en Python ! Pas la peine de déterrer un langage au paradigme obscur, vous serez comme à la maison.
Cartographier les dommages causés aux bâtiments avec Python et le satellite Sentinel-1
Frédéric Lamy
Room B003 − Sunday, November 2, 2025 at 12:30 PM − 25 min
En tant qu'organisation active dans la réduction de la violence armée, la réduction des risques de catastrophe et les situations d'urgence, Handicap International (HI) intervient dans de multiples contextes où les dommages causés aux bâtiments sont très fréquents. L'évaluation de ces dommages est une information essentielle pour hiérarchiser les zones d’intervention et les activités à mettre en œuvre. Lorsque de vastes zones sont touchées par des aléas d’origine naturelle ou des conflits armés, l'imagerie satellite fournit des données précieuses pour mener à bien ces évaluations.
Les images radar du satellite Sentinel-1, couplées à une analyse statistique réalisée avec Python, permettent d’évaluer les dommages causés aux bâtiments sans recourir à des images à très haute résolution ou à des modèles avancés d’intelligence artificielle. Ce test statistique consiste à calculer une t-value par pixel à partir d’images avant et après la survenue des dommages, puis à la moyenner sur les emprises de bâtiment afin de caractériser la présence de dommages à partir d’une valeur seuil de cette t-value moyenne.
Nous présenterons comment la mise à disposition en open-source du code du Pixel-Wise T-Test par Ollie Ballinger a permis à HI de tester cet algorithme et de l’adapter à ses enjeux de priorisation des activités.
Au secours, on vient auditer mon application
Thomas Cordival
Room B421 − Sunday, November 2, 2025 at 2:00 PM − 25 min
Avez-vous déjà subi un audit de votre application ? Comment avez-vous réagi ?
Les audits de logiciels concernent des sujets divers : architecture, qualité du code source, choix de la stack technique, outillage, processus… Et pour chacune de ces préoccupation, ils peuvent être déclenchés pour différentes motivations : comprendre les causes des problèmes récurents, anticiper des grands projets, préparer un changement d'organisation.
Mais que faire en tant que développeur, tech-lead, chef de projet ?
Nous verrons en quoi un audit logiciel va plus loin que Sonar, quelles sont les manières de s'y préparer (même à la dernière minute) et surtout comment en tirer le maximum.
Canaille, un fournisseur d'identité léger en Python
Éloi Rivard
Room C436 − Sunday, November 2, 2025 at 2:00 PM − 25 min
Canaille est un fournisseur d'identité léger qui implémente les normes OpenID Connect, OAuth2 et SCIM.
C'est une sorte de Keycloak super léger, écrit en Python, qui utilise Flask et htmx.
Je voudrais vous présenter les fonctionnalités de Canaille, d'où est venu ce besoin de réinventer la roue, les autres projets dans lesquels ce développement m'a fait mettre les mains (et parfois devenir co-mainteneur).
Enfin je voudrais présenter comment développer des applications web en déléguant complètement l'authentification grâce à OIDC et SCIM. Et comment utiliser Canaille pour avoir un serveur d'identité dans un environnement de développement ou dans des tests unitaires, sans mettre sa machine à genoux.
swh-fuse, or how to put a whole code archive behind a folder
Martin Kirchgessner
Room B316 − Sunday, November 2, 2025 at 2:00 PM − 25 min
Since 2015 Software Heritage is archiving all source code available on the Internet, and has collected more than 25 billion files over 400 million repositories. You can mount all this content transparently after a pip install swh-fuse
.
In this talk we'll show how to implement such virtual filesystem, thanks to Python bindings to libfuse
. swh-fuse aims to unlock a massively parallel access to the archive, so we'll also discuss how to enable a few thousand mounts at the same time on HPC clusters. We'll encounter a ProcessPoolExecutor
, pluggable back-ends abstracted by typing.Procotol
, a Python module implemented in Rust, and worry about free-threading.
Du comportement humain au comportement du code : Quand l’ABA rencontre la programmation
Ewa Kadziolka
Room B003 − Sunday, November 2, 2025 at 2:00 PM − 25 min
Cette présentation établit un parallèle original entre l’Analyse Appliquée du Comportement (ABA), une méthode issue des sciences du comportement humain, et le développement logiciel. En s’appuyant sur la grille ABC – Antécédents, Comportement, Conséquences – elle propose d’analyser les bugs comme on analyserait un comportement humain : en identifiant ce qui s’est passé juste avant, ce qui s’est produit, et ce que cela a entraîné.
Plutôt que de subir les erreurs techniques, cette approche invite à les considérer comme le résultat logique d’un enchaînement de causes. Par exemple, lors du développement d’une application en Python, une erreur peut survenir au moment d’écrire les premières lignes de code : appel à une variable non initialisée, mauvaise gestion d’un objet `None', import oublié, ou configuration incomplète dans un projet Django. Ces erreurs, fréquentes au démarrage, sont souvent liées à un contexte précis qu’il faut comprendre pour pouvoir corriger.
La présentation illustre cette logique en croisant des situations issues du film Mamma Mia avec des exemples de développement, le tout avec humour et méthode. Elle propose aussi des pistes concrètes pour agir : consulter les logs, analyser les erreurs HTTP, utiliser un debugger, tester le code étape par étape ou échanger avec d’autres développeurs.
Comme en ABA, comprendre les antécédents et les conséquences permet de modifier le comportement observé – ici, celui du code Python.
REX de développeuse : comment j’ai changé de stack technique
Marjolaine Bouquet
Room B421 − Sunday, November 2, 2025 at 2:30 PM − 25 min
L’industrie du développement a tendance à vouloir mettre les développeur·euse·s dans des cases, à nous pousser à devenir expert·e·s dans un seul domaine, une seule stack, un seul langage. Nos carrières évoluent souvent soit vers du management soit de l’expertise.
À la suite de mes études, j’ai commencé ma carrière en Delphi en client lourd et je me suis spécialisée dans ce langage et cet environnement pendant 13 ans. J’étais bien partie pour continuer dans cette voie.
Jusqu’au jour où j’ai eu l’opportunité de sortir de ma zone de confort et de découvrir C# et l’environnement .NET. Une fois l’appréhension initiale passée, je me suis rendue compte que ma formation et mon expérience allaient m’être très utiles pour que la transition se passe sans accroc.
Alors comment ai-je fait pour appréhender cette nouvelle stack ? Quels outils m’ont aidée ? Quelles difficultés ai-je rencontrées ? En partageant mon expérience, j’aimerais vous montrer que grâce à notre métier, nous avons toutes les cartes en main pour nous réinventer si on le souhaite.
L'ORM de SQLAlchemy : trop intelligent pour être compréhensible ?
Xavier Ordoquy
Room C436 − Sunday, November 2, 2025 at 2:30 PM − 25 min
En travaillant avec l'ORM de SQLAlchemy ces dernières années, plusieurs choses m'ont frustré. Malgré des choix logiques sur son implémentation, le comportement de l'ORM est parfois compliqué à comprendre.
Comment peut-on avoir des erreurs d'intégrité lorsque l'on fait une simple lecture dans une base de données ? Comment la lecture d'une table de 10 lignes peut-elle entrainer des problèmes d'allocation mémoire ? Pourquoi, malgré l'optimisation d'une requête, peut-on se retrouver avec des problèmes de N+1 ?
Construire des logiciels fiables basés sur des API douteuses
Romain Dorgueil
Room B003 − Sunday, November 2, 2025 at 2:30 PM − 25 min
Qui n'a jamais écrit un hack pour gérer les défaillances d'une API externe ?
Les deux causes principales de panne logicielle sont les erreurs humaines et les services externes. Consommant bon nombre d'API externes de qualité… variable, notre qualité de service dépend souvent de celle des services tiers, qu'on ne maîtrise pas (ou pas complètement). Et in fine, nos clients nous jugent (à raison) sur la disponibilité du service final.
Ce talk présente un retour d'expérience de notre évolution depuis une approche ad hoc vers une solution structurée, répétable (et open-source). Comment nous sommes passés, en prod, du petit hack dans un coin à un service dédié, montrant les avantages et les inconvénients de chaque approche, et les alternatives existantes.
Refactoring at Scale: Making Analytics Type-Safe with Codemods and AI
Fabian Schindler
Room B316 − Sunday, November 2, 2025 at 2:30 PM − 25 min
This talk presents a large-scale refactoring effort of Sentry’s backend analytics system, transforming a fragile, stringly typed event tracking API into a type-safe, maintainable solution. The original system lacked static validation, relied on manual event registration, and frequently caused subtle runtime bugs due to mismatched attributes and missing imports.
The team introduced a new approach using Python’s dataclasses, a custom @eventclass decorator, and a stricter analytics.record API, enabling full mypy support and simplifying inheritance. However, migrating hundreds of event classes, call sites, and heavily mocked tests posed significant challenges.
Initially, AI coding assistants like Copilot and Cursor were expected to automate the migration. In practice, they produced unreliable and inconsistent results. Instead, the team leveraged codemods built with libcst, with AI assisting in generating the migration tooling rather than performing the refactor directly. The migration was then split into smaller, team-owned pull requests to ensure reviewability.
Attendees will gain insights into:
- Designing type-safe replacements for legacy, stringly typed APIs
- Building reliable Python codemods with libcst
- Strategies for breaking down and managing large-scale migrations
- Where AI can - and cannot - help in real-world refactoring efforts
This session provides practical lessons for anyone facing the daunting task of modernizing legacy Python systems.
Universal Python Extensions: Performance, Compatibility, Sustainability, and Less CO₂
Pierre Augier
Room B316 − Sunday, November 2, 2025 at 4:00 PM − 25 min
Python's long-term relevance for numerical computing faces a long-term threat, not from external competition alone, but from fundamental architectural decisions that prevent the entire ecosystem from achieving better performance. While PyPy and GraalPy can make pure Python code 4x faster than CPython, they face an existential crisis: the moment you import NumPy or any package with C extensions, that performance advantage disappears completely.
This isn't just a technical curiosity. It's putting alternative Python implementations in genuine danger of end-of-life status.
The Hard Truth about Python's Performance Future
The compatibility trap: Python's C extension system creates an insurmountable barrier between implementations. Popular packages like NumPy, Pandas, and scikit-learn are locked into CPython-specific APIs, making faster interpreters effectively unusable for real-world numerical work. Worse, the current C API also constrains CPython itself, preventing future performance improvements that would break existing extensions.
HPy: promise and reality: The HPy project aimed to solve this with a universal C API, showing impressive preliminary results with extensions that work across CPython, PyPy, and GraalPy. However, the project has stalled without sufficient corporate and community support, a critical opportunity slipping away.
The limited API alternative: CPython's limited C API offers another path, but with significant constraints and unclear long-term viability for the ecosystem's needs.
What this Talk Proposes
Rather than accepting this situation, we need coordinated community action. This talk argues for:
Community recognition: The Python community must acknowledge these performance limitations as a serious long-term challenge, not just a nice-to-have improvement.
Official support: A PEP process to formalize the need for universal C API/ABI solutions compatible with JIT Python compilers, with a dedicated working group to study possible solutions and coordinate actions across different ecosystem actors.
Why We Need to Act Now
The stakes extend far beyond technical performance. Enabling more efficient Python interpreters would have two transformative effects:
- More Python: More performance-sensitive code could be written in pure Python with object-oriented patterns and small objects, rather than requiring native extensions, simplifying development and deployment.
- Environmental impact: Given Python's massive global usage, significant performance improvements would translate to measurable CO2 emission reductions across millions of applications worldwide.
Without community mobilization, we risk losing both alternative Python implementations and Python's competitive position in performance-critical domains. The technical foundations exist but need coordinated effort to become reality.
Target Audience
This talk is for Python developers who care about the ecosystem's long-term health. Whether you're a package maintainer or concerned user, you'll understand the stakes and learn how to contribute to solutions.
Come prepared to discuss hard truths about Python's future and leave with concrete actions for community engagement.
py-edu-fr : formations modulaires à Python dans l'ESR
Jeremy Laforet
Room B421 − Sunday, November 2, 2025 at 4:00 PM − 25 min
Python s'impose de plus en plus dans l'enseignement supérieur et la recherche créant des besoins de formation de plus en plus importants.
La multiplicité et la spécificité des publics : étudiants, enseignants-chercheurs, ingénieurs et techniciens, de domaines très variés et dont la programmation est rarement l'activité principale, a entraîné une multiplication des initiatives locales de formation pour répondre à ces besoins.
Le projet py-edu-fr souhaite mutualiser ces efforts pour proposer du matériel de formation adapté à nos publics dans une approche open-source, modulaire et facile à maintenir à jour pour suivre les évolutions technologiques. Ainsi chaque formation pourra être adaptée à son public spécifique, à ses contraintes locales (durée, ratio cours/pratique) tout en bénéficiant des efforts de tous [et par retour de faire évolution l'ensemble = je ne comprends pas l'intention, une reformulation].
Le projet propose une collection de fiches en markdown (MyST) pouvant contenir du code Python et assemblées pour construire les formations à l'aide de JupyterBook.
Démarrage Python : mesurer avant d’optimiser
Florentin Labelle
Room B003 − Sunday, November 2, 2025 at 4:00 PM − 25 min
Dans certains environnements – conteneurs, Raspberry Pi ou serverless – on a besoin que les services démarrent rapidement pour servir des requêtes avec peu de latence. Optimiser sans métriques, c’est bricoler à l’aveugle ! Cette présentation explique comment instrumenter simplement le lancement d’un service Python pour repérer les goulots d’étranglement dans l’initialisation du programme.
Cette session constitue une introduction à cProfile
, l’outil standard de profiling en Python, ainsi qu’à l’interprétation et la visualisation des résultats de profilage. Je prendrai l’exemple d’un serveur web en Flask
pour illustrer ce qui peut ralentir un programme au démarrage.
Des structures de données qui vont vous étonner
Pascal Martin
Room C436 − Sunday, November 2, 2025 at 4:00 PM − 25 min
Vous avez déjà entendu parler de listes chainées, de tables de hachage et d’arbres binaires ? Des structures de données classiques, que vous avez peut-être exploitées dans vos applications ?
Et bien, il existe aussi de très nombreuses autres structures de données !
Aujourd’hui, après un mot autour de la complexité des algorithmes et sur la notation big-O, nous découvrirons quelques structures de données trop souvent méconnues… Et qui, pourtant, répondent à de vrais besoins !