Public
Cette formation est destinée à toute personne ayant déjà des connaissances sur le langage Python et souhaitant écrire des applications de qualité et réutilisables.
Objectifs
- Comprendre la structuration d’un package Python
- Connaître les éléments permettant d’avoir une application robuste
- Savoir comment distribuer son application
Pré-requis
Connaître les bases du langage Python
Programme
- Introduction Interopérabilité
- Python 2.7 et 3.x
- Les bonnes pratiques d’écriture (PEPs, Linters)
- Pourquoi diffuser son travail
- Présentation des différentes étapes
- La structure d’un package
- Arborescence d’un package
- Sous-modules
- Imports relatifs et absolus
- Setup.py
- Création et installation de package
- Déploiement de Pypi et conda
- Les tests unitaires
- Les différents types de tests unitaires
- Présentation d’outils Python (pytest, nose)
- Mise en œuvre
- 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
- Mise en place d’une chaîne automatisée
- Présentation des outils sur github (travis-ci, readthedocs...)
- Mise en œuvre sur un projet complet
Informations pratiques
Formation animée par Loïc GOUARIN, ingénieur de recherche CNRS (Laboratoire de mathématiques d'Orsay)
Les horaires sont les suivants : 9h30-12h30 / 14h00-17h00 (sauf le 6 avril où la formation se terminera à 16h30)
La formation aura lieu salle 805 dans la bibliothèque de l'IRMAR.
Voici les recommendations d’installation avant la formation.
Installer Anaconda ou Miniconda
Ouvrir un terminal ou "anaconda prompt" pour les utilisateurs windows
Cloner les supports:
$ git clone https://github.com/gouarin/python_packaging_2017.git
les utilisateurs Windows peuvent installer git avec conda
$ conda install git
Créer votre environement conda:
$ cd python_packaging_2017
$ conda env create -f environment.yml
$ source activate packaging-environment # Linux OS/X
activate packaging-environment # Windows
Pour ouvrir le premier notebook
$ jupyter notebook 1-introduction.ipynb