2016-01-13 1 views
2

Avec python 3.5.1. et une installation actuelle de mypy utilisant git, drapeaux d'erreur mypy 1 & 2, mais il ne signale pas 3mypy ne détectant pas une erreur de type de base

Qu'est-ce que je fais mal, ou est-ce un bug, ou est-ce un problème connu?

import typing 

def test_ordered_dict(od: typing.Dict[str,int]) -> typing.Dict[str,int]: 
    return 1 #type error 1 

a = test_ordered_dict(1) #type error 2 

def test_me(): 
    a = test_ordered_dict(1) # type error 3 is not reported 

Répondre

2

Ma compréhension de la documentation: http://mypy.readthedocs.org/en/latest/basics.html est que mypy ne vérifie une chose (module, fonction, peu importe) s'il est indiqué à ce qu'il doit vérifier (en important tapant au niveau du module ou en annotant un fonction). Donc 1 est vérifié car il est dans une fonction qui est tapée, 2 est vérifié car le type d'importation indique que votre module est tapé et qu'il est au niveau du module mais 3 est dans le cadre d'une fonction non typée donc il est ignoré.

+1

Vous pouvez utiliser '--check-untyped-defs' pour intercepter cette erreur. – dpercy