Formation

Python, perfectionnement

Tosa PythonTitre professionnel — éligible CPF, OPCO et financements publics.

Description

Rappels importants sur le langage et compléments

Le typage fort en Python

Schéma de fonctionnement de la mémoire d¿un programme Python (variables locales, passage par valeur/référence, variables non mutable, etc.)

Rappels sur les différences entre tableaux, listes, dictionnaires, slices, etc.

Les fonctions anonymes (lambda)

Syntaxe d'appels étendus (*args, **kwargs)

Intérêts de déterminer le type d'un objet, d'une méthode, ou d'un module (introspection)

Exemple de synthèse sur les concepts objets en Python (classes, propriétés, méthodes, instances)

Exemple de synthèse sur la syntaxe du langage (variables, boucles, tests, exceptions...)

Packager et déployer votre code Python

En quoi consiste le packaging de code ?

Projet vs bibliothèque

Comment décrire le module packagé (setup.py) ?

Le Python Package Index (PyPI, Métadonnées).

Les outils pour packager ses librairies (disutils, setuptools)

Installer des librairies tierces (pip, easy_install).

Isoler les environnements de différents projets (virtualenv)

Gérer un projet avec pipenv

Créer un wheel distribuable avec setup.cfg

Compiler le code Python en un exécutable avec nuitka

Manipulations avancées des primitives en Python

Générer du code à la volée : factories puis métaclasses

Décorateurs à plusieurs niveaux

Context manager et décorateur à la fois

Au delà de yield : la méthode send() des générateurs

Monkey paching et autres injections de code

Introspection

Performances et parallélisation

Programmation non bloquante avec les threads

Le GIL et les limites des threads

Exploiter plusieurs coeurs avec le multiprocessing

I/O asynchrone avec asyncio

Les outils pour lire l'activité (Timeit, cProfile)

Calcul distribué avec la librairie Celery

Les faiblesses du multithreading

Manipulations avancées des données

Rappels sur les formats de données structurées : CSV, flux XML et JSON

Manipulation des données issues de ces fichiers par des structures Python adaptées

Le parseur XML ElementTree

Fonctions d'accès et de download de données en ligne

A quoi sert un ORM (Object-relational Mapper) ?

Synchronisation des objets Python avec une base SQL (ORM sqlAlchemy)

Principes des API et des Web Services

Consommation des API et des Web Services en Python

La représentation graphique de données en Python

Introduction aux bases de la visualisation de données

Focalisation sur la génération de graphes grâce à la librairie Matplotlib : démonstration de l'application de graphes Matplotlib à la visualisation de problèmes concrets

Présentation des grandes librairies Python

Objectifs

  • Optimiser vos programmes grâce au multi-threading et à la supervision (monitoring)
  • Connaître les manipulations avancées en Python : Context
  • Manager, métaclasses, injection et introspection du code...
  • Maîtriser la manipulation des données
  • Connaître et savoir exploiter à un premier niveau les bibliothèques qui font (ou on fait) le succès de Python (Mathématiques, Scientifique, IA, Machine Learning, Réseau)

Résultat

  • Attestation de suivi de formation
  • Certification TOSA Python