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.