Librairies¶
Package et Module¶
Le sujet de la création de package et module est le sujet d’un tuto ici
Package¶
À chaque niveau d’arborescence, il faut mettre un fichier __init__.py. Il
doit contenir au moins 1 caractère pour d’obscures raisons de suppression de
fichiers vides par windows lors des zip/unzip.
Si on souhaite créer un package vide, qui n’a vocation qu’à contenir d’autres
packages, il faut créer un fichier __init__.py contenant:
__import__("pkg_resources").declare_namespace(__name__)
Pour les packages contenant des modules, on peut faire ça:
# __init__.py
from .foo import *
from .bar import *
__all__ = (foo.__all__ + bar.__all__)
Dans les cas de gros packages, ils peuvent néanmoins avoir un effet important sur les performances.
Les Namespace packages sont une idée sympa pour permettre à d’autres développeurs de faire des extensions de sa librairie (CF tuto p. 105).
Module¶
Un module est un fichier .py.
Librairies sympas¶
| Nom | Description | |
|---|---|---|
| Permet d’avoir, en python2, des comportements apparus en python3 (unicode partout, print, etc.) | ||
| Multi-threading (python3.4, mais existe en non-garanti sous python2, sous le nom de trollus). | ||
| html et xml, même très mal formatté | ||
| Parsing de fichiers CSV | ||
| Gestion de memory mapped file, permet de charger des fichier de grande taille sans les charger en RAM en entier | ||
| Alternative à  | ||
| Autre alternative, permettant de simplement décorer une fonction pour en faire la fonction principale du script et automatiquement créer les arguments de la commande à partir des arguments de la fonction. | ||
| Ssh, pour faire du déploiement par exemple, basé sur paramiko | ||
| Lecture de fichiers, métadonnées, réparations de binaires dégradés | ||
| Module de gestion des niveaux de log | ||
| Parsing html et xml | ||
| Faire des forks comme un fou | Utilisent la même API, ils sont donc facilement interchangeable | |
| À préférer à  | ||
| ssh | ||
| client ORM très léger pour sqlite, MySQL & PostgreSQL | ||
| Sérialisation d’objets | ||
| Python Imaging Library ( | ||
| Gestion de queues (FIFO, LIFO, etc…). voir  | ||
| Alternative plus haut niveau à  | ||
| Manipulation de paquets réseaux | ||
| Connection à une BdD SQL | ||
| Bdd historisée et transactionnelle (très rapide en lecture, mais moins en écriture). | ||
Sinon il y a la super liste de Sam&Max. Ils essayent de la mettre à jour régulièrement.