Licence CC BY-NC-ND, Thierry Parmentelat & Arnaud Legout

from IPython.display import HTML
HTML(filename="_static/style.html")

outils externes utiles#

git#

c’est juste indispensable de toujours travailler sous un SCM !
vous commencez un projet, ayez le réflexe de :

  • créer un dossier

  • git init

  • et commiter fréquemment

pensez ensuite à dupliquer votr dépôt sur une plateforme distante (github - gitlab - bitbucket)

  • pour avoir une sauvegarde

  • et éventuellement collaborer

n’attendez pas d’en avoir besoin !: c’est utile tout de suite

librairies tierces (non standard)#

pypi.org#

pip : comment installer une librairie externe#

# dans le terminal
$ pip help

Usage:
  pip <command> [options]

Commands:
  install                     Install packages.
  download                    Download packages.
  uninstall                   Uninstall packages.
  freeze                      Output installed packages in requirements format.
  inspect                     Inspect the python environment.
  list                        List installed packages.
  show                        Show information about installed packages.
…

et donc, typiquement par exemple on fait simplement

# toujours dans le terminal
pip install numpy
  • capable de gérer les setups complexes, y compris lorsque du code binaire est nécessaire (cf wheels)

  • n’affranchit pas de bien lire la doc d’installation lorsqu’une approche naïve échoue

  • à signaler aussi : utilisez python -m pip à la place de pip
    en cas de multiples installations + ou - stables, pour être sûr d’installer pour le bon Python

librairies notables#

  • pour le calcul scientifique

    • numpy: tableaux et matrices efficaces

    • pandas: données tabulaires (type excel/csv)

    • scikit-learn: machine-learning

    • matplotlib: visualisation

    • plein d’autres libs de visualisation - seaborn, altair, bokeh, plotly, …

  • pour le dashboards / UI

    • streamlit

    • flet

  • autour des notebooks

  • asyncio pour la programmation asynchrone

  • unittest, et surtout pytest pour les tests et l’intégration continue

  • sphinx et readthedocs.io pour la documentation
    pour info ce support est transformé en HTML avec jupyter-book

vérification: pylint#

un outil externe qui vérifie le code par analyse statique

# et qui s'installe donc avec, wait for it...
pip install pylint

filtrer la sortie de pylint#

le problème principal avec pylint: trop de features, du coup beaucoup de bruit !
il convient de déterminer avec l’expérience les traits importants
pour cela, commencer avec la liste complète, et éliminer le bruit:

la doc avec Sphinx et readthedocs.io#

vous pourrez constater que l’énorme majorité des documentations de librairies sont hostées sur https://readthedocs.io/
le plus souvent elles sont construites à partir des sources en utilisant la librairie Sphinx

pour information, ces supports sont produits avec jupyter-book, qui élabore au-dessus de Sphinx une couche spécifique aux notebooks

les tests avec pytest#

la librairie standard propose un module unittest; c’est un apport appréciable ! la librairie pytest est compatible avec, mais étend encore les possibilités de ce module, c’est une librairie très fréquemment utilisée