Démarrer un paquet

Créer des paquetages Python

James Fulton

Climate informatics researcher

Pourquoi créer un paquet ?

  • Pour réutiliser votre code plus facilement
  • Pour éviter de copier-coller partout
  • Pour garder vos fonctions à jour
  • Pour partager votre code
Créer des paquetages Python

Contenu du cours

Vous allez créer un paquet complet et voir :

  • Structure des fichiers
  • Structure des importations
  • Rendre votre paquet installable
  • Ajouter des licences et des README
  • Style et tests unitaires pour un paquet de qualité
  • Inscription et publication sur PyPI
  • Utiliser des gabarits de paquets
Créer des paquetages Python

Scripts, modules et paquets

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

  • Paquet — Un répertoire de code Python à importer

    • p. ex. numpy
  • Sous-paquet — Un paquet à l'intérieur d'un paquet

    • p. ex. numpy.random et numpy.linalg
  • Module — Un fichier Python dans un paquet qui contient le code du paquet.

    • p. ex. exemple aux 2 prochaines diapositives
  • Bibliothèque — Un paquet ou un ensemble de paquets

    • p. ex. la bibliothèque standard de Python (math, os, datetime, ...)
Créer des paquetages Python

Arborescence d'un paquet

Arborescence d'un paquet simple

mysimplepackage/
|-- simplemodule.py
|-- __init__.py
  • Ce répertoire, nommé mysimplepackage, est un paquet Python
  • simplemodule.py contient tout le code du paquet
  • __init__.py indique qu'il s'agit d'un paquet Python
Créer des paquetages Python

Contenu d'un paquet 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.

Créer des paquetages Python

Sous-paquets

Arborescence d'un paquet avec sous-paquets

mysklearn/
|-- __init__.py
|-- preprocessing
|   |-- __init__.py
|   |-- normalize.py
|   |-- standardize.py
|-- regression
|   |-- __init__.py
|   |-- regression.py
|-- utils.py
Créer des paquetages Python

Passons à la pratique !

Créer des paquetages Python

Preparing Video For Download...