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 initet 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¶
toutes les librairies importantes se trouvent ici https://
pypi .python .org/ attention souvenez-vous que n’importe qui peut y publier !
la présence sur pypi ne veut pas dire code fiable, supportépipest le programme qui permet de les installer facilement
https://pip .pypa .io /en /latest /installation/
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 numpycapable 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 depip
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 efficacespandas: données tabulaires (type excel/csv)scikit-learn: machine-learningmatplotlib: visualisationplein d’autres libs de visualisation -
seaborn,altair,bokeh,plotly, ...
pour le dashboards / UI
streamlitflet
autour des notebooks
bien sûr
jupyter(jupyterlab), avec - je recommande -jupytextmais aussi vs-code,
ou bien en version hostée sur https://cocalc.com/
ou encore https://
colab .research .google .com/ pour les notebooks interactifs:
ipywidgetsetinteract()
asynciopour la programmation asynchroneunittest, et surtoutpytestpour les tests et l’intégration continuesphinxetreadthedocs.iopour la documentation
pour info ce support est transformé en HTML avecjupyter-book
vérification: pylint¶
un outil externe qui vérifie le code par analyse statique
permet de vérifier un très grand nombre de bonnes propriétés
super utile: voir pylint saves the day
demande un investissement initial, mais retour sur investissement très court !
# et qui s'installe donc avec, wait for it...
pip install pylintfiltrer 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:
constituer un fichier de config pour le projet
https://pylint .readthedocs .io /en /stable /user _guide /configuration /index .html #configuration enlever progressivement les erreurs acceptables
ce qui peut se faire à tous les niveaux: projet ou fichier ou même ligne par ligne
la doc avec Sphinx et readthedocs.io¶
vous pourrez constater que l’énorme majorité des documentations de librairies sont hostées sur https://
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