diff options
author | John Snow <jsnow@redhat.com> | 2021-02-01 14:37:39 -0500 |
---|---|---|
committer | Markus Armbruster <armbru@redhat.com> | 2021-02-08 14:15:58 +0100 |
commit | e2bbc4eaa7f0d8efb8f49705bae0fecd3356f417 (patch) | |
tree | fcddfbc99f5962bdc0f57ed5d9ba9c9681a62da5 /scripts | |
parent | 12893a8ea7163e871abae05b5a42cdce1ad45225 (diff) |
qapi: use './builtin' as the built-in module name
Use './builtin' as the built-in module name instead of
None. Clarify the typing that this is now always a string.
Signed-off-by: John Snow <jsnow@redhat.com>
Message-Id: <20210201193747.2169670-9-jsnow@redhat.com>
Reviewed-by: Markus Armbruster <armbru@redhat.com>
Signed-off-by: Markus Armbruster <armbru@redhat.com>
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/qapi/gen.py | 18 | ||||
-rw-r--r-- | scripts/qapi/schema.py | 20 |
2 files changed, 19 insertions, 19 deletions
diff --git a/scripts/qapi/gen.py b/scripts/qapi/gen.py index da9d4d2d37..9352d79c3a 100644 --- a/scripts/qapi/gen.py +++ b/scripts/qapi/gen.py @@ -246,16 +246,16 @@ class QAPISchemaModularCVisitor(QAPISchemaVisitor): self._pydoc = pydoc self._genc: Optional[QAPIGenC] = None self._genh: Optional[QAPIGenH] = None - self._module: Dict[Optional[str], Tuple[QAPIGenC, QAPIGenH]] = {} + self._module: Dict[str, Tuple[QAPIGenC, QAPIGenH]] = {} self._main_module: Optional[str] = None @staticmethod - def _module_dirname(name: Optional[str]) -> str: + def _module_dirname(name: str) -> str: if QAPISchemaModule.is_user_module(name): return os.path.dirname(name) return '' - def _module_basename(self, what: str, name: Optional[str]) -> str: + def _module_basename(self, what: str, name: str) -> str: ret = '' if QAPISchemaModule.is_builtin_module(name) else self._prefix if QAPISchemaModule.is_user_module(name): basename = os.path.basename(name) @@ -263,15 +263,15 @@ class QAPISchemaModularCVisitor(QAPISchemaVisitor): if name != self._main_module: ret += '-' + os.path.splitext(basename)[0] else: - name = name[2:] if name else 'builtin' - ret += re.sub(r'-', '-' + name + '-', what) + assert QAPISchemaModule.is_system_module(name) + ret += re.sub(r'-', '-' + name[2:] + '-', what) return ret - def _module_filename(self, what: str, name: Optional[str]) -> str: + def _module_filename(self, what: str, name: str) -> str: return os.path.join(self._module_dirname(name), self._module_basename(what, name)) - def _add_module(self, name: Optional[str], blurb: str) -> None: + def _add_module(self, name: str, blurb: str) -> None: basename = self._module_filename(self._what, name) genc = QAPIGenC(basename + '.c', blurb, self._pydoc) genh = QAPIGenH(basename + '.h', blurb, self._pydoc) @@ -284,7 +284,7 @@ class QAPISchemaModularCVisitor(QAPISchemaVisitor): self._main_module = name self._add_module(name, blurb) - def _add_system_module(self, name: Optional[str], blurb: str) -> None: + def _add_system_module(self, name: str, blurb: str) -> None: assert QAPISchemaModule.is_system_module(name) self._add_module(name, blurb) @@ -302,7 +302,7 @@ class QAPISchemaModularCVisitor(QAPISchemaVisitor): def _begin_user_module(self, name: str) -> None: pass - def visit_module(self, name: Optional[str]) -> None: + def visit_module(self, name: str) -> None: if QAPISchemaModule.is_builtin_module(name): if self._builtin_blurb: self._add_system_module(name, self._builtin_blurb) diff --git a/scripts/qapi/schema.py b/scripts/qapi/schema.py index e80d9320ed..14cf9da784 100644 --- a/scripts/qapi/schema.py +++ b/scripts/qapi/schema.py @@ -68,7 +68,8 @@ class QAPISchemaEntity: def _set_module(self, schema, info): assert self._checked - self._module = schema.module_by_fname(info and info.fname) + fname = info.fname if info else './builtin' + self._module = schema.module_by_fname(fname) self._module.add_entity(self) def set_module(self, schema): @@ -142,16 +143,16 @@ class QAPISchemaModule: self._entity_list = [] @staticmethod - def is_system_module(name: Optional[str]) -> bool: + def is_system_module(name: str) -> bool: """ System modules are internally defined modules. Their names start with the "./" prefix. """ - return name is None or name.startswith('./') + return name.startswith('./') @classmethod - def is_user_module(cls, name: Optional[str]) -> bool: + def is_user_module(cls, name: str) -> bool: """ User modules are those defined by the user in qapi JSON files. @@ -160,13 +161,13 @@ class QAPISchemaModule: return not cls.is_system_module(name) @staticmethod - def is_builtin_module(name: Optional[str]) -> bool: + def is_builtin_module(name: str) -> bool: """ The built-in module is a single System module for the built-in types. - It is presently always the value 'None'. + It is always "./builtin". """ - return name is None + return name == './builtin' def add_entity(self, ent): self._entity_list.append(ent) @@ -852,7 +853,7 @@ class QAPISchema: self._entity_dict = {} self._module_dict = OrderedDict() self._schema_dir = os.path.dirname(fname) - self._make_module(None) # built-ins + self._make_module('./builtin') self._make_module(fname) self._predefining = True self._def_predefineds() @@ -897,7 +898,7 @@ class QAPISchema: info, "%s uses unknown type '%s'" % (what, name)) return typ - def _module_name(self, fname): + def _module_name(self, fname: str) -> str: if QAPISchemaModule.is_system_module(fname): return fname return os.path.relpath(fname, self._schema_dir) @@ -910,7 +911,6 @@ class QAPISchema: def module_by_fname(self, fname): name = self._module_name(fname) - assert name in self._module_dict return self._module_dict[name] def _def_include(self, expr, info, doc): |