qemu-devel
[Top][All Lists]
Advanced

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

[PATCH v3 05/17] qapi: pass QAPISchemaModule to visit_module instead of


From: John Snow
Subject: [PATCH v3 05/17] qapi: pass QAPISchemaModule to visit_module instead of str
Date: Tue, 19 Jan 2021 13:02:30 -0500

Modify visit_module to pass the module itself instead of just its
name. This allows for future patches to centralize some
module-interrogation behavior within the QAPISchemaModule class itself,
cutting down on duplication between gen.py and schema.py.

Signed-off-by: John Snow <jsnow@redhat.com>
---
 docs/sphinx/qapidoc.py         |  8 ++++----
 scripts/qapi/gen.py            | 16 ++++++++++------
 scripts/qapi/schema.py         |  4 ++--
 tests/qapi-schema/test-qapi.py |  4 ++--
 4 files changed, 18 insertions(+), 14 deletions(-)

diff --git a/docs/sphinx/qapidoc.py b/docs/sphinx/qapidoc.py
index e03abcbb959..f754f675d66 100644
--- a/docs/sphinx/qapidoc.py
+++ b/docs/sphinx/qapidoc.py
@@ -463,11 +463,11 @@ def __init__(self, env, qapidir):
         self._env = env
         self._qapidir = qapidir
 
-    def visit_module(self, name):
-        if name is not None:
-            qapifile = self._qapidir + '/' + name
+    def visit_module(self, module):
+        if module.name:
+            qapifile = self._qapidir + '/' + module.name
             self._env.note_dependency(os.path.abspath(qapifile))
-        super().visit_module(name)
+        super().visit_module(module)
 
 
 class QAPIDocDirective(Directive):
diff --git a/scripts/qapi/gen.py b/scripts/qapi/gen.py
index 3d81b90ab71..e73d3d61aac 100644
--- a/scripts/qapi/gen.py
+++ b/scripts/qapi/gen.py
@@ -31,7 +31,11 @@
     guardstart,
     mcgen,
 )
-from .schema import QAPISchemaObjectType, QAPISchemaVisitor
+from .schema import (
+    QAPISchemaModule,
+    QAPISchemaObjectType,
+    QAPISchemaVisitor,
+)
 from .source import QAPISourceInfo
 
 
@@ -304,19 +308,19 @@ def _begin_system_module(self, name: None) -> None:
     def _begin_user_module(self, name: str) -> None:
         pass
 
-    def visit_module(self, name: Optional[str]) -> None:
-        if name is None:
+    def visit_module(self, module: QAPISchemaModule) -> None:
+        if module.name is None:
             if self._builtin_blurb:
                 self._add_system_module(None, self._builtin_blurb)
-                self._begin_system_module(name)
+                self._begin_system_module(module.name)
             else:
                 # The built-in module has not been created.  No code may
                 # be generated.
                 self._genc = None
                 self._genh = None
         else:
-            self._add_user_module(name, self._user_blurb)
-            self._begin_user_module(name)
+            self._add_user_module(module.name, self._user_blurb)
+            self._begin_user_module(module.name)
 
     def visit_include(self, name: str, info: QAPISourceInfo) -> None:
         relname = os.path.relpath(self._module_filename(self._what, name),
diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py
index 720449feee4..69ba722c084 100644
--- a/scripts/qapi/schema.py
+++ b/scripts/qapi/schema.py
@@ -97,7 +97,7 @@ def visit_begin(self, schema):
     def visit_end(self):
         pass
 
-    def visit_module(self, name):
+    def visit_module(self, module):
         pass
 
     def visit_needed(self, entity):
@@ -145,7 +145,7 @@ def add_entity(self, ent):
         self._entity_list.append(ent)
 
     def visit(self, visitor):
-        visitor.visit_module(self.name)
+        visitor.visit_module(self)
         for entity in self._entity_list:
             if visitor.visit_needed(entity):
                 entity.visit(visitor)
diff --git a/tests/qapi-schema/test-qapi.py b/tests/qapi-schema/test-qapi.py
index e8db9d09d91..bec1ebff3db 100755
--- a/tests/qapi-schema/test-qapi.py
+++ b/tests/qapi-schema/test-qapi.py
@@ -24,8 +24,8 @@
 
 class QAPISchemaTestVisitor(QAPISchemaVisitor):
 
-    def visit_module(self, name):
-        print('module %s' % name)
+    def visit_module(self, module):
+        print('module %s' % module.name)
 
     def visit_include(self, name, info):
         print('include %s' % name)
-- 
2.26.2




reply via email to

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