Skip to content

Commit af8efe7

Browse files
authored
Merge pull request #1364 from entwanne/pycon-fr-2025
Add videos for PyConFR 2025
2 parents f5de64f + 2dd1882 commit af8efe7

File tree

57 files changed

+1579
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+1579
-0
lines changed

pycon-fr-2025/category.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"title": "PyCon FR 2025"
3+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{
2+
"title": "\u00c0 la sauce Python\u202f: m\u00e9taclasses, d\u00e9corateurs et ORM fait maison",
3+
"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.",
4+
"duration": 2265,
5+
"language": "fra",
6+
"recorded": "2025-11-02",
7+
"speakers": [
8+
"Pierre Verkest"
9+
],
10+
"videos": [
11+
{
12+
"type": "mp4",
13+
"url": "https://dl.afpy.org/pycon-fr-25/a_la_sauce_python_metaclasses_decorateurs_et_orm_fait_maison.mp4",
14+
"size": 283004549
15+
},
16+
{
17+
"type": "peertube",
18+
"url": "https://indymotion.fr/videos/watch/6f113517-c111-470d-9ba2-6daf7de2ea4a"
19+
}
20+
],
21+
"related_urls": [
22+
{
23+
"label": "Conference schedule",
24+
"url": "https://www.pycon.fr/2025/fr/schedule.html"
25+
}
26+
],
27+
"thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/f273017c-3976-4a04-bfc2-d9c6ffb91377.jpg"
28+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{
2+
"title": "Accro au caf\u00e9\u202f? Prenez des photos et suivez l'utilisation de la machine du bureau\u202f!",
3+
"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!",
4+
"duration": 1272,
5+
"language": "fra",
6+
"recorded": "2025-11-01",
7+
"speakers": [
8+
"R\u00e9mi Cardona"
9+
],
10+
"videos": [
11+
{
12+
"type": "mp4",
13+
"url": "https://dl.afpy.org/pycon-fr-25/accro_au_cafe_prenez_des_photos_et_suivez_l_utilisation_de_la_machine_du_bureau.mp4",
14+
"size": 186465762
15+
},
16+
{
17+
"type": "peertube",
18+
"url": "https://indymotion.fr/videos/watch/2cd58d8e-e505-40bc-98f6-637c295e218e"
19+
}
20+
],
21+
"related_urls": [
22+
{
23+
"label": "Conference schedule",
24+
"url": "https://www.pycon.fr/2025/fr/schedule.html"
25+
}
26+
],
27+
"thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/f9ed2393-b535-4a4c-a28c-2603fc1ebbb4.jpg"
28+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{
2+
"title": "Advanced Alchemy\u202f: Surcouche puissante de SQLAlchemy",
3+
"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.",
4+
"duration": 1366,
5+
"language": "fra",
6+
"recorded": "2025-11-02",
7+
"speakers": [
8+
"Julien"
9+
],
10+
"videos": [
11+
{
12+
"type": "mp4",
13+
"url": "https://dl.afpy.org/pycon-fr-25/advanced_alchemy_surcouche_puissante_de_sqlalchemy.mp4",
14+
"size": 182563461
15+
},
16+
{
17+
"type": "peertube",
18+
"url": "https://indymotion.fr/videos/watch/4325ec7f-5a26-4eb3-835c-ec2648b6b4f2"
19+
}
20+
],
21+
"related_urls": [
22+
{
23+
"label": "Conference schedule",
24+
"url": "https://www.pycon.fr/2025/fr/schedule.html"
25+
}
26+
],
27+
"thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/7c94c422-20b4-410a-99cb-8d49d4823766.jpg"
28+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{
2+
"title": "Au secours, on vient auditer mon application",
3+
"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.",
4+
"duration": 1565,
5+
"language": "fra",
6+
"recorded": "2025-11-02",
7+
"speakers": [
8+
"Thomas Cordival"
9+
],
10+
"videos": [
11+
{
12+
"type": "mp4",
13+
"url": "https://dl.afpy.org/pycon-fr-25/au_secours_on_vient_auditer_mon_application.mp4",
14+
"size": 209453148
15+
},
16+
{
17+
"type": "peertube",
18+
"url": "https://indymotion.fr/videos/watch/ed7c170a-5287-4895-828a-eabc38792451"
19+
}
20+
],
21+
"related_urls": [
22+
{
23+
"label": "Conference schedule",
24+
"url": "https://www.pycon.fr/2025/fr/schedule.html"
25+
}
26+
],
27+
"thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/29f8ba75-abe2-422b-9750-9a8eb0eaaf21.jpg"
28+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{
2+
"title": "Bonnes pratiques de l'int\u00e9gration d'OIDC et de SAML pour permettre le changement de login",
3+
"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.",
4+
"duration": 1570,
5+
"language": "fra",
6+
"recorded": "2025-11-01",
7+
"speakers": [
8+
"Michael Scherer"
9+
],
10+
"videos": [
11+
{
12+
"type": "mp4",
13+
"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",
14+
"size": 206720054
15+
},
16+
{
17+
"type": "peertube",
18+
"url": "https://indymotion.fr/videos/watch/f82177d3-8efc-40d8-9b33-c9090df26a0d"
19+
}
20+
],
21+
"related_urls": [
22+
{
23+
"label": "Conference schedule",
24+
"url": "https://www.pycon.fr/2025/fr/schedule.html"
25+
}
26+
],
27+
"thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/e8c78bf8-bc23-445f-9259-b60109998e99.jpg"
28+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{
2+
"title": "Calamars et Pythons\u202f: cr\u00e9ons un jeu 2D avec `arcade`",
3+
"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 !",
4+
"duration": 3155,
5+
"language": "fra",
6+
"recorded": "2025-11-02",
7+
"speakers": [
8+
"Vincent Poulailleau"
9+
],
10+
"videos": [
11+
{
12+
"type": "mp4",
13+
"url": "https://dl.afpy.org/pycon-fr-25/calamars_et_pythons_creons_un_jeu_2d_avec_arcade.mp4",
14+
"size": 419369682
15+
},
16+
{
17+
"type": "peertube",
18+
"url": "https://indymotion.fr/videos/watch/4151b233-3a6f-4111-a45c-ae0779b3f7a0"
19+
}
20+
],
21+
"related_urls": [
22+
{
23+
"label": "Conference schedule",
24+
"url": "https://www.pycon.fr/2025/fr/schedule.html"
25+
}
26+
],
27+
"thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/4f5c845c-d4a9-4d6e-b1fa-5586621e48bd.jpg"
28+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{
2+
"title": "Canaille, un fournisseur d'identit\u00e9 l\u00e9ger en Python",
3+
"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.",
4+
"duration": 1288,
5+
"language": "fra",
6+
"recorded": "2025-11-02",
7+
"speakers": [
8+
"\u00c9loi Rivard"
9+
],
10+
"videos": [
11+
{
12+
"type": "mp4",
13+
"url": "https://dl.afpy.org/pycon-fr-25/canaille_un_fournisseur_d_identite_leger_en_python.mp4",
14+
"size": 163868976
15+
},
16+
{
17+
"type": "peertube",
18+
"url": "https://indymotion.fr/videos/watch/9a032ba5-3e58-441a-864d-e150e426c1dc"
19+
}
20+
],
21+
"related_urls": [
22+
{
23+
"label": "Conference schedule",
24+
"url": "https://www.pycon.fr/2025/fr/schedule.html"
25+
}
26+
],
27+
"thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/9b8c710f-fe72-4dbb-8973-1a0e0393288f.jpg"
28+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
{
2+
"title": "Cartographier les dommages caus\u00e9s aux b\u00e2timents avec Python et le satellite Sentinel-1",
3+
"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.",
4+
"duration": 1887,
5+
"language": "fra",
6+
"recorded": "2025-11-02",
7+
"speakers": [
8+
"Fr\u00e9d\u00e9ric Lamy",
9+
"Pierre-Henri Dubois"
10+
],
11+
"videos": [
12+
{
13+
"type": "mp4",
14+
"url": "https://dl.afpy.org/pycon-fr-25/cartographier_les_dommages_causes_aux_batiments_avec_python_et_le_satellite_sentinel_1.mp4",
15+
"size": 298128089
16+
},
17+
{
18+
"type": "peertube",
19+
"url": "https://indymotion.fr/videos/watch/12feec47-6270-4ad1-b88d-582416392ea7"
20+
}
21+
],
22+
"related_urls": [
23+
{
24+
"label": "Conference schedule",
25+
"url": "https://www.pycon.fr/2025/fr/schedule.html"
26+
}
27+
],
28+
"thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/a31a31b8-ac0d-43c3-9277-566fb4cd8206.jpg"
29+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
{
2+
"title": "Accueil / Welcome",
3+
"description": "Session d'ouverture de PyConFR 2025.\n\nOpening talk for PyConFR 2025.",
4+
"duration": 2447,
5+
"language": "fra",
6+
"recorded": "2025-11-01",
7+
"speakers": [
8+
"Lucie Anglade"
9+
],
10+
"videos": [
11+
{
12+
"type": "mp4",
13+
"url": "https://dl.afpy.org/pycon-fr-25/accueil_welcome.mp4",
14+
"size": 338779821
15+
},
16+
{
17+
"type": "peertube",
18+
"url": "https://indymotion.fr/videos/watch/f9183556-f30e-4c75-8290-5aca6f72c20c"
19+
}
20+
],
21+
"related_urls": [
22+
{
23+
"label": "Conference schedule",
24+
"url": "https://www.pycon.fr/2025/fr/schedule.html"
25+
}
26+
],
27+
"thumbnail_url": "https://indymotion.fr/lazy-static/thumbnails/23317aea-1f7f-4398-8435-23f17a885329.jpg"
28+
}

0 commit comments

Comments
 (0)