Code public et données

Python dans le code source public français : les chiffres de l'inventaire code.gouv.fr

Code public et données · · Publié le 2026-11-10

Des rangées de femmes devant des perforatrices dans un grand bureau des années 1940, reportant des questionnaires de recensement sur des cartes perforées
Report des questionnaires du recensement américain de 1940 sur cartes perforées. US Census Bureau, domaine public.

L'État tient un inventaire public des dépôts de code source publiés par les organismes publics français. En l'analysant, une question simple trouve une réponse chiffrée : dans quels langages l'administration écrit-elle le code qu'elle publie, et quelle place y occupe Python ? Réponse courte : la première, sur GitHub, avec des pratiques de publication plutôt meilleures que la moyenne, mais encore loin d'être systématiques.

La source : l'inventaire de code.gouv.fr

La Direction interministérielle du numérique (DINUM) publie sur data.gouv.fr l'inventaire des codes sources de logiciels publiés par des organismes publics, sous Licence Ouverte 2.0. Le fichier des dépôts (codegouvfr-repositories.csv) que nous avons téléchargé le 10 novembre 2026 est daté du 24 septembre 2025 ; c'est la version analysée ici. La fiche du jeu de données prévient qu'il n'est pas exhaustif, la liste des comptes d'organisation recensés étant incomplète, et indique qu'il n'est plus mis à jour depuis le 13 avril 2025, alors que le fichier lui-même contient des dates de mise à jour de dépôts allant jusqu'au 23 septembre 2025. Les chiffres qui suivent décrivent donc un instantané de 2025, pas l'état actuel.

Le fichier recense 32 999 dépôts sur 82 forges : GitHub, mais aussi les instances GitLab d'universités et d'organismes de recherche. Seuls les dépôts hébergés sur GitHub (9 856) ont un langage renseigné ; l'analyse des langages porte donc sur GitHub uniquement. Nous avons écarté les copies de projets tiers (forks), ce qui laisse 8 552 dépôts appartenant à 243 comptes, dont 7 400 ont un langage principal identifié.

Python, premier langage des dépôts publics sur GitHub

Dépôts par langage principalBarres horizontales : nombre de dépôts GitHub hors forks des organismes publics par langage principal, inventaire code.gouv.fr de septembre 2025. Python 1 334, JavaScript 1 155, Java 1 100, TypeScript 525, HTML 460, Shell 358, Jupyter Notebook 243, PHP 219, CSS 194, C++ 189.Python1 334 · 18,0 %JavaScript1 155 · 15,6 %Java1 100 · 14,9 %TypeScript525 · 7,1 %HTML460 · 6,2 %Shell358 · 4,8 %Jupyter Notebook243 · 3,3 %PHP219 · 3,0 %CSS194 · 2,6 %C++189 · 2,6 %
Dépôts GitHub d'organismes publics (hors forks) par langage principal, inventaire code.gouv.fr du 24 septembre 2025. Les 10 premiers langages ; part calculée sur les 7 400 dépôts dont le langage est identifié. Graphique Four Spaces, réutilisation libre avec lien.

Avec 1 334 dépôts, Python devance JavaScript (1 155) et Java (1 100). Si l'on ajoute les 243 dépôts dont le langage principal est « Jupyter Notebook », presque toujours des carnets Python, on atteint 1 577 dépôts. Le « langage principal » est celui que la forge attribue au dépôt d'après le volume de code : un projet Python accompagné d'une grosse interface web peut apparaître sous JavaScript.

Le détail par compte nuance la lecture des chiffres bruts. Les 1 100 dépôts Java se concentrent sur 75 comptes, et deux d'entre eux, lutece-platform et lutece-secteur-public, en totalisent à eux seuls 556 (404 et 152) : l'écosystème de modules du cadre applicatif Lutece pèse donc la moitié du total Java. Python est beaucoup plus dispersé : 149 comptes, dont aucun ne dépasse 67 dépôts. Les plus fournis sont medialab (67), etalab (65), betagouv (65), PyMoDAQ (61), openalea (45), openfisca (40) et IGNF (38). On y retrouve des laboratoires de recherche, des équipes de l'État et des opérateurs de données publiques, ce qui correspond aux usages connus du langage : analyse de données, calcul scientifique, outils de traitement et services web.

Sur les seuls dépôts actifs (non archivés, mis à jour depuis le 1er janvier 2025), l'ordre change : Java passe devant avec 740 dépôts sur 3 240 (22,8 %), contre 618 pour Python (19,1 %). L'écart s'explique largement par les modules Lutece, mis à jour en bloc : 544 des 740 dépôts Java actifs relèvent des deux comptes Lutece.

Licences, contribution, activité : les pratiques comparées

LangageDépôtsComptesLicence de la liste officielleSans licence détectéeFichier CONTRIBUTINGMis à jour en 2025
Python1 33414957,1 %28,2 %13,3 %47,9 %
JavaScript1 15514543,9 %46,8 %3,5 %30,8 %
Java1 1007524,5 %68,5 %2,2 %67,7 %
TypeScript5258255,8 %36,2 %12,0 %62,1 %
HTML46014033,5 %54,3 %6,1 %34,1 %
Jupyter Notebook2435948,1 %42,8 %7,4 %37,0 %

Licences. Pour publier un logiciel, un organisme public doit choisir une licence dans la liste prévue à l'article D323-2-1 du code des relations entre le public et l'administration (MIT, BSD, Apache 2.0, CeCILL, GPL, LGPL et AGPL version 3, MPL 2.0, EPL 2.0, EUPL 1.2). Parmi les dépôts Python, 762 (57,1 %) portent une licence dont l'identifiant correspond à cette liste. Les plus fréquentes sont MIT (346 dépôts, 25,9 %), AGPL-3.0 (134, 10,0 %), GPL-3.0 (131, 9,8 %), BSD-3-Clause (67, 5,0 %) et Apache-2.0 (54, 4,0 %). 158 dépôts (11,8 %) ont une licence que l'outil de collecte n'a pas reconnue (« other ») : aucune licence CeCILL-B ou CeCILL-C n'apparaît sous son propre identifiant dans le fichier : les dépôts qui en utilisent figurent sans doute dans cette catégorie, aux côtés de textes maison. Enfin 376 dépôts (28,2 %) n'ont aucune licence détectée. C'est moins que pour JavaScript (46,8 %) ou Java (68,5 %), mais cela reste plus d'un dépôt Python sur quatre dont la réutilisation n'est pas juridiquement claire. 38 dépôts utilisent des licences reconnues mais absentes de la liste, surtout la GPL version 2 (24 dépôts) et la LGPL 2.1 (10).

Contribution. La documentation de code.gouv.fr recommande de décrire les modalités de contribution dans un fichier CONTRIBUTING.md à la racine du dépôt. 178 dépôts Python (13,3 %) en ont un, la proportion la plus élevée des grands langages, à égalité avec Shell (13,1 %) et devant TypeScript (12,0 %).

Activité. 639 dépôts Python ont une date de dernière mise à jour en 2025, et 131 sont archivés, c'est-à-dire explicitement figés par leurs responsables. Une mise à jour peut être mineure ; ce chiffre mesure un signe de vie, pas un volume de développement.

Ce qu'il faut en retenir

Python est le langage le plus répandu dans le code que les organismes publics français publient sur GitHub, et il l'est de façon diffuse, porté par une large variété d'équipes plutôt que par un grand projet unique. Les dépôts Python sont aussi, en proportion, mieux licenciés et plus ouverts à la contribution que ceux des autres grands langages. Mais plus d'un sur quatre reste sans licence détectée, ce qui empêche en droit sa réutilisation : c'est le premier point à vérifier avant d'ouvrir un dépôt, comme nous l'expliquons dans Publier du code Python dans un organisme public. Pour les noms, les commentaires et la documentation, la doctrine de l'État est détaillée dans Coder en français ou en anglais ?

Méthode

Données : le tableau complet des 12 premiers langages (dépôts, comptes, licences, CONTRIBUTING, archivage, activité) est téléchargeable au format CSV : python-code-public-langages-2025-09.csv. Il est dérivé de l'inventaire de la DINUM, diffusé sous Licence Ouverte 2.0 ; vous pouvez le réutiliser librement en citant la source : « Four Spaces, d'après l'inventaire code.gouv.fr (DINUM), septembre 2025 ».

Sources