Démarrer un package

Développer des packages Python

James Fulton

Climate informatics researcher

Pourquoi créer un package ?

  • Pour réutiliser plus facilement votre code
  • Pour éviter les copier-coller à répétition
  • Pour garder vos fonctions à jour
  • Pour partager votre code
Développer des packages Python

Contenu du cours

Vous allez créer un package complet et voir :

  • Organisation des fichiers
  • Structure des imports
  • Rendre votre package installable
  • Ajouter des licences et des README
  • Style et tests unitaires pour une haute qualité
  • Enregistrement et publication sur PyPI
  • Utiliser des modèles de package
Développer des packages Python

Scripts, modules et packages

  • Script – Un fichier Python exécuté comme python myscript.py

  • Package – Un répertoire rempli de code Python à importer

    • ex. : numpy
  • Sous-package – Un package plus petit dans un package

    • ex. : numpy.random et numpy.linalg
  • Module – Un fichier Python dans un package qui contient le code du package.

    • ex. : exemple aux 2 prochaines diapositives
  • Bibliothèque – Un package ou un ensemble de packages

    • ex. : la bibliothèque standard Python (math, os, datetime, ...)
Développer des packages Python

Arborescence d’un package

Arborescence d’un package simple

mysimplepackage/
|-- simplemodule.py
|-- __init__.py
  • Ce répertoire, mysimplepackage, est un package Python
  • simplemodule.py contient tout le code du package
  • __init__.py indique qu’il s’agit d’un package Python
Développer des packages Python

Contenu d’un package simple

__init__.py

Fichier vide

simplemodule.py
def cool_function():
    ...
    return cool_result

...

def another_cool_function():
    ...
    return another_cool_result

Fichier avec fonctions et code généralisés.

Développer des packages Python

Sous-packages

Arborescence d’un package avec sous-packages

mysklearn/
|-- __init__.py
|-- preprocessing
|   |-- __init__.py
|   |-- normalize.py
|   |-- standardize.py
|-- regression
|   |-- __init__.py
|   |-- regression.py
|-- utils.py
Développer des packages Python

Passons à la pratique !

Développer des packages Python

Preparing Video For Download...