Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions pycon-fr-2025/category.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"title": "PyCon FR 2025"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"title": "\u00c0 la sauce Python\u202f: m\u00e9taclasses, d\u00e9corateurs et ORM fait maison",
"description": "Vous avez d\u00e9j\u00e0 crois\u00e9 `type` et pens\u00e9 \u00ab\u202fah oui, le truc pour savoir si c\u2019est un `int`\u202f\u00bb\u202f? Et si on jouait un peu plus s\u00e9rieusement avec\u202f?\r\n\r\nDans ce talk, on explore les coulisses de la cr\u00e9ation des classes Python\u202f: m\u00e9taclasses, cr\u00e9ation dynamique, cycle de vie\u2026 puis on met tout \u00e7a \u00e0 l\u2019\u00e9preuve dans un cas concret\u202f: un ORM fait maison, avec un bon go\u00fbt de bouchon lyonnais.\r\n\r\nDeux recettes au menu\u202f: l\u2019une \u00e0 base de m\u00e9taclasse, l\u2019autre avec un bon vieux d\u00e9corateur de classe. L\u2019occasion de comparer magie et lisibilit\u00e9\u202f\u2013 sans perdre son app\u00e9tit pour autant.\r\n\r\nPublic vis\u00e9\u202f: d\u00e9veloppeurs Python curieux, un peu bricoleurs, qui aiment comprendre comment \u00e7a marche sous le capot.",
"duration": 2265,
"language": "fra",
"recorded": "2025-11-02",
"speakers": [
"Pierre Verkest"
],
"videos": [
{
"type": "mp4",
"url": "https://dl.afpy.org/pycon-fr-25/a_la_sauce_python_metaclasses_decorateurs_et_orm_fait_maison.mp4",
"size": 283004549
},
{
"type": "peertube",
"url": "https://indymotion.fr/videos/watch/6f113517-c111-470d-9ba2-6daf7de2ea4a"
}
],
"related_urls": [
{
"label": "Conference schedule",
"url": "https://www.pycon.fr/2025/fr/schedule.html"
}
],
"thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/f273017c-3976-4a04-bfc2-d9c6ffb91377.jpg"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"title": "Accro au caf\u00e9\u202f? Prenez des photos et suivez l'utilisation de la machine du bureau\u202f!",
"description": "Le caf\u00e9 est au code ce que le gras est \u00e0 la vie.\r\n\r\nUn jour j'ai d\u00e9couvert le menu maintenance de la machine \u00e0 caf\u00e9 du bureau. Un monde merveilleux de statistiques d'utilisation s'est ouvert \u00e0 moi. Que boivent mes coll\u00e8gues\u202f? En quelles quantit\u00e9s\u202f? Y a-t-il des jours plus caf\u00e9in\u00e9s que d'autres\u202f? Tant de questions, mais il me faut d'abord acqu\u00e9rir les donn\u00e9es \u202f La machine n'ayant pas de connectique, cela se fera par photo et OCR.\r\n\r\nPour le fun, pour apprendre, pour me changer les id\u00e9es, je me suis lanc\u00e9 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\u00e9 sur des projets existants, parfois \u00e9normes (800k+ lignes).\r\n\r\nEt si je me lan\u00e7ais dans mon propre projet _from scratch_ et que j'en profitais pour d\u00e9couvrir plein de nouvelles choses, pour confronter la page blanche\u202f? Poetry, uv\u202f? Django-Ninja\u202f? Et les nouveaut\u00e9s de Python 3.13+, Django 5.2+ ?\r\n\r\nEnfilez votre plus bel impair et lunettes noires, et venez espionner vos coll\u00e8gues avec moi\u202f!",
"duration": 1272,
"language": "fra",
"recorded": "2025-11-01",
"speakers": [
"R\u00e9mi Cardona"
],
"videos": [
{
"type": "mp4",
"url": "https://dl.afpy.org/pycon-fr-25/accro_au_cafe_prenez_des_photos_et_suivez_l_utilisation_de_la_machine_du_bureau.mp4",
"size": 186465762
},
{
"type": "peertube",
"url": "https://indymotion.fr/videos/watch/2cd58d8e-e505-40bc-98f6-637c295e218e"
}
],
"related_urls": [
{
"label": "Conference schedule",
"url": "https://www.pycon.fr/2025/fr/schedule.html"
}
],
"thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/f9ed2393-b535-4a4c-a28c-2603fc1ebbb4.jpg"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"title": "Advanced Alchemy\u202f: Surcouche puissante de SQLAlchemy",
"description": "Vous adorez **SQLAlchemy** mais vous trouvez sa mise en place r\u00e9p\u00e9titive, fastidieuse ou peu productive\u202f?\r\n\r\n**Advanced Alchemy** est une surcouche puissante et flexible \u00e0 SQLAlchemy, con\u00e7ue pour les d\u00e9veloppeurs en qu\u00eate d\u2019efficacit\u00e9, de scalabilit\u00e9 et de lisibilit\u00e9.\r\n\r\nDans cette conf\u00e9rence, vous d\u00e9couvrirez comment ce projet issu de Litestar red\u00e9finit l\u2019exp\u00e9rience ORM avec SQLAlchemy, sans enfermer dans un framework particulier.\r\n\r\nGr\u00e2ce \u00e0 ses mod\u00e8les typ\u00e9s, sa configuration centralis\u00e9e, sa compatibilit\u00e9 asynchrone et sa gestion int\u00e9gr\u00e9e des migrations, Advanced Alchemy vous permet de cr\u00e9er des API robustes avec des mod\u00e8les Pydantic, une s\u00e9paration claire des entit\u00e9s, et des patterns inspir\u00e9s du DDD (Domain Driven Design).\r\n\r\nNous verrons ensemble\u202f:\r\n\r\n- Comment cr\u00e9er des mod\u00e8les scalables avec l\u2019h\u00e9ritage et les mixins d\u2019Advanced Alchemy\r\n- La gestion des migrations (Alembic) simplifi\u00e9e\r\n- L\u2019optimisation du cycle de vie des sessions avec SQLAlchemyAsyncConfig\r\n- L\u2019int\u00e9gration avec Litestar (mais aussi utilisable avec FastAPI ou autre)\r\n\r\nCe talk est id\u00e9al pour les d\u00e9veloppeurs Python backend qui utilisent d\u00e9j\u00e0 SQLAlchemy, ou pour ceux qui cherchent une alternative moderne aux ORM traditionnels.",
"duration": 1366,
"language": "fra",
"recorded": "2025-11-02",
"speakers": [
"Julien"
],
"videos": [
{
"type": "mp4",
"url": "https://dl.afpy.org/pycon-fr-25/advanced_alchemy_surcouche_puissante_de_sqlalchemy.mp4",
"size": 182563461
},
{
"type": "peertube",
"url": "https://indymotion.fr/videos/watch/4325ec7f-5a26-4eb3-835c-ec2648b6b4f2"
}
],
"related_urls": [
{
"label": "Conference schedule",
"url": "https://www.pycon.fr/2025/fr/schedule.html"
}
],
"thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/7c94c422-20b4-410a-99cb-8d49d4823766.jpg"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"title": "Au secours, on vient auditer mon application",
"description": "Avez-vous d\u00e9j\u00e0 subi un audit de votre application\u202f? Comment avez-vous r\u00e9agi\u202f?\r\n\r\nLes audits de logiciels concernent des sujets divers\u202f: architecture, qualit\u00e9 du code source, choix de la stack technique, outillage, processus\u2026 Et pour chacune de ces pr\u00e9occupation, ils peuvent \u00eatre d\u00e9clench\u00e9s pour diff\u00e9rentes motivations\u202f: comprendre les causes des probl\u00e8mes r\u00e9curents, anticiper des grands projets, pr\u00e9parer un changement d'organisation.\r\n\r\nMais que faire en tant que d\u00e9veloppeur, tech-lead, chef de projet\u202f?\r\n\r\nNous verrons en quoi un audit logiciel va plus loin que Sonar, quelles sont les mani\u00e8res de s'y pr\u00e9parer (m\u00eame \u00e0 la derni\u00e8re minute) et surtout comment en tirer le maximum.",
"duration": 1565,
"language": "fra",
"recorded": "2025-11-02",
"speakers": [
"Thomas Cordival"
],
"videos": [
{
"type": "mp4",
"url": "https://dl.afpy.org/pycon-fr-25/au_secours_on_vient_auditer_mon_application.mp4",
"size": 209453148
},
{
"type": "peertube",
"url": "https://indymotion.fr/videos/watch/ed7c170a-5287-4895-828a-eabc38792451"
}
],
"related_urls": [
{
"label": "Conference schedule",
"url": "https://www.pycon.fr/2025/fr/schedule.html"
}
],
"thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/29f8ba75-abe2-422b-9750-9a8eb0eaaf21.jpg"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"title": "Bonnes pratiques de l'int\u00e9gration d'OIDC et de SAML pour permettre le changement de login",
"description": "Votre responsable arrive en r\u00e9union et vous explique qu'\u00e0 partir de maintenant, les applications doivent permettre de changer le nom d'utilisateur, citant vaguement des contraintes r\u00e9glementaires et des demandes utilisateurs. Comme votre parc d'applications utilise une authentification centralis\u00e9e et des biblioth\u00e8ques libres de qualit\u00e9, vous vous dites que \u00e7a n'est pas un souci, mais le premier test montre qu'h\u00e9las, \u00e7a n'est pas le cas et qu'il faut tout revoir.\r\n\r\n\u00c0 travers les exemples des applications cr\u00e9\u00e9es par le projet Fedora en Python et utilisant OIDC et SAML, nous verrons les probl\u00e8mes qui ont \u00e9t\u00e9 rencontr\u00e9s, les bonnes pratiques pour les \u00e9viter et pourquoi il a \u00e9t\u00e9 d\u00e9cid\u00e9 de permettre de changer ce qu'on estime immuable.",
"duration": 1570,
"language": "fra",
"recorded": "2025-11-01",
"speakers": [
"Michael Scherer"
],
"videos": [
{
"type": "mp4",
"url": "https://dl.afpy.org/pycon-fr-25/bonnes_pratiques_de_l_integration_d_oidc_et_de_saml_pour_permettre_le_changement_de_login.mp4",
"size": 206720054
},
{
"type": "peertube",
"url": "https://indymotion.fr/videos/watch/f82177d3-8efc-40d8-9b33-c9090df26a0d"
}
],
"related_urls": [
{
"label": "Conference schedule",
"url": "https://www.pycon.fr/2025/fr/schedule.html"
}
],
"thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/e8c78bf8-bc23-445f-9259-b60109998e99.jpg"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"title": "Calamars et Pythons\u202f: cr\u00e9ons un jeu 2D avec `arcade`",
"description": "Dans cette conf\u00e9rence, je vous propose d'apprendre \u00e0 cr\u00e9er ensemble un mini-jeu 2D avec la biblioth\u00e8que `arcade.` L'objectif\u202f: vous montrer \u00e0 quel point il est simple (et amusant) de concevoir un jeu, m\u00eame si vous n\u2019\u00eates pas expert en Python.\r\n\r\nAu programme\u202f:\r\n\r\n- ouverture d'une fen\u00eatre\r\n- dessin de forme et affichage d'images\r\n- sons et interactions clavier/souris\r\n- affichage des scores\r\n- quelques effets sp\u00e9ciaux \ud83c\udf87\r\n- et pour finir, la distribution du jeu\r\n\r\nAucun pr\u00e9requis avanc\u00e9 n'est n\u00e9cessaire\u202f: je m'engage \u00e0 rester dans un code simple, lisible et p\u00e9dagogique. Venez d\u00e9couvrir `arcade`, une biblioth\u00e8que moderne et intuitive, et repartez avec l'envie de cr\u00e9er vos propres jeux\u202f!\r\n\r\nEt longue vie aux calamars !",
"duration": 3155,
"language": "fra",
"recorded": "2025-11-02",
"speakers": [
"Vincent Poulailleau"
],
"videos": [
{
"type": "mp4",
"url": "https://dl.afpy.org/pycon-fr-25/calamars_et_pythons_creons_un_jeu_2d_avec_arcade.mp4",
"size": 419369682
},
{
"type": "peertube",
"url": "https://indymotion.fr/videos/watch/4151b233-3a6f-4111-a45c-ae0779b3f7a0"
}
],
"related_urls": [
{
"label": "Conference schedule",
"url": "https://www.pycon.fr/2025/fr/schedule.html"
}
],
"thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/4f5c845c-d4a9-4d6e-b1fa-5586621e48bd.jpg"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"title": "Canaille, un fournisseur d'identit\u00e9 l\u00e9ger en Python",
"description": "[Canaille](https://canaille.readthedocs.io) est un fournisseur d'identit\u00e9 l\u00e9ger qui impl\u00e9mente les normes OpenID Connect, OAuth2 et SCIM.\r\n\r\nC'est une sorte de Keycloak super l\u00e9ger, \u00e9crit en Python, qui utilise Flask et htmx.\r\n\r\nJe voudrais vous pr\u00e9senter les fonctionnalit\u00e9s de Canaille, d'o\u00f9 est venu ce besoin de r\u00e9inventer la roue, les autres projets dans lesquels ce d\u00e9veloppement m'a fait mettre les mains (et parfois devenir co-mainteneur).\r\n\r\nEnfin je voudrais pr\u00e9senter comment d\u00e9velopper des applications web en d\u00e9l\u00e9guant compl\u00e8tement l'authentification gr\u00e2ce \u00e0 OIDC et SCIM. Et comment utiliser Canaille pour avoir un serveur d'identit\u00e9 dans un environnement de d\u00e9veloppement ou dans des tests unitaires, sans mettre sa machine \u00e0 genoux.",
"duration": 1288,
"language": "fra",
"recorded": "2025-11-02",
"speakers": [
"\u00c9loi Rivard"
],
"videos": [
{
"type": "mp4",
"url": "https://dl.afpy.org/pycon-fr-25/canaille_un_fournisseur_d_identite_leger_en_python.mp4",
"size": 163868976
},
{
"type": "peertube",
"url": "https://indymotion.fr/videos/watch/9a032ba5-3e58-441a-864d-e150e426c1dc"
}
],
"related_urls": [
{
"label": "Conference schedule",
"url": "https://www.pycon.fr/2025/fr/schedule.html"
}
],
"thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/9b8c710f-fe72-4dbb-8973-1a0e0393288f.jpg"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"title": "Cartographier les dommages caus\u00e9s aux b\u00e2timents avec Python et le satellite Sentinel-1",
"description": "En tant qu'organisation active dans la r\u00e9duction de la violence arm\u00e9e, la r\u00e9duction des risques de catastrophe et les situations d'urgence, Handicap International (HI) intervient dans de multiples contextes o\u00f9 les dommages caus\u00e9s aux b\u00e2timents sont tr\u00e8s fr\u00e9quents. L'\u00e9valuation de ces dommages est une information essentielle pour hi\u00e9rarchiser les zones d\u2019intervention et les activit\u00e9s \u00e0 mettre en \u0153uvre. Lorsque de vastes zones sont touch\u00e9es par des al\u00e9as d\u2019origine naturelle ou des conflits arm\u00e9s, l'imagerie satellite fournit des donn\u00e9es pr\u00e9cieuses pour mener \u00e0 bien ces \u00e9valuations. \r\n\r\nLes images radar du satellite Sentinel-1, coupl\u00e9es \u00e0 une analyse statistique r\u00e9alis\u00e9e avec Python, permettent d\u2019\u00e9valuer les dommages caus\u00e9s aux b\u00e2timents sans recourir \u00e0 des images \u00e0 tr\u00e8s haute r\u00e9solution ou \u00e0 des mod\u00e8les avanc\u00e9s d\u2019intelligence artificielle. Ce test statistique consiste \u00e0 calculer une *t-value* par pixel \u00e0 partir d\u2019images avant et apr\u00e8s la survenue des dommages, puis \u00e0 la moyenner sur les emprises de b\u00e2timent afin de caract\u00e9riser la pr\u00e9sence de dommages \u00e0 partir d\u2019une valeur seuil de cette *t-value* moyenne. \r\n\r\nNous pr\u00e9senterons comment la mise \u00e0 disposition en open-source du code du [Pixel-Wise T-Test](https://arxiv.org/abs/2405.06323) par Ollie Ballinger a permis \u00e0 HI de tester cet algorithme et de l\u2019adapter \u00e0 ses enjeux de priorisation des activit\u00e9s.",
"duration": 1887,
"language": "fra",
"recorded": "2025-11-02",
"speakers": [
"Fr\u00e9d\u00e9ric Lamy",
"Pierre-Henri Dubois"
],
"videos": [
{
"type": "mp4",
"url": "https://dl.afpy.org/pycon-fr-25/cartographier_les_dommages_causes_aux_batiments_avec_python_et_le_satellite_sentinel_1.mp4",
"size": 298128089
},
{
"type": "peertube",
"url": "https://indymotion.fr/videos/watch/12feec47-6270-4ad1-b88d-582416392ea7"
}
],
"related_urls": [
{
"label": "Conference schedule",
"url": "https://www.pycon.fr/2025/fr/schedule.html"
}
],
"thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/a31a31b8-ac0d-43c3-9277-566fb4cd8206.jpg"
}
28 changes: 28 additions & 0 deletions pycon-fr-2025/videos/cloture_closing.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"title": "Accueil / Welcome",
"description": "Session d'ouverture de PyConFR 2025.\n\nOpening talk for PyConFR 2025.",
"duration": 2447,
"language": "fra",
"recorded": "2025-11-01",
"speakers": [
"Lucie Anglade"
],
"videos": [
{
"type": "mp4",
"url": "https://dl.afpy.org/pycon-fr-25/accueil_welcome.mp4",
"size": 338779821
},
{
"type": "peertube",
"url": "https://indymotion.fr/videos/watch/f9183556-f30e-4c75-8290-5aca6f72c20c"
}
],
"related_urls": [
{
"label": "Conference schedule",
"url": "https://www.pycon.fr/2025/fr/schedule.html"
}
],
"thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/23317aea-1f7f-4398-8435-23f17a885329.jpg"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"title": "Comment enseigner le Python \u00e0 l\u2019\u00e8re de l\u2019intelligence artificielle g\u00e9n\u00e9rative\u202f?",
"description": "L\u2019intelligence artificielle g\u00e9n\u00e9rative change notre rapport \u00e0 l\u2019apprentissage du code et en particulier du langage Python. De nombreux d\u00e9butants arrivent d\u00e9sormais \u00e0 Python via des outils g\u00e9n\u00e9ralistes comme ChatGPT ou plus sp\u00e9cialis\u00e9s dans le \u00ab\u202fvibe coding\u202f\u00bb comme Cursor. Comment adapter l\u2019enseignement du Python \u00e0 ces nouveaux profils\u202f? Quels concepts faut-il encore enseigner et comment\u202f? Cette conf\u00e9rence propose des pistes p\u00e9dagogiques concr\u00e8tes pour aider ces nouveaux utilisateurs \u00e0 acqu\u00e9rir une compr\u00e9hension r\u00e9elle et durable du langage.",
"duration": 1483,
"language": "fra",
"recorded": "2025-11-01",
"speakers": [
"Pierre-Loic Bayart"
],
"videos": [
{
"type": "mp4",
"url": "https://dl.afpy.org/pycon-fr-25/comment_enseigner_le_python_a_lere_de_lintelligence_artificielle_generative.mp4",
"size": 198020697
},
{
"type": "peertube",
"url": "https://indymotion.fr/videos/watch/4a26ea4c-bcd2-4d51-8844-11fac319fe2a"
}
],
"related_urls": [
{
"label": "Conference schedule",
"url": "https://www.pycon.fr/2025/fr/schedule.html"
}
],
"thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/45f8e243-160c-4993-a8c0-56db6ac4ffa0.jpg"
}
Loading