![]() |
DES RESSOURCES ET DES OUTILS AU SERVICE DES ACTEURS ET DES PROFESSIONNELS. |
Python – Développer une librairieDate de mise à jour : 30/04/2026
| Identifiant OffreInfo : 15_26527777F |
Carif-Oref Occitanie |
Maîtriser le développement de librairies Python : conception, structuration, tests automatisés, documentation et déploiement.
Appliquer les bonnes pratiques du développement collaboratif en Python pour produire des packages fiables, maintenables et réutilisables.
Compétences visées
- Sélectionner l'outil adapté pour gérer les environnements virtuels
- Créer une librairie
- Comprendre et utiliser efficacement les syntaxes de la commande import
- Écrire des tests unitaires et d'intégration avec pytest
- Documenter sa librairie et générer une documentation professionnelle
- Packager sa librairie et la déployer
- Travailler en équipe avec un outil de versionnement
- Configurer un workflow de qualité avec des pré-commits
- Automatiser les tests et le déploiement avec GitLab CI/CD (ou autre)
- Choisir son environnement virtuel : Panaroma des différents outils: virtualenv, poetry, pipenv, conda, uv, pixi, ... / Le fichier pyproject.toml et les peps qui le définissent / Créer un environnement virtuel reproductible
TP : Création d'un environnement virtuel avec l'outil retenu par les participants (uv ou pixi sont les plus pertinents aujourd'hui) Création d'un fichier pyproject.toml minimal
- Créer une librairie : Un peu de terminologie : modules, packages, librairies et framework / Créer et importer une librairie / Le fichier __init__.py et les variables spéciales / L'arborescence standard / Comprendre et utiliser efficacement les imports relatifs / Maîtriser la recherche au travers des chemins d'imports / Créer un binding Python pour une librairie C
TP : Créer le squelette de sa librairie. Utiliser un fichier pyproject.toml pour y ajouter des dépendances et métadonnées. Créer un binding en C ou Cython selon les besoins des participants
- Documenter sa librairie : Les docstrings et PEPS / Les formats de documentation Google, NumPy, ou reStructuredText / Utiliser Sphinx et Jupyter Book / Publier avec ReadTheDocs
TP : Générer la documentation avec Sphinx et Jupyter Book
- Tester sa librairie : Le Test Driven Development / Les bases avec assert, doctest et unittest / Pytest: les bases, marqueurs et paramètres, fixtures, plugins, ... / Les autres outils de tests: mocking, hypothesis, ... / Logger : concepts et bonnes pratiques
TP : Ecrire des tests unitaires, bien traiter les bugs, mise en place de logs
- Packager sa librairie : Choisir son outil de packaging: setuptools, flit, Hatchling, pdm, ... / Les formats eggs et wheel / Pyproject.toml : les bases, dépendances, fichiers non python
TP : Créer un package et l'installer dans un environnement virtuel. Le déposer sur Pypi
- Intégration continue et qualité logicielle : Conventions de codage : PEP8, PEP257 / Outils qualité: linter, formatter, contrôles de type, ... / Rappels sur Git : branches, commits, merges, rebases / Versionner avec git/GitHub/GitLab / GitLab (ou GitHub) : gestion de dépôt, issues, merge requests / Bonnes pratiques : convention Conventional Commits, branches courtes et thématiques / Pré-commit et formattage automatique avec Ruff / Intégration continue : les concepts et mise en pratique / Revue de code
TP: Automatisation d'un pipeline CI/CD permettant : - D'exécuter les tests et mesurer la couverture - Builder le package - Générer et déployer la documentation
Sous réserve de contraintes techniques ou de confidentialité, nous vous proposons de personnaliser la formation en réalisant des exercices directement sur vos données ou projets métiers
Non certificiante
Sans niveau spécifique
Conventionnement : Non
Entreprise
Autre
Niveau d'entrée : Sans niveau spécifique
Pour suivre ce stage dans de bonnes conditions, il est recommandé d'avoir suivi en amont la formation Python – Bases et introduction aux librairies scientifiques ou d'avoir atteint par la pratique un niveau équivalent