11.5k Star, une bibliothèque de vérification de type statique Python Open Source

Python Learning and Data Mining 2021-10-29 12:57:31
11.5k star une biblioth que

Mypy - Oui. Python Bibliothèque de vérification de type statique pour,Peut être dirigé vers Python Ajouter une annotation de type au programme,Utilisation concomitante mypy Effectuer une vérification de type statique sur eux,Il n'est pas nécessaire d'exécuter le Code pour découvrir les erreurs potentielles dans le programme.Vous pouvez également vous joindre à git hook Moyenne,Permet une vérification automatique avant la soumission du Code.Mypy Avec un système de type puissant et facile à utiliser,Fonctions modernes,Comme l'inférence de type、Généralités、Type appelable、Type Tuple、Type d'union et sous - type de structure.

Utiliser Python 3 Syntaxe annotative(PEP 484 Et PEP 526)Ou Python 2 Annotation basée sur l'annotation,Capable d'annoter efficacement le Code et d'utiliser mypy Vérifier les erreurs courantes dans le Code.

Les types dynamiques et statiques peuvent être mélangés dans le programme,Pour les codes hérités,Si le type statique n'est pas pratique à utiliser,Vous pouvez revenir au type dynamique à tout moment.Par exemple::

from typing import Iterator
def fib(n: int) -> Iterator[int]:
a, b = 0, 1
while a < n:
yield a
a, b = b, a + b

Pour Python 2.7,Note standard écrite comme note:

def is_palindrome(s):
# type: (str) -> bool
return s == s[::-1]

Adresse du projet:

https://github.com/python/mypy

Démarrage rapide

Utiliser pip Effectuer l'installation:

$ python3 -m pip install -U mypy

Si vous voulez exécuter la dernière version du Code,Peut être obtenu à partir de git Effectuer l'installation:

$ python3 -m pip install -U git+git://github.com/python/mypy.git

Une fois l'installation terminée,Vous pouvez utiliser la commande suivante pour vérifier le type statique d'une application:

$ mypy PROGRAM

Méthodes de base pour effectuer les essais:

$ pip3 install -r test-requirements.txt
$ python2 -m pip install -U typing
$ ./runtests.py

IDE Intégration

  • Vim
  1. Utiliser Syntastic:In ~/.vimrc Ajouter let g:syntastic_python_checkers=[‘mypy’]

  2. Utiliser ALE:In ~/vim/ftplugin/python.vim Ajouter une configuration explicitement activée,let b:ale_linters = [‘mypy’]

  • Emas,UtiliserFlycheckEtFlycheck-mypy

  • Sublime Text,Utiliser SublimeLinter-contrib-mypy

  • Autom,Utiliser linter-mypy

  • PyCharm,Utiliser mypy Plug - in

  • VS Code,Fourni à mypy Intégration

  • Peut être ajouté à git hook Moyenne,Permet une vérification automatique avant la soumission du Code

Commandes courantes

Vérifier le contenu spécifié

$ mypy foo.py bar.py some_directory

La commande est vérifiée Récursivement,Tous les fichiers spécifiés correspondants dans le Répertoire sont vérifiés.Mypy Permet également de vérifier d'autres façons le Code spécifié:

-m MODULE, --module MODULE: Vérification de type des modules fournis,Ne pas vérifier Récursivement
-p PACKAGE, --package PACKAGE: Vérification du type de colis fournis,Contrôle récursif
-c PROGRAM_TEXT, --command PROGRAM_TEXT:Vérifiez la chaîne fournie comme un programme
--exclude:Ignorer le nom de fichier spécifié lors de la découverte récursive du fichier à vérifier、Nom et chemin du Répertoire

Profil

--config-file CONFIG_FILE:Lire la configuration à partir du fichier donné.Écraser mypy Par défaut intégré pour

Pas de définition de type et d'appel

--disallow-untyped-calls:Une erreur a été signalée lors d'un appel de fonction avec annotation de type à une fonction sans définition d'annotation
--disallow-untyped-defs,Erreur signalée lors de la définition de la fonction sans annotation de type
--disallow-incomplete-defs,Erreur signalée lors de la rencontre d'une définition de fonction partiellement annotée incomplète
--disallow-untyped-decorators,Une fonction avec annotation de type signale une erreur lorsqu'elle est décorée avec un décorateur sans annotation

Message d'erreur de configuration

--show-error-context:Message avec explication du contexte d'erreur avant toutes les erreurs
--show-column-numbers:Afficher le numéro de ligne
--show-error-codes:Afficher les codes d'erreur
--pretty:Message d'erreur de formatage,Enroulement automatique、Afficher les fragments de code source et afficher les marques de localisation des erreurs, etc
--show-absolute-path:Afficher le chemin absolu du fichier

Génération de messages d'erreur

--any-exprs-report DIR:Générer un rapport de fichier texte dans le répertoire spécifié
--cobertura-xml-report DIR:Construire dans le répertoire spécifié Cobertura XML Rapport d'inspection de type,Doit être installé lxml Bibliothèque pour générer ce rapport
--html-report / --xslt-html-report DIR:Construire dans le répertoire spécifié HTML Rapport d'inspection de type,Doit être installé lxml Bibliothèque pour générer ce rapport
--lineprecision-report DIR:Générer un rapport de fichier texte simple dans le répertoire spécifié,Il contient des statistiques telles que le nombre de lignes de contrôle de type pour chaque module

Communication Technique

Bienvenue à la réimpression、Collection、J'ai quelque chose à gagner.!

Insérer la description de l'image ici

Le Groupe d'échange technique est actuellement ouvert,Le Groupe d'amis a dépassé2000Les gens,La meilleure façon d'ajouter des commentaires est:Source:+Direction de l'intérêt,Pour trouver des amis partageant les mêmes idées

  • Comment①、Envoyer l'image suivante à Wechat,Reconnaissance par presse longue,Retour en arrière - plan:Ajouter un groupe;
  • Comment②、Ajouter un microsignal:dkl88191,Remarques:DeCSDN
  • Comment③、Wechat Search public Number:PythonApprentissage et exploration des données,Retour en arrière - plan:Ajouter un groupe

Attention

版权声明
本文为[Python Learning and Data Mining]所创,转载请带上原文链接,感谢
https://pythonmana.com/2021/10/20211029125554772z.html

  1. Python crawler selenium framework. You can start with these five questions | Python skill tree
  2. It is said that Python is omnipotent. It's really good to see Liyang photography circle with Python this time
  3. 【Python 爬虫】 4、爬虫基本原理
  4. 【Python 爬蟲】 4、爬蟲基本原理
  5. 【 Python crawler】 4. Principes de base du crawler
  6. 这道python题到底应该要怎么做
  7. Que doit faire exactement ce problème Python
  8. Après l'importation des variables du module Python, les valeurs imprimées sont fixes.
  9. Nouveau singe Muzi Lee: 0 cours de formation Python de base types de hachage pour les opérations Python redis
  10. Looking at problems from a fresh perspective: analyzing selenium principle from the perspective of Python
  11. Insérez le format de date dans la base de données MySQL en python et ne l'exécutez pas.
  12. Try Python 3.10 with CONDA
  13. Répondez en python et demandez à quelqu'un de vous aider.
  14. Un simple problème de travail Python, qui ne fonctionne pas
  15. Problèmes d'écriture Python pour la boucle
  16. Comment Python exécute les commandes du programme à plusieurs reprises au lieu de quitter
  17. YYDS! Dexplot: one line of Python code to easily draw statistical charts!
  18. pandas生成的透视表如何和源数据一起保存
  19. pandas生成的透視錶如何和源數據一起保存
  20. Comment sauvegarder le tableau pivot généré par pandas avec les données sources
  21. 10 fois plus efficace avec cache dans le développement de Django
  22. 求Python *.svg文件操作方法
  23. 求Python *.svg文件操作方法
  24. Trouver la méthode de fonctionnement du fichier Python *.Svg
  25. 【 python】 Internal Guide for Unit Test Practice
  26. 用Python编程佩尔数列pell数列循环结构
  27. 【 python】 échafaudage fastapi: spécification du développement du projet d'interface arrière fastapi
  28. [Python] restful Specification Practice Based on fastapi
  29. Python代码阅读(第26篇):将列表映射成字典
  30. How to use Python to make a screen color extractor with Exe file
  31. Lecture du Code Python (article 26): cartographie des listes dans les dictionnaires
  32. Python代码阅读(第26篇):将列表映射成字典
  33. Python代碼閱讀(第26篇):將列錶映射成字典
  34. Lecture du Code Python (article 26): cartographie des listes dans les dictionnaires
  35. 使用 Python 进行数据可视化之Seaborn
  36. Real time access to stock data, free—— Python crawler Sina stock actual combat
  37. Seaborn pour la visualisation des données en python
  38. 浅识XPath(熟练掌握XPath的语法)【python爬虫入门进阶】(03)
  39. Python中if else语句进行操作的时候哪里除了错,搞不懂
  40. Python题,我刚学,还不会
  41. Python題,我剛學,還不會
  42. Je viens d'apprendre, pas encore.
  43. 云计算开发:Python3-find()方法详解
  44. Real time access to stock data, free—— Python crawler Sina stock actual combat
  45. Développement de l'informatique en nuage: détails de la méthode Python 3 - find ()
  46. 如何使用Python进行超参调参和调优
  47. 如何使用Python進行超參調參和調優
  48. Comment utiliser Python pour le réglage hyperparamétrique
  49. Première connaissance du module urllib Python
  50. Python入门:看了这篇文章如果1个小时没法入门Python,那么还是换个语言吧!!
  51. Python(day1):Python 3 教程
  52. Python(day3):Python3 安装与环境搭建
  53. Python (day3): installation et environnement Python 3
  54. Python (day1): tutoriel Python 3
  55. Démarrer avec Python: Si vous ne pouvez pas commencer avec Python en une heure, changez de langue!!
  56. Pandas:DataFrame对象的基础操作
  57. 关于#python#的问题:月球上物体的体重在地球上的16.5%,编写程序输出未来10年在地球上和月球上的体重状况
  58. 反转一个3位整数(Python 实现)
  59. Questions sur # Python #: les objets lunaires pèsent 16,5% de la masse de la terre et un programme est programmé pour produire la masse de la terre et de la lune au cours des 10 prochaines années
  60. Use of Python pandas!!!!! Explain in detail