ASTON INSTITUT : 02. Python, perfectionnement
Organisme
92300 LEVALLOIS PERRETVoir toutes ses formationsAutres organismes proposant cette formation
Durée
Modalités
- Classe virtuelle
- Présentiel
Tout au long de la formation, le formateur s'assure de la compréhension et de l'assimilation des concepts via des QCM et exercices. Après la formation : évaluation à chaud et à froid.
Prix
Public
Ingénieurs et développeurs.
Pré-requis
Disposer de bonnes connaissances en développement Python.
Objectifs pédagogiques
- Utiliser les techniques avancées du langage Python : Context Manager, métaclasses, closures, fonctions avancées
- Optimiser les performances de vos programmes à l'aide du monitoring et du parallélisme
- Packager et déployer ses artefacts Python
- Exploiter des librairies contribuant au succès du langage : calcul scientifique, Intelligence Artificielle, XML, réseau
Programme détaillé
Fil rouge : Création d’une application de traitement de données avec utilisation de la parallélisation. Nous mettrons en place des pipelines de traitement avec un ensemble d’applications que nous allons packager en respectant les bonnes pratiques.
A la fin de la formation, nous présentons Spark pour le traitement parallélisé et pour ceux qui veulent aller plus loin.
Chapitre 1 : Rappel de python
- La programmation orientée objet en python
- Encapsulation
- Héritage
- Polymorphisme
Atelier pratique : Présentation théorique avec code à l’appui.
Chapitre 2 : Aller plus loin avec la programmation objet
- Rappels sur la programmation objet : classes, instances, ...
- Les propriétés
- Les attributs de classe
- Les méthodes de classe et méthodes statiques
- L'introspection
- La classe object
- Les méthodes spéciales
- Le destructeur
- Héritage simple et héritage multiple
- Polymorphisme et duck typing
- La classe type
- Les métaclasses
- Abstract Base Class
- Rappels sur les exceptions
Atelier pratique : Mise en place d’un pipeline de traitement des données (plusieurs programmes connectés entre eux). Le premier programme sera en POO avec Flask, tandis que les suivants seront chargés de faire un nettoyage et une mise en forme des données avant de les sauvegarder en base.
Chapitre 3 : Fonctionnalités avancées
- Les générateurs
- Les décorateurs
- Les itérateurs
- Les context managers
- Les closures
Atelier pratique : En reprenant nos pipelines de traitement, nous les transformons en programme basé sur le paradigme fonctionnel pour éviter les effets de bord et comprendre l’utilité des différentes solutions.
Chapitre 4 : Packager et déployer une application Python
- Le gestionnaire de paquets pip
- Le Python Package Index (PyPI)
- Installer un module externe
- Le module setuptools
- Organiser son package
- Le MANIFEST et le README
- Packager son application au format wheel
- Déployer son package sur PyPI
Atelier pratique : Nous modifions nos précédentes applications pour pouvoir les partager sur un serveur de dépôt.
Chapitre 5 : Travailler avec un environnement virtuel
- L'intérêt d'utiliser un environnement virtuel
- Les solutions disponibles
- Installer un module dans un environnement virtuel
- Gérer efficacement les dépendances d'un projet
Atelier pratique : Comparaison et des outils tel que venv, etc. Nous mettons en place notre environnement virtuel et vérifions que les modules sont chargés au bon endroit.
Chapitre 6 : Optimisation et parallélisme
- Profilage de code avec timeIT et cProfile
- Les queues : créer des files synchronisées
- Le threading
- Le multiprocessing
Atelier pratique : Lancement de multithreading de nos pipelines et analyse des problématiques qui peuvent avoir lieu (problème de synchronisation, fuite de mémoire).
Chapitre 7 : Des librairies utiles
- De vrais scripts Python : le module argparse
- HTTP pour les humains : le module requests
- Parser du XML et du HTML : le module xml.etree
- Python pour la science : les modules Numpy et Matplotlib
- Intelligence artificielle : le module Scikit-Learn
Atelier pratique : Dans un environnement JupyterLab, nous testons les bibliothèques pour afficher des graphiques (Matplotlib).
Chapitre 8 : Découverte de Spark pour la manipulation des données - PySpark
- Utilisation de SparkSQL et des DataFrames pour manipuler des données
- Charger des données depuis Hadoop, depuis des fichiers CSV, texte, JSON...
- Transformer des données (création de DataFrames, ajout de colonnes, filtres...)
Atelier pratique : Exemple dans un notebook de l’utilisation de Spark et Panda.