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 <js...@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