Processus de développement et de diffusion d'une application en Python

Objectifs

Le langage Python est maintenant très largement utilisé dans nos métiers. De nombreuses applications sont développées au sein de nos laboratoires et des équipes de recherche à partir de ce langage. Mais est-ce que ces développements sont reversés à la communauté ? Quel est le coût nécessaire en temps et en énergie pour rendre disponible son travail ? Quels en sont les bénéfices ? Lors de cette formation, nous présenterons ce qu’est un package Python puis nous ferons un tour d’horizon des outils qui permettent de le maintenir dans un état stable et robuste (linter, tests, …). Nous parlerons ensuite des étapes pour le rendre compréhensible au plus grand nombre et favoriser ainsi les interactions (documentation, tutoriel, …). Enfin, nous aborderons les questions de mise à disposition de l’outil via des systèmes de management de packages type pip ou conda. Tous ces aspects seront illustrés au travers d'un exemple jouet. L'objectif sera de démontrer qu’une fois qu’on a les bonnes recettes et qu’on connait les bons chemins, distribuer son application Python devient un automatisme et a une plus-value certaine sur son travail.

Public

Tout agent CNRS programmant en Python et souhaitant diffuser son logiciel et créer une communauté autour de celui-ci

Pré-requis

Connaître les bases du langage Python, avoir un compte sur GitHub et avoir sa machine.

Programme

1 - Définition d'un environnement de développement

    - Permettre à tout le monde de travailler sur le projet
    - Aperçu de conda et des environnement Python
    - Utilisation de Pixi
    - Introduction à pre-commit

 

2- La structure d’un package

    - Arborescence d’un package
    - Sous-modules
    - Imports relatifs et absolus
    - pyproject.toml
    - Création et installation de package
   - Déploiement de Pypi et conda

 

3 - Analyse statique et formatage

    - L'intérêt de ce genre d'outil
    - Présentation de pylint et de ruff
    - Présentation de black
 

4 - Les tests unitaires
    - Les différents types de tests unitaires
    - Présentation de pytest
    - Mise en œuvre
 

5 - La documentation
    - Structuration d’une documentation
    - Les différents formats d’écriture (markdown ou reStructuredText)
    - Présentation de l’outil sphinx
    - Intégration des notebooks
 

6 - Mise en place d’une chaîne automatisée
    - Présentation des outils sur github (github actions, readthedocs…)
    - Mise en œuvre sur un projet complet

 

Méthodes pédagogiques

Tous les aspects seront étudiés au travers d'un exemple jouet.

Sessions à venir 1

  •    DR4-Gif-Sur-Yvette
  •    Salle 9 bat 31
  •    21 heure(s) sur 3 jour(s)
  •   18, 19 et 20 juin 2025
  •   9h30 - 17h30
  • Clôture des inscriptions dans 23 jours
S'inscrire à cette session

Partenaires

CNRS

Informations pratiques

IFSeM Formation
7, RUE GUY MÔQUET
94800 VILLEJUIF