Formation en IA & Data: Python intermédiaire : maintenance, qualité et évolution de scripts data - Ascent Formation
Retour aux formations
IA & Data

Python intermédiaire : maintenance, qualité et évolution de scripts data

2 jour(s) • 14h

Description

Cette formation s'adresse à des profils techniques déjà familiers de Python, confrontés à des scripts ou projets data existants qu'ils doivent comprendre, fiabiliser et faire évoluer. Elle vise à consolider les pratiques professionnelles indispensables : structuration du code, lisibilité, typage, logging, tests, refactoring, manipulation de données et interactions SQL. L'approche est résolument orientée pratique, sur des exemples représentatifs d'un environnement professionnel data : scripts de transformation, manipulation de DataFrames, intégration avec une base de données, structuration et tests d'un module Python.

Objectifs pédagogiques

  • Consolider les pratiques Python utiles à la maintenance de code existant : structure, environnements, lisibilité et conventions
  • Lire, comprendre et documenter un projet Python existant
  • Identifier les zones de fragilité d'un script Python : complexité, duplication, dépendances, gestion d'erreurs
  • Refactorer progressivement du code pour améliorer sa lisibilité, sa maintenabilité et sa robustesse
  • Manipuler les opérations pandas essentielles dans des scripts de transformation de données
  • Interagir avec une base SQL depuis Python en respectant les bonnes pratiques de connexion, de requêtage et de sécurité
  • Mettre en place des tests unitaires simples avec pytest pour sécuriser les évolutions
  • Utiliser les outils de qualité courants : formatter, linter, typing et logging

Public concerné

Développeurs migration et profils techniques manipulant du code Python existant
Analytics engineers et data engineers
Profils techniques amenés à maintenir, faire évoluer ou reprendre des scripts Python data
BI developers en transition vers des tâches d'ingestion / transformation
Toute personne pratiquant Python à un niveau intermédiaire et souhaitant consolider ses pratiques professionnelles

Prérequis

Pratique régulière de Python à un niveau intermédiaire
Maîtrise des structures de base : variables, types, conditions, boucles, fonctions
Familiarité avec l'utilisation d'un terminal en ligne de commande
Notions de SQL appréciées (la formation s'adresse à des profils manipulant souvent des données)
Aucune connaissance préalable en data science avancée requise

Déroulé du programme

1

Jour 1 / Bonnes pratiques modernes Python et manipulation de données (7h)

7h
2

Module 1 / Rappels structurants et environnements de travail (1h30)

1h
  • Rappels ciblés sur les structures de données Python : listes, dictionnaires, tuples, sets, compréhensions
  • Fonctions, arguments, valeurs par défaut, arguments nommés, *args et **kwargs
  • Gestion d'environnements virtuels : venv, pip, fichier requirements.txt
  • Introduction aux gestionnaires modernes : uv, poetry (panorama)
  • Structure d'un projet Python : packages, modules, organisation des fichiers
3

Module 2 / Lisibilité, typing et bonnes pratiques (2h)

2h
  • Style de code et PEP 8 : convention de nommage, indentation, longueur de ligne
  • Typing moderne : annotations de type, collections typées, Optional / Union, intérêt et limites du typage statique avec mypy
  • Docstrings et conventions de documentation : Google, NumPy, reST
  • Qualité automatisée du code : ruff pour le linting et le formatting, panorama de black et isort dans les environnements existants
  • Logging au lieu de print : module logging, niveaux, configuration
  • Gestion des erreurs : exceptions, try/except, exceptions personnalisées
4

Module 3 / Manipulation de données avec pandas (3h)

3h
  • Manipuler les opérations pandas essentielles pour comprendre, corriger et faire évoluer des scripts data existants.
  • Le DataFrame pandas : structure, création, lecture depuis CSV / Excel / Parquet
  • Indexation, sélection, filtrage : loc, iloc, conditions booléennes
  • Transformation des colonnes : opérations vectorisées, assign, map, usage raisonné de apply
  • Gestion des valeurs manquantes : isna, fillna, dropna
  • Agrégations et groupements : groupby, agg
  • Jointures et concaténation : merge, concat
  • Approfondi en TP : transformation d'un jeu de données représentatif d'un cas data
5

Jour 2 / Code maintenable, tests et interactions SQL (7h)

7h
6

Module 4 / Lecture et compréhension de code existant (1h30)

1h
  • Méthodologie de lecture d'un projet Python inconnu : point d'entrée, dépendances, flux
  • Outils d'exploration : pydoc, IDE, debugger
  • Identifier les patterns courants : classes, modules, fonctions utilitaires
  • Repérer les zones à risque : code legacy, fonctions trop longues, couplage fort
  • Approfondi en TP : analyse d'un script Python représentatif et restitution
7

Module 5 / Refactoring et amélioration de code (2h)

2h
  • Principes de refactoring : extraire des fonctions, réduire la complexité, supprimer la duplication
  • Patterns courants : substitution des nombres magiques, encapsulation, séparation des responsabilités
  • Refactoring sécurisé : tester avant, refactorer, retester
  • Conventions et lisibilité : noms parlants, fonctions courtes, séparation logique
  • Approfondi en TP : refactoring d'un script existant avec mesure de l'impact
8

Module 6 / Tests unitaires avec pytest (1h30)

1h
  • Pourquoi tester : robustesse, non-régression, documentation vivante
  • Premiers tests avec pytest : structure, conventions, exécution
  • Assertions et types de tests : tests de fonctions, paramétrage avec parametrize
  • Fixtures pytest : préparation de données, partage entre tests
  • Mocks et patches : principes d'isolation des dépendances externes, selon le niveau du groupe
  • Approfondi en TP : écriture de tests pour un module Python existant
9

Module 7 / Interactions avec une base de données SQL (1h)

1h
  • Connecteurs Python pour bases de données : psycopg, pymysql, sqlite3
  • SQLAlchemy en panorama : connexion, exécution de requêtes et cas d'usage par rapport aux connecteurs natifs
  • Bonnes pratiques : connexion, paramétrage des requêtes, gestion des transactions
  • Sécurité : prévention des injections SQL, gestion des credentials
  • Intégration pandas / SQL : read_sql, to_sql
  • Approfondi en TP : script complet de lecture, transformation et écriture de données entre SQL et DataFrame
10

Atelier final de synthèse (1h)

1h
  • Reprise guidée d'un mini-projet Python : identification des problèmes, priorisation des corrections, refactoring ciblé, ajout d'un test simple et sécurisation d'un flux pandas / SQL.
  • Discussion ouverte sur les pratiques et défis rencontrés par les participants
  • Recommandations personnalisées pour la mise en application immédiate

Informations

Durée

2 jour(s)

14h

Tarif

Sur demande