[PATCH 02 of 24 yams V2] [tox] add mypy

Laurent Peuch cortex at worlddomination.be
Wed Mar 4 19:46:51 CET 2020


On Wed, Mar 04, 2020 at 04:42:09PM +0100, Nicola Spanti wrote:
> Le 04/03/2020 à 16:26, Laurent Peuch a écrit :
> >On Wed, Mar 04, 2020 at 04:09:40PM +0100, Nicola Spanti wrote:
> >>$ hg id
> >>deb24bc5407f
> >>$ mypy --ignore-missing-imports yams
> >>yams/schema.py:178: error: Need type annotation for '_specialized_by' (hint:
> >>"_specialized_by: List[<type>] = ...")
> >>yams/reader.py:277: error: Cannot assign to a method
> >>Found 2 errors in 2 files (checked 12 source files)
> >>
> >>Et en fait ce patch a déjà été publié, par moi je le crains, alors qu'il
> >>casse tox. :-/
> >
> >À quoi tu vois que ça le casse ? En tout cas on a rajouté mypy au
> >début mais mypy sort des erreurs sauf sur les derniers changeset car
> >elles sont fixées progressivement donc je sais pas si c'est ça que tu
> >as en tête.
> 
> J'ai testé à partir du dernier commit public (deb24bc5407f) et pas du haut
> de ta pile. Ça aurait été mieux si chaque patch ne cassait rien, ce qui
> permet d'intégrer progressivement et que ça reste ok, surtout s'il faut
> attendre le haut d'une très grosse pile pour avoir le correctif.
> 
> Effectivement en haut de la pile, mypy ne pose plus de problème. En
> revanche, flake8 (qui se plaint d'imports non utilisés) et
> "test/unittest_schema2dot.py" sont passés au rouge.
> 
> Je pense qu'il faudrait d'abord un ou plusieurs patchs pour corriger mypy
> (qui n'indique que 2 erreurs donc il ne devrait à priori pas avoir besoin de
> plein de patchs), puis mettre la suite au-dessus. De plus, et là je ne
> prétends pas du tout que ce serait à priori consensuel, mais ça fait peur
> une pile de plus de 10 patchs et ça me semblerait mieux d'envoyer des
> petites vagues au fur à mesure et à mesure de la publication que d'un coup
> la grosse vague.

Ben le problème en fait c'est que c'était cassé de base pour mypy et
donc l'idée de la pile c'est de progressivement tout fixer au lieu de
faire plein de fixes random histoire que mypy soit contant from
scratch.

Après comme j'avais dit dans l'email de mon précédent je sais pas
exactement comment découper ça bien comme il faut correctement pour
que ça soit facile à passer en revue (mais j'ai pas eu de
réponse/suggestion sur ça), là j'ai choisi par fichier à défaut de
mieux mais sinon je sais pas trop. Je suis aussi en train d'apprendre
à bien faire ça donc j'en suis à plusieurs relectures pour améliorer
petit à petit.

On avait fait une review à en visioconf avec Nico et Franck, ça avait
bien aidé, mais faudrait du monde disponible pour ça et je sais pas
s'il y en a.

Et surtout c'est un peu compliqué comme projet en fait, faut que
l'ensemble soit cohérent entre tous les types et toucher un bout à
tendance à péter de l'autre côté.

Après je peux découper par methodes/fonctions et classes si c'est une
meilleur idée mais ... à première vue (merci ripgrep) on est partie
pour 400 changeset ^^' ... Par class uniquement c'est 63 + le
reste des contenus des modules.

Donc voilà, je prends toutes les meilleures idées sur comment rendre
ça + facile mais ça reste pas trivial comme changements.

> >>Le 04/03/2020 à 15:17, Laurent Peuch a écrit :
> >>># HG changeset patch
> >>># User Laurent Peuch <cortex at worlddomination.be>
> >>># Date 1579279651 -3600
> >>>#      Fri Jan 17 17:47:31 2020 +0100
> >>># Node ID fadce0cbddeb3c003361d439be6a901e592d1042
> >>># Parent  4a3921f215e07cbc3561ab87354462a1a7413b8a
> >>># Available At https://hg.logilab.org/users/lpeuch/yams
> >>>#              hg pull https://hg.logilab.org/users/lpeuch/yams -r fadce0cbddeb
> >>># EXP-Topic type_annotations
> >>>[tox] add mypy
> >>>
> >>>diff --git a/tox.ini b/tox.ini
> >>>--- a/tox.ini
> >>>+++ b/tox.ini
> >>>@@ -1,5 +1,5 @@
> >>>  [tox]
> >>>-envlist=py3,check-manifest,flake8
> >>>+envlist=py3,check-manifest,flake8,mypy
> >>>  [testenv]
> >>>  basepython=python3
> >>>@@ -28,3 +28,8 @@ exclude = docs/*,.tox/*
> >>>  [pytest]
> >>>  python_files = *test_*.py
> >>>+
> >>>+[testenv:mypy]
> >>>+deps =
> >>>+  mypy >= 0.761
> >>>+commands = mypy --ignore-missing-imports yams
> >>>
> >

-- 

Laurent Peuch -- Bram



More information about the cubicweb-devel mailing list