qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v5 18/36] qapi: establish mypy type-checking baseline


From: John Snow
Subject: Re: [PATCH v5 18/36] qapi: establish mypy type-checking baseline
Date: Wed, 7 Oct 2020 11:33:37 -0400
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.11.0

On 10/7/20 5:25 AM, Markus Armbruster wrote:
John Snow <jsnow@redhat.com> writes:

Fix two very minor issues,

What are the two issues?  I'm asking because I can see only one.


Bitrot! The other one got fixed elsewhere and rebase didn't conflict, so I didn't update the commit message.

                            and then establish a mypy type-checking
baseline.

Any particular reason this can't go before PATCH 15 "qapi/common.py: add
type hint annotations".


Just the way the chips fell. common.py does not check until this very commit.

Adding a mypy config can be shuffled up earlier and earlier by determining which checks to ignore and adding them, but I'm not sure who that benefits.

Like pylint, this should be run from the folder above:

  > mypy --config-file=qapi/mypy.ini qapi/

This is designed and tested for mypy 0.770 or greater.

Signed-off-by: John Snow <jsnow@redhat.com>
Tested-by: Eduardo Habkost <ehabkost@redhat.com>
Reviewed-by: Cleber Rosa <crosa@redhat.com>
Tested-by: Cleber Rosa <crosa@redhat.com>
---
  scripts/qapi/mypy.ini  | 60 ++++++++++++++++++++++++++++++++++++++++++
  scripts/qapi/schema.py |  3 ++-
  2 files changed, 62 insertions(+), 1 deletion(-)
  create mode 100644 scripts/qapi/mypy.ini

diff --git a/scripts/qapi/mypy.ini b/scripts/qapi/mypy.ini
new file mode 100644
index 00000000000..00fac15dc6e
--- /dev/null
+++ b/scripts/qapi/mypy.ini
@@ -0,0 +1,60 @@
+[mypy]
+strict = True
+strict_optional = False
+disallow_untyped_calls = False
+python_version = 3.6
+
+[mypy-qapi.commands]
+disallow_untyped_defs = False
+disallow_incomplete_defs = False
+check_untyped_defs = False
+
+[mypy-qapi.error]
+disallow_untyped_defs = False
+disallow_incomplete_defs = False
+check_untyped_defs = False
+
+[mypy-qapi.events]
+disallow_untyped_defs = False
+disallow_incomplete_defs = False
+check_untyped_defs = False
+
+[mypy-qapi.expr]
+disallow_untyped_defs = False
+disallow_incomplete_defs = False
+check_untyped_defs = False
+
+[mypy-qapi.gen]
+disallow_untyped_defs = False
+disallow_incomplete_defs = False
+check_untyped_defs = False
+
+[mypy-qapi.introspect]
+disallow_untyped_defs = False
+disallow_incomplete_defs = False
+check_untyped_defs = False
+
+[mypy-qapi.parser]
+disallow_untyped_defs = False
+disallow_incomplete_defs = False
+check_untyped_defs = False
+
+[mypy-qapi.schema]
+disallow_untyped_defs = False
+disallow_incomplete_defs = False
+check_untyped_defs = False
+
+[mypy-qapi.source]
+disallow_untyped_defs = False
+disallow_incomplete_defs = False
+check_untyped_defs = False
+
+[mypy-qapi.types]
+disallow_untyped_defs = False
+disallow_incomplete_defs = False
+check_untyped_defs = False
+
+[mypy-qapi.visit]
+disallow_untyped_defs = False
+disallow_incomplete_defs = False
+check_untyped_defs = False
diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py
index 74c6b96d391..483b4b68dff 100644
--- a/scripts/qapi/schema.py
+++ b/scripts/qapi/schema.py
@@ -17,6 +17,7 @@
  from collections import OrderedDict
  import os
  import re
+from typing import Optional
from .common import POINTER_SUFFIX, c_name
  from .error import QAPIError, QAPISemError
@@ -25,7 +26,7 @@
class QAPISchemaEntity:
-    meta = None
+    meta: Optional[str] = None
def __init__(self, name, info, doc, ifcond=None, features=None):
          assert name is None or isinstance(name, str)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]