Excellent Python - vos bibliothèques Python de haute qualité

Bonjour,

Cela fait des années que j’utilise des awesome-xxx pour trouver de bonnes bibliothèques à tester. Malheureusement, je n’en trouve jamais en français. Je tombe parfois sur des articles en français du style “TOP 10 des bibliothèques python”, qui sont souvent des redites, et qui sont aussi souvent traduit de l’anglais.

Donc je voulais amener ces awesome en francophonie, avec le concept assez mal nommé d’Excellent-Python.
J’ai pensé à quelques catégories, notamment avec les bibliothèques que je trouve pas mal.
J’accepte les contributions sous ce poste

Je pense que ce qui est utile d’avoir :

  • Le nom de la bibliothèque,
  • une courte description en français (1phrase d’accroche),
  • le lien vers la documentation officiel (si possible en français),
  • [opt] un lien vers un article/tuto qui montre son utilisation si existant et si pas déjà dans la docs.

Moissonnage du Web

Scientifique

  • Numpy - Une bibliothèque incontournable pour le calcul Scientifique, difficile de faire sans quand on a besoin de manipuler des matrices, ça implique de laisser sur le pas de la porte quelques “facilités” du monde Python pour s’en servir de manière optimale.
  • scipy - Ça sert pas souvent mais parfois on a besoin d’un coup de pouce pour résoudre un problème mathématique velu.
  • Sympy - Une bibliothèque pour le calcul symbolique.
  • pandas - l’outil parfait pour la data analysis et la manipulation de données, comme numpy ça requière un temps d’adaptation pour s’en servir correctement.
  • openpyxl - On va pas se le cacher, on aime manipuler les données brutes mais le commun des mortels préfère un Excel, cette librairie sert à ça.
  • networkx - La boîte à outil parfaite pour manipuler les graphes, extrêment puissant.
  • plotly - Parce que je suis un fainéant et que j’en ai marre de taper des kilomètres de code matplotlib pour faire des jolis graphiques.
  • folium - Le meilleur copain de Pandas pour faire des jolies cartes leaflet.js.

Vidéo

  • moviepy Un bibliothèque python pour l’édition de vidéo

Performance

Analyse des performances

  • snakeviz - Outil de visualisation de fichiers cProfile.
  • vprof - Outil d’analyse de performance (temps d’exécution ligne-à-ligne, utilisation de la mémoire).
  • Scalene - Analyse de performance CPU, GPU, et mémoire.

Amélioration des performances

  • cython - Permet de rédiger des modules Python compilés nativement, avec un dialecte proche de Python.
  • mypyc - Utilise les annotations de types mypy pour compiler un module Python en C.
  • numba - JIT (sous forme d’un décorateur) pour compiler du code Python ou numpy en code natif.
  • taichi - JIT (sous forme d’un décorateur) pour compiler du code Python en code natif.
  • pypy - Interpréteur Python avec son propre JIT.
  • mpire - multiprocessing mais en mieux.

Qualité

  • black - Parce que formatter son code (et surtout celui des autres) peut apporter de la lisibilité, j’ai un peu de mal avec le côté « non compromission » de la librairie, mais c’est aussi sa force.

  • isort / reorder-python-imports - Ce qu’il manque à black pour trier les imports automatiquement dans les modules Python, utilisez --profile=black pour le rendre compatible avec black.

  • tox - Pour gérer des environnements virtuels et lancer des tests.

Divers

  • natsort - Tri naturel en Python :

    >>> natsorted(["1m80", "12m", "1m24", "21m"])
    ['1m24', '1m80', '12m', '21m']
    
  • Parse - C’est l’inverse de .format() :

    parse("C'est {}, je l'aime!", "C'est Python, je l'aime!")
    <Result ('Python',) {}>
    
  • ipython - C’est globalement jupyter dans la console, bien plus pratique que le shell Python de base, je pense qu’on ne le présente plus.

  • orm / databases - Le duo pour manipuler les bases de données de manière asynchrone et sans prise de tête.

  • requests / httpx - L’outil indispensable pour exécuter des requêtes sur le web ou interroger une API REST ou autre.

  • rich / textual : parce que j’aime les belles interfaces en CLI.

  • tqdm - Une barre de progression multi usages, c’est quand même mieux que des print().

  • shapely - La lib ultime pour la géométrie.

  • more-itertools - Pour compléter itertools.

  • Starlette - La star pour se pondre une API async pépère .

  • Pypandoc - La conversion de doc c’est toujours pratique.

5 « J'aime »