Python — partie 9 ― formateur de code, analyse statique

37
9
juin
2021
Python

Cette dépêche est la suite d’une série sur Python initiée en septembre 2019. Après un sommeil cryogénique d’un an et demi, on repart en forme avec d’autres contenus Python à vous proposer : actualité, bonnes pratiques, astuces, témoignages… Elle a été rédigée principalement à deux voix, Oliver et Philippe, qui vous font part de leur expérience sur les fonctions.

Cette dixième partie présente les formateurs de code bien pratiques et les analyseurs de code. 🐍 🐍 🐍

Le logo de Python est entouré de petites icônes symbolisant la variété des domaines où s’applique Python, et, à droite, un joyeux barbu se tient derrière un écran d’ordinateur qui affiche « partie = 10, "Formateurs" \n print(partie) »

Pour rappel, les autres dépêches déjà publiées :

Journal Idle Do, un script pour faire tourner des commandes quand l'ordinateur est inactif

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
37
3
jan.
2021

Pour éviter de perdre mes photos en cas d'incendie ou de vol, j'ai décidé de les sauvegarder sur AWS Deep Glacier. C'est très bon marché (20 centimes par mois pour ~150 Go) et sans doute assez écologique puisque les fichiers sont stockés hors ligne (il faut plusieurs jours pour les restaurer)

C'est super, mais nous sommes en 2021 et mon bled n'est toujours pas couvert par la fibre. Ce qui veut dire que j'ai 80Ko/s en upload les bons jours (…)

Journal vim: Au revoir syntastic, bonjour ALE

Posté par  . Licence CC By‑SA.
Étiquettes :
37
24
août
2018

J'utilise Vim pour éditer des fichiers et notamment pour coder. Et j'aime bien avoir l'intégration des linters dans mon éditeur pour afficher les erreurs à côté du texte.

Un linter, c'est un programme qui analyse le code et signale les infractions aux règles de codages, les potentiels problèmes, erreurs de syntaxes, variables non utilisées, etc. En Python, par exemple, j'utilise pylint et flake8.

Pour intégrer ces linters à un éditeur de texte, il existe des plugins.

Depuis longtemps je (…)

Journal CPython abandonne Mercurial et passe à Git et Github

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
37
2
jan.
2016

Les développeurs de Python ont décidé d'abandonner leur infrastructure actuelle, basée sur divers outils open-source écrits en Python et auto-hébergés, pour passer aux services propriétaires proposés par Github. Cela implique de passer le code source de Mercurial à Git.

La raison fondamentale, détaillée dans le PEP 481, est la nécessité de faciliter le travail des contributeurs du projet, l'arrivée de nouveaux contributeurs, et les contributions occasionnelles (correction de typos, amélioration de doc).

L'infrastructure actuelle utilise un outillage spécifique, comme (…)

Journal le dessous des cartes

Posté par  . Licence CC By‑SA.
37
14
août
2015

Cher journal,

J'aime bien lire sur ce site les histoires de création de carte comme celle-ci ou celle-là, alors je vais te conter la mienne.

quelle est la question ?

Partant d'une question pertinente : "Est-il facile de se ravitailler en GPL en France", j'en suis venu à une question idiote : "Est ce qu'il y a une grande différence des prix du carburant en fonction d'où on habite".

J'imagine une carte de France des points de vente, catégorisés en (…)

minipy, un serveur Python dans son Android

Posté par  . Édité par palm123, BAud, Davy Defaud, Benoît Sibaud, Cyprien et gUI. Modéré par Davy Defaud. Licence CC By‑SA.
Étiquettes :
37
11
juil.
2019
Android

Minipy est une application Android dont les sources sont distribuées sous licence MIT. Cette application permet d’exécuter des petites commandes Python depuis son smartphone ou sa tablette Android. En elle‐même, cette application ne fait pas grand’chose et il faut bien reconnaître que son utilité est très limitée.

Toutefois, son intérêt n’est pas dans le pourquoi, mais plutôt dans le comment. Cette dépêche va donc expliquer comment cette application fonctionne et va détailler les différentes étapes nécessaires à la création de cette application jusqu’à son empaquetage plutôt non conventionnel.

Dans une seconde partie, cette dépêche va s’intéresser à l’architecture de Minipy qui permet de faire tourner « en local » un serveur Python Tornado qui dialogue avec une page HTML (rendue par un WebView) via des WebSockets.

minipy

Créer une application web avec Jupyter, ipywidgets et voilà

Posté par  . Édité par ZeroHeure, Ysabeau 🧶 🧦, Davy Defaud et Arkem. Modéré par claudex. Licence CC By‑SA.
Étiquettes :
37
4
oct.
2019
Python

Vous connaissez sans doute Jupyter, cet outil de développement tournant dans un navigateur qui est particulièrement en vogue chez les scientifiques et plus généralement dans les domaines liés au traitement des données. Aujourdʼhui je vais te parler d’une possibilité offerte par Jupyter qu’il ne me semble pas, sauf erreur de ma part, avoir vu évoquée ici, à savoir le développement dʼapplications web.

Journal Génération de code (Python) avec Grako

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
37
3
juil.
2016

Depuis quelques jours, je découvre une lib Python, grako. Et je dois dire, elle est assez magique !

Besoin initial, trouver la lib!

Le besoin initial s'est présenté au boulot : on doit écrire un DSL pour interroger un ensemble de systèmes fournissant chacun de la donnée à leurs manières.

La première chose faite, c'est d'écrire la grammaire eBNF de ce DSL. Histoire de prévoir comment on va parser le bazar.

La seconde chose faite, et c'est devenu un réflexe (…)

Sortie de Shinken 0.6

36
6
mai
2011
Python

Les auteurs de Shinken, outil de supervision compatible avec Nagios, viennent de publier leur dernières avancées sur ce projet. Cette version est dans la continuité de ce à quoi ils nous ont habitué, avec de nombreuses nouveautés :

  • un module de découverte automatique du réseau ;
  • une amélioration de l’architecture distribuée, pour gérer au mieux les pertes des sites distants et les DMZ ;
  • un support avancé des environnements VMWare.

Pythran 0.6 - compilation de noyaux scientifiques écrits en Python

Posté par  (site web personnel) . Édité par ZeroHeure, Benoît Sibaud, palm123 et tuiu pol. Modéré par Benoît Sibaud. Licence CC By‑SA.
36
6
nov.
2014
Python

Pythran est un compilateur pour les noyaux de calcul scientifique écrit en Python. Il permet d'écrire des modules dans un large sous-ensemble de Python + Numpy, d'ajouter quelques lignes de commentaire pour spécifier les types des fonctions exportées, enfin de compiler l'ensemble pour obtenir un module natif capable (parfois !) d'utiliser efficacement multi-cœurs et unités vectorielles. Le reste de la dépêche décrit le fonctionnement du compilateur, les évolutions récentes et propose une comparaison avec les alternatives : Cython, numba et parakeet.

Trigger Happy : une passerelle entre vos services Internet

Posté par  (site web personnel) . Édité par Nils Ratusznik, Davy Defaud, ZeroHeure et palm123. Modéré par Pierre Jarillon. Licence CC By‑SA.
36
10
nov.
2016
Python

Trigger Happy se veut être une alternative libre du célébrissime site/service IFTTT. Le principe ? Récupérer des informations situées à l’autre bout de la toile pour les publier ou les enregistrer ailleurs. Trigger Happy est disponible en version 1.1.0 depuis le 25 octobre dernier.

Exemples de scénarii :

  • à chaque nouvelle dépêche sur LinuxFr.org, sans lever le petit doigt, je sauvegarde l’article sur mon compte wallabag ;
  • chaque tweet disposant des mots « job développeur Python » est enregistré dans mon compte Evernote ;
  • chaque ticket ouvert sur GitHub crée une carte sur mon compte Trello (et/ou inversement) ;
  • quand j’enregistre une note sur Evernote, cela publie un billet sur mon blog à l’aide de Pelican.

Journal Kit de démarrage Python

Posté par  (site web personnel) . Licence CC By‑SA.
36
27
août
2013

Avec le temps, je me suis rendu compte que faire un projet Python bien propre n'était pas si facile que ça, il faut écrire les tests unitaires, utiliser gettext pour les traductions, avoir un fichier setup.py (équivalent de Makefile) pour l'installation ou la génération de paquets (setup.exe, .deb, .rpm, …), préparer la doc pour la générer facilement, utiliser pkg_resources au lieu d'accéder directement aux fichiers (pour les icônes, par exemple), etc.

Au final, ce boulot doit être refait à chaque (…)

Coloriser la sortie d'une commande arbitraire

Posté par  (site web personnel, Mastodon) . Édité par NeoX. Modéré par j. Licence CC By‑SA.
36
31
mar.
2012
Ligne de commande

Ne vous est-il jamais arrivé de souhaiter que la sortie de votre commande favorite soit en couleurs, afin de vous aider à trouver l'information que vous cherchez ? Que celui qui n'a jamais pesté devant les affichages de g++, en dehors de son IDE favori, sur un code utilisant des templates, me jette la première pierre.

En attendant la nouvelle génération de terminaux, il vous reste au moins deux options : acoc ou colout.

Owlready : un module Python pour manipuler les ontologies OWL

Posté par  (site web personnel) . Édité par ZeroHeure, Pierre Jarillon, Davy Defaud et palm123. Modéré par bubar🦥. Licence CC By‑SA.
36
3
sept.
2017
Python

Les ontologies formelles sont un moyen de modéliser des connaissances. Elles sont de plus en plus utilisées en intelligence artificielle. Cependant, bien qu’elles partagent de nombreux aspects avec les modèles objet, elles restent peu connues des programmeurs.

Owlready est un module sous licence LGPL permettant de faire de la programmation orientée ontologie en Python, c’est‐à‐dire de manipuler les entités d’une ontologie formelle comme s’il s’agissait d’objets Python classiques. La version 2 - 0.4 intègre un quadstore RDF optimisé et une syntaxe de haut niveau pour manipuler les ontologies, qui a fait l’objet d’un article récent de la revue Artificial Intelligence In Medicine (AIM).

Dans la suite de cet article de la série « que peut‐on faire dans le Libre quand on est maître de conférence ? », les ontologies seront rapidement présentées, puis je décrirai Owlready et la programmation orientée ontologie. Enfin, j’en profiterai pour donner mon point de vue personnel sur le libre accès aux articles scientifiques.

Publication de Pyramid 1.5

Posté par  . Édité par fero14041, wilk, BAud, Benoît Sibaud, palm123, Nÿco, gawel, Cyprien Le Pannérer, Bruno Michel, claudex, tuiu pol, NeoX, Nicolas Casanova et Ymage. Modéré par patrick_g. Licence CC By‑SA.
Étiquettes :
36
5
mai
2014
Python

Sept mois après la sortie de la version alpha, la version 1.5 est disponible en version stable. Pyramid est un framework Python (Python2 et Python3) pour le développement de sites web, développé avec le projet Pylons (qui regroupe justement des frameworks web), sous licence libre BSD.

Pyramid