Le Blog

Les collaborateurs d’Invivoo explorent et partagent leurs connaissances du domaines IT.

Les dataclasses en python

Introduit en Python 3.7 à la suite du PEP 557, le mécanisme des dataclasses est une petite boîte à outils permettant de simplifier l’écriture de quelques éléments de base de la définition des classes, et ainsi d’améliorer leur lisibilité. Premier abord Ces...

Simplifiez votre code avec l’opérateur “Walrus”

Parmi les nouveautés apportées par la version 3.8 de Python, l’une des principales est l’apparition des expressions d’affectations. Grâce à un nouvel opérateur bien pratique appelé Walrus, il est désormais facile d’économiser quelques lignes de code dans plein de...

Appliquer le TDD avec pytest

Le TDD (Test Driven Development) est un process de développement logiciel qui consiste à faire évoluer un programme petit à petit à travers des mini-cycles : le développeur commence par implémenter un test automatique échoué représentant un cas d’utilisation...

Paradigme de programmation fonctionnel

Cet article sur le paradigme de programmation fonctionnel est le 3ème de notre série sur les paradigmes de programmation. N'hésitez pas à prendre connaissance des deux premiers articles : Paradigme de programmationParadigme Impératif Structuré Lambda-calcul, un...

Paradigme impératif structuré

Cet article sur le paradigme impératif structuré est la suite de l'article sur les Paradigmes de programmation. Quelques exemples Si le paradigme impératif structuré est pratiqué par les humains depuis très très longtemps… Dans les faits, on part d’un état initial....

Paradigme de programmation

Qu’est-ce qu’un paradigme ? C’est en effet une grande question : qu’est-ce qu’un paradigme de programmation ? Si on se base donc sur la définition du Larousse : « Un paradigme est — en épistémologie et dans les sciences humaines et sociales –...

Python et le GUI : wxPython

Beaucoup de personnes partent du principe que Python n’est qu’un langage de script et le cantonnent à l’automatisation des tâches. Grâce à des frameworks, on peut aussi s’en servir pour faire des clients lourds. Le module tkInter qui permet de faire des boîtes de...

Slots : an unknown optimization

As a former C developer working in high-performance computing, I wondered very early about the compactness of objects that were commonly created in Python. It quickly became clear to me that this was not optimal in most cases, resulting from the choice of original...

Les slots, une optimisation méconnue

En tant qu’ancien développeur C travaillant dans le calcul hautes performances, je me suis très tôt posé la question de la compacité des objets que l’on créait ordinairement en Python. Il m’est apparu rapidement que celle-ci n’était pas optimale dans la plupart des...

Designer des APIs Rest avec Flask-RESTPlus

Flask est un microservice web qui permet entre autres d’implémenter des API REST. Mais lorsqu’il s’agit de les documenter, visualiser, contrôler et valider les schémas de données d’entrées et de sorties, Flask atteint vite ses limites. C’est ici qu’intervient son...

How to sort CSV files?

1. Context Twice during my career, I was given the project to compare two large CSV files (Comma Separated Values: text files corresponding to either an Excel file export or an export of database tables): In the first case, it was a comparison between trades entered...

Pandas : le datamanagement à la portée de toutes les mains

Pandas est un package python qui permet de traiter des jeux de données de manière efficace et compréhensible. De la lecture des fichiers à une première approche statistique. Pandas est le compagnon de jeu de n’importe quel datascientist pythonicien ! Pandas est...

Introduction to metaclasses

Python is a strongly object-oriented language and is becoming increasingly popular over the years. Lots of projects continuously emerge which size and complexity make them much more than just a bunch of scripts. Such projects make extensive usage of OOP, defining...

La migration de Python 2.X à Python 3.X

Depuis 2008, deux versions de Python coexistaient avec, pour chacune d’entre elles, son lot de défenseurs… Guido Van Rossum avait souhaité, avec la version 3.X, corriger certaines syntaxes qui limitaient l’évolution du langage. Python 3 a été conçu comme un vrai...

Comment trier des fichiers CSV ?

Comment trier des fichiers CSV ?

1. Contexte Deux fois au cours de ma carrière, on m'a donné le projet de comparer deux fichiers CSV de grande taille (Comma Separated Values : des fichiers textes correspondant soit à un export de fichier Excel soit un export de tables de bases de données) : Dans le...

The Sieve of Eratosthenes

The Sieve of Eratosthenes

1. Who is Eratosthenes? Eratosthenes of Cyrène was a Greek mathematician, geographer, poet, astronomer and music theorist. He was the chief librarian at the Library of Alexandria. He is commonly called the "father of geography". He is also the first person who made...

Introduction au type checking en Python avec mypy

Introduction au type checking en Python avec mypy

Python est bien connu par sa flexibilité qui vient du fait d'adopter et de promouvoir le duck typing. Pour écrire du code vraiment pythonic, on ne se préoccupe pas vraiment des types des objets qu'on manipule, mais des méthodes et attributs dont il dispose et de leur...

Gestion d’environnements virtuels en Python

Gestion d’environnements virtuels en Python

Les environnements virtuels sont un mécanisme très souvent utilisé pour la gestion de dépendances et isolation entre projets python développés dans une même machine. Ils sont aussi très souvent utilisés pour faire face à la fragmentation amenée par l'arrivée de Python...

À la vitesse du Python : les conteneurs associatifs

1 – Contexte Suite à mon premier article parlant des techniques d’optimisation, j’avais volontairement omis les conteneurs associatifs qui méritent un article spécifique : en effet, ils sont extrêmement utiles et utilisés. Connaitre leurs qualités et leurs...

À la vitesse du Python

Python est un langage compilé en bytecode dont le bytecode sera ensuite interprété. Si l’interpréteur est très efficace et que la plupart des bibliothèques sont écrites en C, il n’en reste pas moins que beaucoup d’opérations peuvent être plus lentes que si elles avaient compilé comme le C.

L’intérêt de se diversifier pour un développeur

L’intérêt de se diversifier pour un développeur

Philippe Boulanger, Manager d'Expertise Python, nous parle de la nécessité pour un développeur de se confronter à des langages différents. Au cours de ma carrière, j’ai été confronté à des collègues ayant eu un apprentissage incomplet de l’informatique : leur...