24 bibliothèques Python pour chaque développeur Python

Vous voulez une bonne raison du succès retentissant du langage de programmation Python? Ne cherchez pas plus loin que l'énorme collection de bibliothèques disponibles pour Python, à la fois des bibliothèques natives et tierces. Avec autant de bibliothèques Python, cependant, il n'est pas surprenant que certaines n'obtiennent pas toute l'attention qu'elles méritent. De plus, les programmeurs qui travaillent exclusivement dans un domaine ne connaissent pas toujours les avantages dont ils disposent pour d'autres types de travail.

Voici 24 bibliothèques Python que vous avez peut-être négligées mais qui méritent vraiment votre attention. Ces gemmes exploitent toute une gamme d'utilité, simplifiant tout, de l'accès au système de fichiers, de la programmation de bases de données et de l'utilisation des services cloud à la création d'applications Web légères, à la création d'interfaces graphiques et à l'utilisation d'images, de livres électroniques et de fichiers Word - et bien plus encore. Certaines sont bien connues, d'autres moins connues, mais toutes ces bibliothèques Python méritent une place dans votre boîte à outils.

Apache Libcloud

Ce que fait Libcloud: Accédez à plusieurs fournisseurs de cloud via une API unique, cohérente et unifiée.

Pourquoi utiliser Libcloud: Si la description ci-dessus d'Apache Libcloud ne vous fait pas applaudir de joie, alors vous n'avez pas essayé de travailler avec plusieurs nuages. Les fournisseurs de cloud aiment tous faire les choses à leur manière, ce qui fait d'un mécanisme unifié pour traiter avec des dizaines de fournisseurs un gain de temps énorme et un soulagement des maux de tête. Les API sont disponibles pour le calcul, le stockage, l'équilibrage de charge et le DNS, avec la prise en charge de Python 2.x et Python 3.x ainsi que de PyPy, le compilateur JIT pour Python qui améliore les performances.

La Flèche

Ce que fait Arrow: Une gestion plus propre des dates et des heures en Python.

Pourquoi utiliser Arrow: Gérer les fuseaux horaires, les conversions de date, les formats de date et tout le reste est déjà un casse-tête et demi. Ajoutez la bibliothèque standard de Python pour le travail de date / heure, et vous aurez deux maux de tête et demi.

Arrow offre quatre grands avantages. Premièrement, Arrow est un remplacement instantané du module datetime de Python, ce qui signifie que les fonctions courantes appellent comme .now()et .utcnow()fonctionnent comme prévu. Deuxièmement, Arrow fournit des méthodes pour les besoins courants tels que le décalage et la conversion de fuseaux horaires. Troisièmement, Arrow fournit des informations de date / heure «humanisées», comme être capable de dire que quelque chose s'est passé «il y a une heure» ou qui se produira «dans deux heures» sans trop d'effort. Quatrièmement, Arrow peut localiser les informations de date / heure sans transpirer.

Voir

Ce que Behold fait:  Prise en charge robuste du débogage de type impression en Python.

Pourquoi utiliser Behold:  Il existe un moyen simple de déboguer en Python, ou dans presque n'importe quel langage de programmation d'ailleurs: insérer des printinstructions en ligne . Mais alors que le débogage d'impression est une évidence dans les petits programmes, il n'est pas si facile d'obtenir des résultats utiles dans de grands projets tentaculaires à plusieurs modules.

Behold fournit une boîte à outils pour le débogage contextuel via des instructions d'impression. Il vous permet d'imposer un aspect uniforme à la sortie, d'étiqueter les résultats afin qu'ils puissent être triés via des recherches ou des filtres, et de fournir des contextes à travers les modules afin que les fonctions qui proviennent d'un module puissent être correctement déboguées dans un autre. Behold gère de nombreux scénarios courants spécifiques à Python, tels que l'impression du dictionnaire interne d'un objet, le dévoilement d'attributs imbriqués et le stockage et la réutilisation des résultats pour comparaison à d'autres moments du processus de débogage.

Noir

Ce que fait Black: Formate le code Python selon un ensemble de règles strictes et presque totalement immuables.

Pourquoi utiliser le noir: les  formateurs de code Python, comme YAPF, ont tendance à avoir de nombreuses options configurables - longueur de ligne, options de division de ligne, gestion des virgules de fin, etc. Le noir applique un ensemble cohérent de valeurs par défaut pour les règles qui ne peuvent pas être modifiées. Le code formaté résultant est aussi cohérent que possible entre les bases de code et entre les utilisateurs, avec le moins de différences possibles entre les fichiers modifiés.

Le noir prend un certain temps pour s'y habituer, surtout si vous êtes tatillon sur les espaces verticaux, les instructions avec des imbrications profondes (par exemple, des listes dans des listes) et d'autres options de formatage. Mais à long terme, cela vous évite d'avoir à penser au formatage, vous permettant de vous concentrer sur votre code.

Bouteille

Ce que fait Bottle: Des applications Web légères et rapides.

Pourquoi utiliser Bottle: Lorsque vous souhaitez créer une API RESTful rapide ou utiliser le strict minimum d'un framework Web pour créer une application, Bottle, capable mais minuscule, ne vous donne pas plus que ce dont vous avez besoin. Routage, modèles, accès aux données de demande et de réponse, prise en charge de plusieurs types de serveurs à partir de l'ancien CGI et prise en charge de fonctionnalités plus avancées telles que WebSockets - tout est là. La quantité de travail nécessaire pour démarrer est également minime et le design de Bottle est élégamment extensible lorsque des fonctions plus avancées sont nécessaires. 

Cliquez sur

Action de Click:  vous permet de créer rapidement des interfaces de ligne de commande pour les applications Python.

Pourquoi utiliser Click: Les  GUI sont pratiques, mais les CLI sont là où se trouve la vraie puissance. Cependant, créer une CLI robuste n'est pas facile, et l'ensemble d'outils par défaut pour collecter et utiliser les options de ligne de commande en Python est primitif.

Click enveloppe ces éléments dans une API de construction CLI de haut niveau. Si vous souhaitez simplement créer quelques commandes de base, vous pouvez le faire avec quelques lignes de code. Si vous souhaitez un comportement plus avancé, comme demander séparément plus d'informations sur un paramètre ou dériver des valeurs à partir de variables d'environnement, Click vous a couvert. Click prend également en charge les couleurs de terminal via la  colorama bibliothèque et peut être étendu avec des plug-ins tiers.

EbookLib

Ce que fait EbookLib:  Lire et écrire des fichiers .epub.

Pourquoi utiliser EbookLib:  La création d'ebooks nécessite généralement de se débattre avec un outil de ligne de commande ou un autre. EbookLib fournit des outils de gestion et des API qui simplifient le processus. Il fonctionne avec les fichiers EPUB 2 et EPUB 3, avec le support Kindle en cours de développement.

Fournissez les images et le texte (ce dernier au format HTML), et EbookLib peut assembler ces éléments dans un ebook complet avec des chapitres, une table des matières imbriquée, des images, du balisage HTML, etc. Les données de couverture, de dos et de feuille de style sont également prises en charge. Un système de plug-in permet à des tiers d'étendre les comportements de la bibliothèque.

Si vous n'avez pas besoin de tout ce qu'EbookLib a à offrir, essayez Mkepub. Mkepub intègre les fonctionnalités d'assemblage de base de livres électroniques dans une bibliothèque de quelques kilo-octets. Un inconvénient mineur de Mkepub est qu'il nécessite Jinja2, qui à son tour nécessite la bibliothèque MarkupSafe.

Gooey

Ce que fait Gooey:  Donnez à un programme Python basé sur une console une interface graphique native pour la plate-forme.

Pourquoi utiliser Gooey:  Présenter aux utilisateurs, en particulier aux utilisateurs de base, une interface de ligne de commande est l'un des meilleurs moyens de décourager l'utilisation de votre application. Rares sont les geek hardcore qui aiment savoir quelles options passer et dans quel ordre. Gooey prend les arguments attendus par la bibliothèque argparse et les présente aux utilisateurs sous la forme d'une interface graphique, via la bibliothèque WxPython. Toutes les options sont étiquetées et affichées avec les commandes appropriées (comme une liste déroulante pour un argument multi-option). Très peu de codage supplémentaire (une seule inclusion et un seul décorateur) est nécessaire pour le faire fonctionner, en supposant que vous utilisez déjà argparse.

Invoquer

Que fait Invoke: Exécution à distance Pythonic - c'est-à-dire, effectuer des tâches d'administration à l'aide d'une bibliothèque Python.

Pourquoi utiliser Invoke: L' utilisation de Python en remplacement des tâches de script shell courantes est tout à fait logique. Invoke fournit une API de haut niveau pour exécuter des commandes shell et gérer les tâches de ligne de commande comme s'il s'agissait de fonctions Python, vous permettant d'intégrer ces tâches dans votre propre code ou de les construire élégamment autour d'elles. Veillez simplement à ne pas permettre à des entrées non fiables d'être transmises telles quelles à des commandes shell.

Nuitka

Ce que fait Nuitka:  Compilez Python en exécutables C autonomes.

Pourquoi utiliser Nuitka:  Comme Cython, Nuitka compile Python en C.Cependant, alors que Cython nécessite sa propre syntaxe personnalisée pour de meilleurs résultats, et se concentre principalement sur les applications mathématiques et statistiques, Nuitka fonctionne avec n'importe quel programme Python tel quel, le compile en C, et produit un fichier exécutable unique, appliquant des optimisations là où il le peut en cours de route. Nuitka en est encore à ses débuts et bon nombre des optimisations prévues sont encore à venir. Néanmoins, c'est un moyen pratique de transformer un script Python en une application de ligne de commande rapide.

Numba

Ce que fait Numba: Accélérez de manière  sélective les fonctions gourmandes en mathématiques.

Pourquoi utiliser Numba:  Le monde Python comprend toute une sous-culture de packages pour accélérer les opérations mathématiques. Par exemple, NumPy fonctionne en enveloppant des bibliothèques C haute vitesse dans une interface Python, et Cython compile Python en C avec un typage facultatif pour des performances accélérées. Mais Numba est de loin le plus pratique, car il permet d'accélérer sélectivement les fonctions Python avec rien de plus qu'un décorateur. Pour augmenter la vitesse, vous pouvez utiliser des idiomes Python courants pour paralléliser les charges de travail, ou utiliser des instructions SIMD ou GPU.

Notez que vous pouvez utiliser NumPy avec Numba. Après tout, NumPy a de nombreux algorithmes prêts à l'emploi qui n'ont pas besoin d'être implémentés à partir de zéro. Mais pour les petits algorithmes «noyau», Numba surclassera dans de nombreux cas NumPy plusieurs fois.

Openpyxl

Action d'Openpyxl:  lit, écrit et manipule des fichiers Excel.

Pourquoi utiliser OpenPyxl:  demandez à quelqu'un de nommer trois outils que les calculateurs de nombres utilisent dans leur travail, il y a de fortes chances que vous obteniez Python, R et Excel, pas nécessairement dans cet ordre. Excel n'a pas (encore) de connectivité native Python, mais des packages tiers ont comblé l'écart de différentes manières.

Openpyxl fonctionne en modifiant les fichiers Excel   plutôt qu'en manipulant Excel directement. Avec Openpyxl, vous pouvez automatiser la création de feuilles de calcul et de classeurs, générer des formules, remplir des cellules avec ces formules et effectuer de nombreuses autres opérations. Vous pouvez également modifier les propriétés des objets Excel, telles que les styles de cellule et la mise en forme conditionnelle. Quiconque passe beaucoup de temps à regarder des feuilles de calcul y trouvera quelque chose d'utile.

Pee Wee

Ce que fait Peewee:  Un petit ORM (mappeur objet-relationnel) qui prend en charge SQLite, MySQL et PostgreSQL, avec de nombreuses extensions.

Pourquoi utiliser Peewee:  Tout le monde n'aime pas un ORM; certains préfèrent laisser la modélisation de schéma du côté de la base de données et en finir avec elle. Mais pour les développeurs qui ne veulent pas toucher aux bases de données, un ORM bien construit et discret peut être une aubaine. Et pour les développeurs qui ne veulent pas d'un ORM aussi complet que SQL Alchemy, Peewee convient parfaitement.

Les modèles Peewee sont faciles à construire, à connecter et à manipuler. De plus, de nombreuses fonctions courantes de manipulation de requêtes, telles que la pagination, sont intégrées directement. D'autres fonctionnalités sont disponibles sous forme de modules complémentaires, notamment des extensions pour d'autres bases de données, des outils de test et un système de migration de schéma, une fonctionnalité que même un haineux ORM pourrait apprendre à l'amour. Notez que la branche Peewee 3.x (l'édition recommandée) n'est pas complètement rétrocompatible avec les versions précédentes de Peewee.

Oreiller

Ce que fait Pillow:  Traitement d'image sans douleur.

Pourquoi utiliser Pillow:  La plupart des pythonistes qui ont effectué le traitement d'image devraient être familiarisés avec PIL (Python Imaging Library), mais PIL est criblé de lacunes et de limitations, et il est mis à jour rarement. Pillow vise à être à la fois plus facile à utiliser et  compatible avec le code PIL via des modifications minimes. Des extensions sont incluses pour parler à la fois des fonctions d'imagerie Windows natives et du package Tkinter GUI de Python basé sur Tcl / Tk. Pillow est disponible via GitHub ou le référentiel PyPI.

Poésie

Ce que fait la poésie:  Gère les dépendances et l'empaquetage de vos projets Python de manière de haut niveau.

Pourquoi utiliser Poetry:  En théorie, vous n'avez rien à faire pour démarrer un nouveau projet Python, sauf créer un répertoire vide et le remplir de fichiers .py. En pratique, en particulier pour un projet ambitieux, vous devrez faire beaucoup plus: créer un README, configurer une structure de dossiers, déclarer vos dépendances, etc. Faire tout cela à la main est un casse-tête.

La poésie automatise une grande partie de cette configuration et de cette maintenance. Exécutez poetry new pour créer un nouveau répertoire de projet et un environnement virtuel, pré-remplis avec un assortiment de base de composants. Déclarez vos dépendances en utilisant le format de fichier pyprojec.toml de Python, et Poetry les gérera pour vous. Les produits gérés par Poetry existants peuvent voir leurs dépendances automatiquement installées, actualisées et modifiées à partir de la ligne de commande de Poetry. Poetry gère également la publication sur un référentiel distant (comme PyPI).

PyFilesystem

Ce que fait PyFilesystem:  Une interface Pythonic vers n'importe quel système de fichiers -  n'importe quel  système de fichiers.

Pourquoi utiliser PyFilesystem:  L'idée fondamentale derrière PyFilesystem ne pourrait pas être plus simple: tout comme les fileobjets de Python abstraits d'un seul fichier, les FSobjets de PyFilesystem abstraits d'un système de fichiers entier. Cela ne signifie pas non plus uniquement les systèmes de fichiers sur disque. PyFilesystem prend également en charge les répertoires FTP, les systèmes de fichiers en mémoire, les systèmes de fichiers pour les emplacements définis par le système d'exploitation (comme le répertoire utilisateur) et même les combinaisons des éléments ci-dessus superposés les uns sur les autres.

En plus de faciliter l'écriture de code multiplateforme qui manipule des fichiers, PyFilesystem évite d'avoir à bricoler des scripts à partir de parties disparates de la bibliothèque standard, principalement  os et  io. Il fournit également des utilitaires que l'on pourrait autrement avoir besoin de créer à partir de zéro, comme un outil pour imprimer des vues arborescentes conviviales pour la console d'un système de fichiers.

Pygame

Ce que fait Pygame:  Créez des jeux vidéo, ou des interfaces de qualité de jeu, en Python.