Je commence l'année par une petite contribution open-source pour les documentations de projets python: sphinxcontrib-run.
TLDR; une directive qui permet d'exécuter du code à la volée pendant la génération d'une doc.
Cette extension au générateur de documentation sphinx concerne la partie des documentations d'API générées automatiquement à partir des commentaires dans le code source, les "docstrings". Les docstrings sont rédigées au format reStructuredText qui est un peu plus évolué que markdown et permet d'appeler des directives avec des arguments pour désigner un bloc de code, une référence, un argument de fonctions, etc.
L'extension sphinxcontrib-run ajoute une nouvelle directive .. run:: qui prend un morceau de code python en argument et l'exécute immédiatement pendant la construction de la documentation. Plus précisément, un interpréteur python est démarré pour chaque page de documentation traitée par sphinx et, à chaque fois que sphinx insère dans la page un nœud correspondant à la directive .. run::, le code est exécuté dans cet interpréteur.
Au passage, ce que le code écrit sur la sortie standard est inséré dans la documentation.
Voici un exemple pour un module python jouet:
""".. run:: from example import square_text_50 lorem = ( "Lorem ipsum dolor sit amet, consectetur adipiscing elit." + " Pellentesque faucibus vestibulum est id consequat." + " Cras sed enim sed ex maximus blandit." )"""defsquare_text_50(text):"""Wrap text to 40 columns. .. run:: print("::") print("") for line in square_text_50(lorem): print(" " + line) print("") """foriinrange(0,len(text),50):yieldtext[i:i+50]
Si l'on utilise automodule, sphinx va traiter toutes les docstrings à la suite dans la même page, et donc sphinxcontrib-run exécutera les morceaux de code dans le même interpréteur.
La première directive .. run:: fait les imports et instancie une variable globale qui pourra servir plusieurs fois.
La seconde directive intervient dans la documentation de la fonction, elle génère dynamiquement la sortie de la fonction pour faire un exemple.
Dans la documentation, le résultat ressemble à ceci:
Je vais personnellement utiliser ce projet pour générer automatiquement des figures à insérer dans la doc d'un autre projet, ça m'évitera de les ajouter au dépôt git et d'avoir à les tenir à jour.
Au passage, je note que l'API sphinx pour ajouter des directives est très bien faite et bien documentée.
Enfin, il faut aussi mentionner un projet similaire au mien: https://github.com/sphinx-contrib/eval
Un aide-mémoire contenant des chiffres réels de timing et de consommation mémoire pour guider les décisions critiques en matière de performance en Python. Cette ressource fournit aux développeur·se·s les métriques essentielles pour optimiser leurs applications Python de manière éclairée.
En septembre, j’ai changé de poste, et me voilà à manger du Python toute la journée. Je décrirai dans cet article mon expérience avec le langage.
Background
J’ai appris à programmer comme beaucoup en lisant des tutoriels sur internet il y a presque 20 ans, avec HTML/PHP et C.
Pendant mes études, j’ai eu l’occasion de toucher à plein de langages: Java, C, PHP (que j’aimais beaucoup car je pouvais facilement faire un site web sympa en codant comme un cochon), Ocaml, ou des choses un peu plus obscures comme VHDL (c’était ultra fun et intéressant) et Cobol.
Durant ma carrière, j’ai alterné entre des rôles de dev/lead dev et de SRE (où je codais toujours énormément: infrastructure API-first, self-service, platform engineering, tooling…). J’ai notamment travaillé 6 ans avec Golang, 4 ans avec Clojure, j’ai été payé pour faire du Java et du Typescript, et je continue d’explorer d’autres langages sur mon temps libre. Bien sûr, nous sommes entre personnes civilisées, donc je ne mentionnerai pas shell/bash ici.
Comme tout bon sysadmin/SRE qui se respecte, j’ai fait du Python, mais à l’arrache. D’ailleurs, le second article de ce blog (2016!) explique comment développer un plugin Ansible (donc en Python) pour générer des logs structurés de l’outil et en dériver des métriques.
J’avais aussi de temps en temps l’occasion de contribuer à des codebases Python, et je n’aimais pas ça, notamment à cause de la gestion des dépendances qui était en dessous de tout.
En septembre 2025, après 3 ans et demi à bosser comme SRE, j’ai décidé de revenir sur un rôle plus proche du produit et du développement, toujours au même endroit mais dans une nouvelle équipe. Vu que c’est un rôle avec également une grosse composante AI, on est parti sur Python.
Quatre mois plus tard et avec un premier produit en prod, j’ai envie de faire un REX sur Python vu que j’ai énormément appris sur le langage pendant cette période.
Je suis une lycéenne et encore une débutante en programmation.
Cette année, dans le cadre d’un projet scolaire, nous sommes amenés à créer une application d’autogestion pour aider les personnes qui trouvent des difficultés à gérer leur temps et à s’autogérer..
Et en tant que débutante j’ai besoin de réponses à certaines questions sur les fonctionnalités à intégrer dans l’application ainsi que sur les techniques de programmation Python.
Merci de m’accorder un peu de votre temps ce sera vraiment gentil. Merciii.
Emploi ouvert aux contractuels (Catégorie A+), temps plein, télétravail (2j/semaine), déplacement mensuel à Paris. Les candidatures se font obligatoirement depuis le site passerelles.economie.gouv.fr.
Descriptif de l’employeur
Le service à compétence nationale (SCN) dénommé « Pôle d’Expertise de la Régulation Numérique » (PEReN), a pour mission d’apporter son expertise et son assistance techniques aux services de l’État et autorités administratives intervenant dans la régulation des plateformes numériques. Il est placé sous l’autorité des ministres chargés de l’économie, de la communication et du numérique et rattaché au Directeur Général des Entreprises (DGE) pour sa gestion administrative et financière.
Le PEReN, constitué actuellement de 30 personnes, réunit les expertises humaines et ressources technologiques principalement dans les domaines du traitement des données, de la data science et de l’analyse algorithmique. Il fournit son savoir-faire technique aux services de l’État et autorités administratives qui le sollicitent (par exemple, Autorité de la concurrence, ARCOM, CNIL, ARCEP, ou directions ministérielles telles que la DGE, la DGCCRF, la DGT ou la DGMIC) en vue d’accéder à une compréhension approfondie des écosystèmes d’information exploités par les grands acteurs du numérique.
Le PEReN est également un centre d’expertise mutualisé entre les différents services de l’État qui conduit une réflexion sur la régulation des plateformes numériques et les outils de cette régulation, dans une approche à la pointe des avancées scientifiques.
Il a également vocation à animer un réseau de recherche dédié à la régulation des grandes plateformes numériques, et peut être amené à réaliser à son initiative des travaux de recherche académique liés aux différentes thématiques.
Description du profil recherché
Vous disposez d’une expérience professionnelle d’au moins 3 ans en tant que DevOps. Vous savez par ailleurs mobiliser vos savoirs en autonomie :
Bonne connaissance des technologies de conteneurisation et d’orchestration (de type Kubernetes) ;
Des connaissances avancées en administration des systèmes sous Linux ;
Utilisation de Git ;
Maîtrise des processus de développements (revue de code, système de tickets, forge logicielle, CI/CD) ;
Expérience de travail avec au moins un fournisseur de Cloud ;
Connaissance de l’écosystème Python 3 (Python 3.13+, bibliothèques usuelles d’analyse de données, écriture de tests unitaires) et des bonnes pratiques de développement associées.
Compte tenu des interactions fréquentes avec le personnel de la Commission Européenne, une bonne maîtrise de l’anglais est indispensable.
Les expériences et connaissances suivantes seront considérées comme des atouts sans pour autant être strictement requises dans le contexte de cette fiche de poste :
Expérience dans un contexte fonction publique ou de projet européen ;
Expérience en évaluation de systèmes d’IA, notamment d’utilisation du framework Inspect. et/ou d’évaluation d’agents dans une sandbox.
Description du poste
Le Règlement sur l’Intelligence Artificielle (RIA) est une législation européenne, entrée en application le 1er août 2024, qui impose aux fournisseurs et déployeurs de modèles et systèmes d’IA, en particulier les fournisseurs de modèles d’IA à usage général (GPAI), des obligations, notamment en matière de transparence et de sécurité. Son article 92 autorise le Bureau de l’IA de la Commission Européenne à effectuer des évaluations des GPAI afin de s’assurer de leur conformité avec le RIA.
Dans ce cadre, le Bureau de l’IA va confier le développement d’une interface d’évaluation de modèles d’IA agentiques ainsi que le déploiement sur son infrastructure de cette interface à un organisme spécialisé. Le PEReN s’est positionné pour se voir confier la réalisation de ce projet, en s’associant à un partenaire institutionnel.
Intégré(e) au sein d’une équipe dédiée de six personnes ayant une expertise dans le domaine, vous mettez en œuvre et êtes responsable du développement d’un plugin Inspect et du déploiement et de la maintenance de la solution développée. Cette équipe est composée de deux développeur(euse)s, d’un(e) autre devOps, d’un(e) ingénieur(e) évaluation de l’IA et un(e) chef(fe) de projet. Vous échangerez également de manière régulière avec l’équipe d’administrateurs systèmes du PEReN en charge de la gestion de notre infrastructure, notamment le DevOps et le responsable des systèmes d’information (RSSI). Vous serez également intégré à l’équipe du PEReN qui dispose de compétences et ressources mobilisables sur ces sujets, et accompagné par un porteur de projet expérimenté.
Vous serez amené(e) à :
Mettre en place, en lien avec le deuxième DevOps, une infrastructure de test répliquant l’infrastructure de la Commission Européenne.
Déployer des évaluations à l’échelle sur les infrastructures Cloud de la Commission Européenne en utilisant le code développé au cours du projet, en appui avec le personnel de la Commission ;
En particulier, pour des benchmarks à déployer dans des environnements sandbox conteneurisés, à écrire des Dockerfile si besoin, à identifier des charts Helm pertinents et à écrire des fichiers values ;
Développer un plugin pour déployer des évaluations avec Inspect sur des environnements sandbox de type VM afin de traiter les évaluations à haut risque nécessitant une forte isolation ;
Archiver des jobs d’évaluation pour mise à disposition de la Commission Européenne ;
Davantage de détails sur le contexte du projet sont disponibles à l’adresse suivante.
Marco 'Lubber' Wienkoop pour son travail sur Fomantic-UI, un chouette framework CSS que nous utilisons dans canaille. Fomantic-UI est aussi utilisé par d'autres outils sur lesquels nous comptons, comme Forgejo.
Hsiaoming Yang pour son travail sur authlib, une bibliothèque python d'authentification que nous utilisons dans canaille.
PyCon France (PyConFR) est une conférence qui a lieu chaque année (sauf circonstances exceptionnelles) en France. Cette année, elle a eu lieu du 30 octobre au 2 novembre à Lyon, rassemblant des personnes de la communauté Python. Les participantes et participants à la conférence sont tenues de respecter le Code de Conduite de l’Association Francophone Python, l’association qui organise l’événement.
Le but de ce document est d’améliorer l’accueil et la sécurité des participantes et participants ainsi que de donner aux organisateurs et organisatrices des indicateurs sur le comportement de la communauté. En effet, pour pouvoir entendre, il faut pouvoir écouter. C’est maintenant devenu une pratique courante, pour les organisations ayant un Code de Conduite, de publier un rapport de transparence suite à la tenue d’une conférence. C’est le but de ce document.
(Remplacez ce paragraphe par une courte description de votre nouvelle catégorie. Cette information apparaîtra dans la zone de sélection de la catégorie, veillez donc à saisir moins de 200 caractères.)
Utilisez les paragraphes suivants pour une plus longue description ou pour établir des règles :
À quoi sert cette catégorie ? Pourquoi les utilisateurs choisiraient-ils cette catégorie pour leur discussion ?
En quoi est-elle différente des autres catégories existantes ?
Quels sont les sujets qui devraient figurer dans cette catégorie ?
Avons-nous besoin de cette catégorie ? Devrions-nous fusionner celle-ci avec une autre catégorie ?