Numba, l'optimiseur Python spécialisé dans le calcul numérique, est sorti en version 0.14. Numba est un compilateur juste-à-temps (JIT) pour Python, basé sur LLVM, permettant d'optimiser du code de calcul numérique, notamment basé sur Numpy. Il est compatible avec CPython 2.6, 2.7, 3.3 et 3.4. Des paquets binaires sont disponibles via Anaconda, la distribution de paquets binaires dédiée au calcul scientifique maintenue par Continuum Analytics, l'entreprise qui développe Numba.
Tomate : une petite applet de productivité pour Linux
Comme beaucoup d'entre nous, je souffre de problèmes de procrastination et d'attention, surtout devant un ordinateur. Comment résister à l'appel de l'Internet et se concentrer sur une tâche importante, mais pas forcément passionnante ?
Je me suis donc mis à la recherche d'outils qui puissent m'aider à mieux me concentrer. Je suis tout d'abord tombé sur un très bon livre recommandé par Papey : "Comment ne pas tout remettre au lendemain", par Bruno Koelz.
Finalement, pour moi, le diagnostic est le suivant : le plus difficile est de s'y mettre, c'est-à-dire de se concentrer pendant un laps de temps suffisant pour se plonger dans le problème. Une fois cette étape passée, continuer est beaucoup plus simple.
J'ai donc développé une petite applet qui me permet de passer un contrat avec moi-même: en cliquant sur une petite icône, je m'engage à me concentrer sur un problème donné pendant au moins dix minutes. L'icône devient alors rouge pendant dix minutes, après quoi elle passe au vert. Je suis alors libre de m'arrêter ou de continuer.
N. D. M. : le projet est sous licence GPL 3.
Sortie de Flask 1.0
Flask est un micro‐cadriciel Web pour Python publié sous licence BSD. Il est basé sur Werkzeug, Jinja2, MarkupSafe et ItsDangerous.
Bien que stable depuis longtemps, Flask passe finalement en version 1.0, huit ans après le début de son développement. Cette version aura demandé un an de travail et propose un grand nombre de modifications.
Le gestionnaire de projet Python Poetry 1.0.0 est disponible !
L’outil de gestion de projet Python Poetry est sorti en version 1.0.0 ! Sa date de naissance est officiellement le jeudi 12 décembre 2019.
Poetry est un programme en ligne de commande permettant aux développeurs de gérer les métadonnées d’un projet, les dépendances, l’environnement de développement, la génération de livrables, la publication, l’environnement d’exécution et d’autres choses. Le tout de manière unifiée.
À l’origine du projet se trouve le Français Sébastien Eustace. À partir de cette version 1.0.0, le projet Poetry est géré par une équipe nommé sobrement python-poetry avec son propre site et sa propre organisation GitHub.
Kalliope, votre assistant personnel vocal
Kalliope est un assistant vocal personnel. Il peut, par exemple, vous permettre de piloter votre installation domotique à la voix. Il est écrit en Python et est sous licence MIT. Le code est disponible sur GitHub.
Sortie de Django 1.4
Vendredi matin, un an après la 1.3, est sortie la version 1.4 du framework Web Django, écrit en Python.
Ce framework, basé sur un concept Modèle-Template-Vue (MTV, à rapprocher du MVC), est conçu pour le développement rapide et reprend la plupart des grands principes de Python (« Explicit is better than implicit », notamment), ce qui en fait la plate-forme de développement Web idéale pour les perfectionnistes sous pression.
De plus en plus de sites utilisent Django (par exemple, 20minutes, Libération.fr, Disqus, Century21, convore, instagram, threadless…) pour sa flexibilité et pour le nombre d’applications Django réutilisables, qui ne cesse de croître.
Je vous propose de découvrir les quelques nouveautés que vous offrent les développeurs Django et toute la communauté.
Sortie de IPython 5.0
IPython est un terminal interactif pour Python qui améliore l'expérience utilisateur lors de l'usage en ligne de commande. Entre les versions 0.12 et 3.x incluses, IPython contenait aussi un grand nombre de fonctionnalités liées au "Notebook" qui fait maintenant partie du "Project Jupyter" – voir dépêche précédente. Cette nouvelle version 5.0 est donc en partie un retour aux sources qui se concentre sur l'interface en ligne de commande de IPython.
Ce qui suit est une adaptation approximative de l’annonce faite sur le blog de Jupyter.
Grand merci à palm123, Storm, M5oul et en particulier à Lucas qui a fait plus de la moitié de la traduction pendant que je suis à SciPy 2016 à Austin, Texas.
Crowl, un crawler SEO open-source
Crowl est un projet de développement d’un crawler SEO collaboratif sous licence GPL v3. Développé en Python et basé sur le cadriciel Scrapy, Crowl a pour but de fournir aux professionnels du référencement un outil simple, robuste et innovant pour répondre à des besoins non couverts par les outils actuels.
Pandas, une bibliothèque pour manipuler facilement des données
À l'occasion de la sortie de la version 0.13, je vous présente cette bibliothèque basée sur Python qui permet de travailler simplement et efficacement avec des données structurées. Jusqu'à présent, les versions se sont enchaînées rapidement mais celle-ci arrive plusieurs mois après la précédente. On peut donc espérer qu'un code développé pour cette nouvelle version demandera moins de maintenance.
Les principales possibilités sont :
- récupérer des données depuis des fichiers CSV, tableaux Excel, des pages web, HDF5, etc. ;
- grouper, découper, alléger, déplacer, écrire les données ;
- ces données peuvent être à une ou deux dimensions, avec des manques, ou encore temporelles avec ou sans périodicité.
Pour peu que les données soient correctement formatées, pandas peut s'en sortir même dans le cas où la quantité dépasse les capacités de votre machine en traitant les sources morceaux par morceaux.
Le développement de cette bibliothèque s'inscrit dans la problématique de disposer d'outils pour manipuler de gros volumes de données dans le but de leur exploitation scientifique ou commerciale.
Note : pandas fonctionne avec la même base de code sur Python 2 et 3 mais ce n'est, peut-être, pas le cas de toutes les dépendances.
Python — partie 9 ― formateur de code, analyse statique
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. 🐍 🐍 🐍
Pour rappel, les autres dépêches déjà publiées :
- Python — Popularité
- Python — Python 2
- Python — Installation de Python et de paquets
- Python — Py Pyenv
- Python — Nix (et Guix)
- Python — Pip et Pipx
- Python — environnements virtuels
- Python — Pipenv
- Python — Entretiens
Créer une application web avec Jupyter, ipywidgets et voilà
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.
Python arrive en version 3.1
Les nouvelles fonctionnalités ne sont pas en reste. Le type « dictionnaire ordonné », qui conserve l'ordre d'insertion des éléments, souvent demandé par les utilisateurs, fait enfin son entrée dans le langage sous le nom « odict » (PEP 372: Adding an ordered dictionary to collections). L'instruction « with » accepte désormais d'écrire plusieurs contextes sur la même ligne, rendant contextlib.nested() désuet.
La seconde partie de la dépêche détaille les nouveautés de la version 3.1.
Publication de Pyramid 1.5
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.
Pythran 0.6 - compilation de noyaux scientifiques écrits en 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.
Owlready : un module Python pour manipuler les ontologies OWL
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.
Sortie de Shinken 0.6
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.
Trigger Happy : une passerelle entre vos services Internet
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.
Retour sur Django 1.5
Le mardi 26 février, 11 mois après la 1.4, est sortie la version 1.5 du framework web Django, écrit en Python. Ce framework, basé sur un concept Modèle-Gabarit-Vue (MGV, à rapprocher du MVC), est conçu pour le développement rapide et reprend la plupart des grands principes de Python (« Explicit is better than implicit », notamment), ce qui en fait la plate-forme de développement Web idéale pour les perfectionnistes sous pression.
De plus en plus de sites utilisent Django (par exemple, 20minutes, Libération.fr, Disqus, Century21, Convore, Instagram, Threadless…) pour sa flexibilité et pour le nombre d’applications Django réutilisables, qui ne cesse de croître. Je vous propose de découvrir les quelques nouveautés que vous offrent les développeurs Django et toute la communauté.
NdM : le 28 mars la version 1.5.1 de Django est sortie. Il s'agit d'une version de maintenance corrigeant quelques bogues mineurs et un problème de fuite de mémoire introduit par la version 1.5.
Sortie d’IPython en version 3.0
Pour ceux qui ne connaissent pas IPython, je vous propose de consulter les dépêches précédentes car, même si à l'origine il s'agissait uniquement d'une console évoluée pour Python, l'envergure des possibilités a bien changé.
Pour rappel : IPython est une console alternative principalement tournée vers l’exploration interactive des données. […] Au‐delà d’une simple console Python, elle est aussi agnostique au niveau du langage en offrant une console Qt, un notebook Web (interface Web riche) et l’architecture pour y écrire dans son dialecte préféré.
Pour ceux qui préfèrent une version des nouvelles fonctionnalités dans la langue de Shakespeare, je vous suggère de lire les notes de version en anglais. Je vais me contenter de faire une traduction libre dans la langue de Molière, ainsi que de digresser sur d'autres sujets voisins.
Merci à tous les contributeurs à cette dépêche qui ont corrigé toutes mes fautes, anglicismes et autre erreurs qui font saigner les yeux etc. Merci palm123, eggman, BAud, Jiehong, Nÿco, Snark, Ytterbium et Nicolas Casanova.
Python 2.7
Python est un langage de programmation interprété multi-paradigme. L'interprète standard (CPython) est distribué sous licence PSF (semblable à la licence BSD). CPython est multiplateforme : Windows, Linux, Mac OS X, *BSD, AIX, MS-DOS, OS/2, QNX, etc.
CPython sert de référence pour le langage Python et les autres implémentations : PyPy (écrit en Python), IronPython (plateforme .NET) et Jython (JVM). Ces implémentations ne sont pas aussi à jour que CPython puisque IronPython est compatible avec Python 2.6 tandis que PyPy et Jython sont compatibles 2.5.
Sortie de la version 2 de Kansha, outil collaboratif et visuel de gestion de tâches
Nous sommes heureux d’annoncer la sortie de la version 2 de Kansha, outil collaboratif et visuel de gestion de tâches. C’est une application Web dans le style du logiciel propriétaire Trello, multi‐plate‐forme, écrite en Python et disponible sous licence BSD.
Les nouveautés par rapport à la version 1 sont :
- une nouvelle apparence, plus moderne, plus claire ;
- une ergonomie améliorée de la plupart des fonctionnalités, pour un usage encore plus fluide, plus intuitif et plus agréable ;
- une interface plus réactive ;
- la possibilité de créer des modèles de tableaux personnalisés, pour démarrer plus rapidement ses projets ;
- la possibilité de partager des tableaux avec tous les utilisateurs de la plate‐forme ;
- une vue à la semaine dans l’agenda ;
- deux nouvelles langues pour l’interface des utilisateurs : turc et japonais.
Sortie d’IPython en version 2.0
IPython est une console alternative principalement tournée vers l’exploration interactive des données. Comme tous les 6 mois maintenant (avec 3 mois de retard), la nouvelle version est publiée. Je vous invite à aller lire les dépêches précédentes si vous ne connaissez pas IPython.
Au‐delà d’une simple console Python, elle est aussi agnostique au niveau du langage en offrant une console Qt, un notebook Web (interface Web riche) et l’architecture pour y écrire dans son dialecte préféré.
Pour rappel, IPython 2.0 est la seconde des quatre versions qui seront publiées sur les fonds donnés par la fondation Sloan sur une durée de deux ans. Je vais ici vous présenter quelques nouveautés qui ont été développées lors des 9 derniers mois et vous donner un avant‐goût de ce qui est prévu pour le mois à venir.
Merci aux participants qui m’ont aidé à rédiger cette dépêche, corrigeant les fautes d’orthographe et les anglicismes.
Python — partie 7 — Environnements virtuels
Python pour Noël 2019 — partie 4 — Py Pyenv
Dans les précédentes dépêches, nous avons discuté de la popularité de Python, de la fin de la maintenance de Python 2, de l’installation de différentes variantes de Python…
Ce quatrième volet de la série donne des conseils pour faire cohabiter différentes versions de Python sur sa machine et pouvoir basculer simplement d’une version à l’autre. On commence avec Py et Pyenv. La dépêche suivante montrera comment obtenir des résultats similaires avec Conda et Docker.
La dépêche est au format tutoriel afin d’être rapidement opérationnelle. Enfin, les versions de CPython, d’ActivePython, d’Anaconda, de Miniconda, d’IronPython, de Jython, de MicroPython, de PyPy, de Pyston et de Stackless sont à portée de main clavier. 🚀 🐍
Sortie de R.A.S. v0.4, alias RandoAmisSecours
Il y a quelques mois sortait la première release (v0.1) de R.A.S. (aka RandoAmisSecours), sous licence AGPL v3
Pour rappel, R.A.S. est une application web permettant de déclarer les sorties (montagne, canyon, …) que l'on va effectuer. Chaque sortie étant assortie d'un horaire de fin. Si vous ne revenez pas à temps de votre sortie (par exemple à cause d'un accident), R.A.S. alertera vos contacts par mail. Je vous avais parlé de ce projet dans cette dépêche. Suite aux nombreux retours, j'ai réalisé de (très) nombreux développements qui ont amené à la sortie de 3 releases, dont voici la dernière, la v0.4.