PyConFR 2026

Conférence longue

Tests end-to-end en Python du gestionnaire de mail/agenda KDE : bindings, vrais serveurs et vrais bugs

Benjamin Port

Salle LANG5 − samedi 31 octobre 2026 à 11:00 − 55 min

Cette présentation porte sur la manière dont nous avons construit des tests de bout en bout pour Akonadi en python et pourquoi nous avons choisi cette approche plutôt que de rester sur du C++.

Akonadi est un framework développé par KDE qui sert de service de stockage centralisé pour les données de gestion des informations personnelles (email, calendrier, contact...)

Nous parlerons de la mise en place de binding python autour des bibliothèques KDE afin d'intéragir avec composants internes d'Akonadi, et comment nous avons structuré la suite de tests pour qu'elle soit réellement utile.

Nous testons vis à vis de vrais serveurs (pas des mocks) : Nextcloud, Radicale, Cyrus, Dovecot. Nous leur envoyons de vrais flux iTIP (anonymisés), du trafic IMAP et CalDAV. Il s'avère que chaque serveur se comporte légèrement différemment, et on ne s'en rend compte qu'en testant contre les implémentations réelles que les utilisateurs ont en production.

Nous partagerons les difficultés rencontrées pour faire des tests d'un moteur totalement asynchrone,

Et nous ferons un retour sur les bugs que nous avons pu découvrir et qui nous ont donc permis de fiabiliser Akonadi.

C'est une bonne situation ça, auto-hébergeur ?

Matthieu Sauboua-Beneluz

Salle MARI/SUGGAR − samedi 31 octobre 2026 à 11:00 − 55 min

Ça y est, l'heure est venue, vous en avez assez d'être tributaire des GAFAM et vous avez enfin trouvé la motivation pour passer à l'acte. Bravo ! Mais alors, par où commencer ? Tout un tas de questions se bousculent dans votre tête et vous êtes déjà découragé·e. Pas de panique !

Grâce à deux années de tatonnements, j'ai pu répondre à un certain nombre d'interrogations. Je vous ferai un retour d'expérience de mes voyages dans le monde merveilleux de l'administration système et réseaux, venant moi-même d'une formation de développeur avec de simples bases en ligne de commande et docker. Dans un souci d'apprentissage, nous ne prendrons que très peu de solutions clé en main, privilégiant une approche bare-metal first.

Mon objectif, que vous sortiez de cette conférence avec des réponses selon l'usage voulu: - Quel matériel est viable pour de l'auto-hébergement ? Comment l'obtenir sans se ruiner ? Faire son NAS maison, est-ce que ça vaut le coup ? - Ou trouver les services pour remplacer les GAFAM ? - Quelles solutions de monitoring sont les plus adaptées ? - Comment gérer mes certificats facilement ? - Comment accéder simplement à mes services depuis l'extérieur ? - Comment provisioner des VMs pour plus de souplesse ? ...

Que vous ayez un raspberry pi qui prend la poussière ou l'intention de monter un rack maison, vous devriez sortir des ces 55 minutes avec des pistes concrètes.

Data Platform : 250 microservices, 7 To par jour… et pourtant tout est en Python

Emmanuel-Lin Toulemonde

Salle BASENDERIE − samedi 31 octobre 2026 à 11:00 − 55 min

Construire une Data Platform à l'échelle ne nécessite pas forcément une multitude d'outils. Notre plateforme traite 7 To de données et plus d'un million d'événements par jour, intègre 40 sources de données et expose plus de 250 objets de données... tout en reposant principalement sur Python.

Dans ce retour d'expérience, je montrerai comment nous avons utilisé Python pour construire les briques d'une plateforme de données moderne : - une architecture orientée événements pour remplacer les traitements batch lorsque cela est pertinent ; - l'ensemble des transformations de données en python ; - le suivi de la qualité de données en python - un modèle de stockage garantissant l'organisation et la gouvernance des données dans le temps ; - des data contracts ; - un catalogue de données custom développé en python ; - une anonymisation contextualisée permettant de préserver la valeur métier des données ; des composants techniques réutilisables qui imposent naturellement les bonnes pratiques aux équipes.

L'objectif est de partager les choix d'architecture, les abstractions Python et les compromis qui nous ont permis de faire grandir une plateforme de données tout en restant simple à faire évoluer.

What is happening with my microservices?

Israel Blancas Alvarez

Salle PATUEK − samedi 31 octobre 2026 à 14:30 − 55 min

Observability is the ability to gain insights into the internal state of a system by analyzing its external outputs. It provides developers and SREs with the necessary tools to understand how their applications behave in production and empowers them to detect and resolve issues more efficiently. In this talk, we will dive into the principles and best practices of observability and its impact on application development and operations.

What will we talk about? * Introduction to Observability * The Three Pillars of Observability * Instrumentation and Data Collection * Tools and projects related to observability * Practical example

By attending this talk, participants will gain a solid understanding of the principles of observability and its role in enhancing the quality, performance, and debuggability of their applications. They will walk away with practical knowledge and actionable insights to implement observability in their own projects and environments.

This session is designed for medium-level developers and site reliability engineers (SREs) who want to gain a deeper understanding of observability and leverage its benefits in their projects.

Python et luttes des classes

Haikel Guemar

Salle BASENDERIE − samedi 31 octobre 2026 à 14:30 − 55 min

Et si Karl Marx avait été le premier architecte logiciel de l'histoire moderne ?

Derrière une neutralité technique, la programmation orientée objet manipule des concepts qui résonne étrangement avec la théorie politique: structures de classes, rapports de force, propriété des ressources et privatisation de celles-ci. Dans une conférence atypique, nous allons explorer des concepts qui nous sont familiers de la POO en Python au travers d'un prisme marxiste (ok, à peu près marxiste). Ce parallèle pédagogique nous permettra de décortiquer les mécanismes de notre language préféré (on est à pyconfr, faites semblant au moins).

Ensemble, nous analyserons «Infrastructure vs Superstructure», entre autre: * Comment l’allocation de mémoire matérielle (new) forge la réalité économique de l'objet avant son éducation idéologique (init). * La Propriété Privée en sursis : Pourquoi l'encapsulation et le Name Mangling (__attribut) ne sont que des illusions bourgeoises face à la réalité dynamique de Python. * La Lutte des Classes et l'arbitrage : Comment l’héritage multiple crée des conflits d'intérêts insolubles, finalement tranchés par la justice bourgeoise du Method Resolution Order (MRO). * Vers le Communisme du Code : Comment le Duck Typing réalise l'utopie marxiste «De chacun selon ses capacités, à chacun selon ses besoins.» en brisant les hiérarchies de classes au profit de l'action pure.

Que vous soyez un aficionado des structures de données ou simplement curieux de voir du code Python analyser le Capital, cette session vous donnera les clés pour comprendre le fonctionnement profond du langage, tout en redécouvrant les dynamiques sociales qui se cachent derrière vos lignes de code.

Développeurs de tous les pays, unissez-vous (et préparez vos terminaux) !

Partager et livrer une application Python avec fierté et sérénité

EricM

Salle LANG5 − samedi 31 octobre 2026 à 14:30 − 55 min

A l'âge de l'IA, écrire du code Python correct n'est plus une difficulté. En revanche, s'assurer que son collègue puisse utiliser ce petit outil interne facilement ou que le déploiement de la nouvelle version d'une API multi-dépôt se passe correctement pour des milliers d'utilisateurs demande de bonnes connaissances dans et autour de l'écosystème Python. Nous traiterons ces deux scénarios avec les mêmes thèmes : build et packaging de l'application, construction d'un environnement d'exécution répétable (avec ou sans Docker), gestion des secrets et de la sécurité, automatisation du tout via des pipelines de CI/CD. Le tout sera taillé à façon pour répondre aux spécificités de Python (en bien... et en moins bien !)

Vous ajouterez alors un peu de "Ops" à vos qualités de "Dev" Python :)

L’impact de l’IA générative sur les projets libres du point de vue d’une mainteneuse

Lucie Anglade

Salle MARI/SUGGAR − samedi 31 octobre 2026 à 14:30 − 55 min

Depuis quelques années, les outils d’IA générative se développent et de plus en plus de personnes les utilisent pour contribuer à des projets libres.

Mais quel est l’impact de cet usage sur les mainteneur·euses de projets libres ?

Durant cette présentation, nous parlerons de l’évolution des contributions et de leurs impacts sur les mainteneur·euses en prenant comme exemple le logiciel libre WeasyPrint, sur lequel j’interviens en tant que mainteneuse.

Nous verrons aussi des graphiques avec des données chiffrées, parce qu’ici, on aime les statistiques : évolution du nombre tickets, de pull requests…

Enfin, nous finirons la présentation par les solutions que nous essayons de mettre en place et des pistes sur comment contribuer sainement.

Assemblée générale de l’AFPy

AFPy

Salle PATUEK − dimanche 1 novembre 2026 à 09:00 − 55 min

Assemblée générale de l'Association Francophone Python, organisatrice de l'événement.

Vous pouvez venir pour connaître le bilan de cette année et participer aux choix des prochaines éditions.

Les membres à jour de cotisation peuvent également prendre part aux votes et candidater pour faire partie du comité de direction.

Construire une logique métier avec des opérateurs mathématiques : méthodes spéciales & métaclasses

Luc Sorel-Giffo

Salle BASENDERIE − dimanche 1 novembre 2026 à 11:30 − 55 min

Vous connaissez sans doute le module natif pathlib qui permet de décrire des chemins de fichiers avec l'opérateur de division "/". J'ai suivi cette approche pour élaborer une syntaxe à base d'opérateurs mathématiques permettant de naviguer dans une structure de données très arborescente combinant sous-dictionnaires, classes et diverses séquences de tout ça. Cette session est un retour d'expérience sur une petite plongée dans certains mécanismes propres à Python qui pourraient bien vous donner des idées.

Dans un format de livecoding dans un notebook marimo, je vous parlerai : - des méthodes spéciales appelées sous le capot par Python - de celles impliquées lors de l'utilisation d'opérateurs - des règles de priorités des opérateurs - de l'utilisation de méta-classes pour définir des comportements sur des classes, quand @classmethod ne fonctionne plus

Full-stack pour de vrai : Flask, HTMX et technologies frontend intégrées pour des sites backend-driven

Maxime Bouroumeau-Fuseau

Salle LANG5 − dimanche 1 novembre 2026 à 11:30 − 55 min

« Full-stack » désigne souvent une application constituée de deux projets : une API côté serveur et une SPA côté navigateur. Deux systèmes de routage, deux modèles de données, deux chaînes de compilation et beaucoup de code chargé de faire communiquer l’ensemble.

Hyperflask propose une autre approche : construire des applications web complètes en gardant Python et le serveur au centre, tout en intégrant les technologies frontend nécessaires à chaque niveau d’interactivité.

Pendant cette présentation, nous découvrirons Hyperflask à travers la construction d’une application complète. Pages, données, composants, interactions et assets feront partie d’un même projet et d’une même architecture.

Nous commencerons par les fondations d’Hyperflask : un routage basé sur les fichiers et un nouveau format réunissant Python et Jinja. Une page peut ainsi charger ses données, traiter une requête et produire son HTML au même endroit, tout en s’appuyant sur des fonctions et services Python classiques pour la logique métier.

Nous verrons ensuite comment Hyperflask organise l’interface autour de composants réutilisables. Ces composants peuvent recevoir des propriétés, contenir d’autres composants, exécuter du code Python et répondre directement à des requêtes HTTP.

HTMX permettra d’appeler ces composants et de remplacer uniquement les fragments de page concernés. Le serveur continuera à produire du HTML, sans imposer une API JSON ni reproduire l’état de l’application dans le navigateur.

Mais backend-driven ne veut pas dire sans JavaScript.

Lorsque l’interaction est purement locale, Alpine.js pourra gérer un menu, une fenêtre modale ou un état temporaire directement dans le navigateur. Pour un comportement plus autonome, nous utiliserons un Web Component. Une fonctionnalité particulièrement riche pourra même être intégrée sous forme d’îlot React, sans transformer l’ensemble du site en SPA.

Ces technologies ne vivront pas dans des projets séparés. Hyperflask les réunit dans un même système de composants et prend en charge leurs scripts, leurs styles et leur intégration dans la chaîne d’assets.

Au fil de la démonstration, nous verrons notamment comment :

  • définir des pages et leurs routes à partir de fichiers ;
  • réunir Python et Jinja dans un format adapté aux pages et aux composants ;
  • construire des composants côté serveur capables de répondre en HTTP ;
  • créer des interactions dynamiques avec HTMX ;
  • ajouter de petits comportements locaux avec Alpine.js ;
  • intégrer des composants frontend via des îlots issus d’un framework frontend ;
  • charger automatiquement les scripts et les styles nécessaires ;
  • déployer l’application comme un ensemble cohérent.

Le serveur prend en charge la navigation, les données et l’état partagé. HTMX assure les échanges qui nécessitent un aller-retour avec le serveur. Le JavaScript local s’occupe des interactions qui n’ont aucune raison de quitter le navigateur. Les outils frontend plus complexes restent réservés aux fonctionnalités qui en ont réellement besoin.

Nous examinerons également les limites de cette architecture. Une application backend-driven reste sensible à la latence réseau et n’est pas toujours adaptée aux expériences très riches, au fonctionnement hors connexion ou aux interfaces manipulant beaucoup d’état local. Faire cohabiter plusieurs technologies demande aussi des règles claires afin que l’application ne devienne pas un patchwork difficile à comprendre.

Cette présentation ne cherchera donc pas à annoncer la mort des SPA. Elle montrera plutôt une autre manière de construire des applications full-stack : en intégrant progressivement les technologies frontend dans une architecture pilotée par Python.

Python In Special Educational Needs and Disabilities Settings

Kayode Abiodun Oladapo, Oluwakemi Jacobs

Salle PATUEK − dimanche 1 novembre 2026 à 11:30 − 55 min

Many individuals who are aspiring to learn how to code specifically Python, especially those with special educational needs or disabilities (SEND) and those from underrepresented communities, faces difficulties in learning as the available resources do not account for those with diverse learning needs, as a result this makes aspiring learners to struggle with complex syntax, information overload, lack of availability to special needs learning content, and no or low engagement due to abstract examples. This session will explore how Python can be taught and used as a tool for inclusion, showing practical activities to create accessible resources and strategies that can be used in teaching Python to aspiring individuals with SEND, as these will make learning Python participative and encourage learning. The attendees will leave with a clear understanding of inclusive design principles and resources that can be, and have been, built and identified in supporting the teaching of Python to SEND learners. This talk is for educators, mentors, the Python community, and anyone interested in making Python education more inclusive.

Qu'est-ce qui se passe quand j'appuie sur Entrée ?

Denis Viviès

Salle MARI/SUGGAR − dimanche 1 novembre 2026 à 11:30 − 55 min

Qu'est-ce qui se passe entre le moment où je lance mon script et quand j'ai les résultats ? Comment est-ce que CPython passe d'un fichier py à du code machine ? Nous verrons la chaîne de compilation, en partant du tokenizer jusqu'à la génération et l'exécution du bytecode, en passant par les AST et Control Flow Graph. En décomposant étape par étape, nous verrons que c'est pas si compliqué et quelques applications de ces connaissances.

Nous l'avons construit avant FastAPI : quand une bonne décision devient de la dette technique

Irina Mitiaieva, MONMOUTON

Salle LANG5 − dimanche 1 novembre 2026 à 14:00 − 55 min

En 2017, il n'existait pas de framework performant pour construire des APIs avec validation automatique des entrées/sorties, génération d'un client asynchrone à partir d'un contrat Swagger, middlewares de logging/métriques/tracing, et outillage pour tester les services de bout en bout — nous avons construit notre propre framework ASGI pour couvrir ces besoins. Ce pari a été le bon pendant des années.

Près d'une décennie plus tard, cette même décision est devenue un frein : les développeurs qui l'ont conçu sont partis, la documentation n'a jamais suivi, et les mises à jour des composants internes ont pris du retard. Pendant ce temps, l'écosystème open source (Pydantic, FastAPI et ses générateurs de client, l'outillage de test associé) a rattrapé puis dépassé ce que nous avions construit sur mesure — sans qu'on l'intègre. Résultat : on maintient à prix fort un outil que le marché sait maintenant faire mieux, gratuitement.

Ce talk raconte comment repérer ce basculement — quand la maintenance d'un choix maison coûte plus cher que la migration vers l'écosystème — et propose une grille de lecture pour réévaluer ses décisions d'architecture avant que l'inertie ne devienne le vrai coût.

Intégrer du C++ dans notre module Python : facile ou compliqué?

Amine Bendahmane

Salle BASENDERIE − dimanche 1 novembre 2026 à 14:00 − 55 min

On pense souvent qu'introduire du C++ dans un projet Python est un casse-tête, surtout avec la réputation de ce langage qui en a fait pleurer plus d'un. Pourtant, beaucoup de modules Python exécutent du C ou du C++ en arrière plan (Numpy, Pandas, OpenCV, PyTorch..). L'hypothèse est donc que ça ne devrait pas être si difficile que ça, sauf si cette difficulté en vaut vraiment la peine!

Vérifions ces hypothèses dans une session de live coding en partant de zéro.

L'objectif est de créer en temps réel un wrapper Python au-dessus d'une couche C++, puis déployer ce wrapper en tant que module Python installable avec pip ou uv.

Au programme: - Binding C++/Python. - Partage des objets en mémoire. - Génération de la Wheel. - Configuration d'uv et pytest pour la validation. - Choix de l'ABI et compatibilité de versions.

Migrer les données d'une application Web... sans que tout explose

Loïc Simon

Salle MARI/SUGGAR − dimanche 1 novembre 2026 à 14:00 − 55 min

Toute application Web se nourrit de données, qui sont généralement stockées dans une base de données relationnelle SQL.

Lorsque l'application évolue, le schéma des données aussi, et déployer une nouvelle version nécessite de passer des migrations sur les systèmes de production. Faire cette opération sans interruption de service peut vite tourner au casse-tête, d'autant plus que les systèmes sont distribués et complexes ! Une migration mal écrite peut facilement faire tomber toute la prod, ou introduire des bugs subtils qui nous morderont des mois après...

Cette conférence vous propose d'explorer tous les aspects de ce problème, et leurs solutions : migration en deux temps, pattern expand-contract, vérification de la cohérence code-migrations...

Des concepts théoriques seront présentés, ainsi que leur application pratique : écriture de migrations sur un système SQLAlchemy / Alembic, déploiement dans le cloud.

while not done: From Prompt Engineering to Loop Engineering

Fasal Shah, Soham Dutta

Salle PATUEK − dimanche 1 novembre 2026 à 14:00 − 55 min

Strip away the marketing and an AI agent is a plain Python loop: call a model, run a tool, look at the result, decide whether to go again. In 2026 that loop got a grand name, “loop engineering,” and a bold claim attached: stop writing prompts, start designing the loops that prompt your agents for you. Some very credible people say it changes how we build software. Others say it is a cron job wearing a hat.

This talk treats that as an engineering question, not a hype cycle. Two of us argue it out: one builds the strongest case for stacking loops, the other plays the skeptic. Along the way we show, in plain standard-library Python with no framework, what each layer of a loop actually is: the agent loop, a verification loop that grades its own output, an event-driven trigger, and the “self-improving” loop that rewrites its own instructions. Then we count the cost.

The real payload of this talk is the three things the hype skips: runaway token bills, comprehension debt (code shipped faster than anyone can understand it), and rubrics that confidently make the agent worse. You’ll be able to decide when a loop earns its keep, and when one plain function call and a human review would have shipped sooner. And a demo to top it all up.

Écrire un analyseur de types en Python

Antoine Rozo

Salle MARI/SUGGAR − dimanche 1 novembre 2026 à 15:30 − 55 min

Après un tour d'horizon des annotations de types en Python & des types génériques, nous verrons comment mettre en place une analyse dynamique de ceux-ci dans un programme Python, puis comment écrire un analyseur statique de types tel que mypy.

Gérer ses dépendances Python au-delà de PyPI - Environnement de dev Odoo tel un projet python

Pierre Verkest

Salle LANG5 − dimanche 1 novembre 2026 à 15:30 − 55 min

Retour d'expérience avec uv et uvault dans un écosystème géant : Odoo + Odoo Community Association (OCA).

Comment gérez-vous vos dépendances Python lorsque votre projet dépend d'un écosystème de centaines de modules open source, où le besoin d'utiliser des Pull Requests (PR) non fusionnées est une réalité quotidienne ?

Dans cette conférence, je vous propose un retour d'expérience concret sur la gestion d'un projet (Odoo) de la machine de dev jusqu'à la production. Nous verrons comment installer une instance Odoo tel qu’un projet python (ce qui sont passés par là connaissent les pièges).

Nous passerons ensuite sur un défi universel : la sécurité et la stabilité des dépendances basées sur des dépôts VCS (Git) tiers. Lorsque vous épinglez une PR ouverte par un tiers dans votre fichier de dépendances, vous vous exposez à ce qu'elle soit modifiée, supprimée ou réécrite (force-push). Je vous présenterai uvault, un outil open source que j'ai conçu pour sécuriser, figer et valider ces références de PRs instables, tout en permettant aux développeurs de basculer instantanément dans un mode "prêt à coder" pour contribuer en retour.

Histoire secrète des bonnes pratiques : 70 ans de leçons pour coder mieux aujourd'hui

Vincent Poulailleau

Salle BASENDERIE − dimanche 1 novembre 2026 à 15:30 − 55 min

Et si les problèmes que nous rencontrons aujourd'hui avaient déjà été résolus il y a 20, 30 ou 50 ans ?

Cette conférence raconte, avec des exemples concrets en Python, ce que 70 ans de développement logiciel nous ont appris. Un grand secret sera même révélé à la fin de la conférence !

On y parle refactoring, dette technique, architecture et testabilité, sans jargon inutile et sans dogmatisme.

Chaque idée est illustrée par du code simple, des situations réelles d'équipe, et des erreurs que nous faisons tous.

Le fil rouge est clair : les technologies changent vite, mais les fondamentaux qui rendent un code durable restent les mêmes.

Le public repart avec des repères actionnables pour coder plus proprement, livrer plus sereinement et mieux collaborer. Une liste de ressources (livres, vidéos, podcasts…) sera également révélée.

Le ton est dynamique, accessible et ponctué d'humour.

Une session idéale pour développeurs et développeuses qui veulent progresser concrètement, quel que soit leur niveau, en particulier pour ceux qui n'ont jamais entendu parler de software craftsmanship, SOLID, clean architecture et autres gros mots.