[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 05/11] qapi/gen: use './builtin' for the built-in module name
From: |
Markus Armbruster |
Subject: |
[PATCH 05/11] qapi/gen: use './builtin' for the built-in module name |
Date: |
Fri, 18 Dec 2020 21:54:01 +0100 |
From: John Snow <jsnow@redhat.com>
Use this in preference to 'None', which helps remove some edge cases in
the typing.
Signed-off-by: John Snow <jsnow@redhat.com>
Message-Id: <20201217015927.197287-6-jsnow@redhat.com>
---
scripts/qapi/gen.py | 28 ++++++++++++++--------------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/scripts/qapi/gen.py b/scripts/qapi/gen.py
index a6dc991b1d..476d0adac4 100644
--- a/scripts/qapi/gen.py
+++ b/scripts/qapi/gen.py
@@ -245,23 +245,23 @@ 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 _is_user_module(name: Optional[str]) -> bool:
- return bool(name and not name.startswith('./'))
+ def _is_user_module(name: str) -> bool:
+ return not name.startswith('./')
@staticmethod
- def _is_builtin_module(name: Optional[str]) -> bool:
- return not name
+ def _is_builtin_module(name: str) -> bool:
+ return name == './builtin'
- def _module_dirname(self, name: Optional[str]) -> str:
+ def _module_dirname(self, name: str) -> str:
if self._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 self._is_builtin_module(name) else self._prefix
if self._is_user_module(name):
basename = os.path.basename(name)
@@ -269,15 +269,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 name.startswith('./')
+ 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)
@@ -290,8 +290,8 @@ class QAPISchemaModularCVisitor(QAPISchemaVisitor):
self._main_module = name
self._add_module(name, blurb)
- def _add_system_module(self, name: Optional[str], blurb: str) -> None:
- self._add_module(name and './' + name, blurb)
+ def _add_system_module(self, name: str, blurb: str) -> None:
+ self._add_module('./' + name, blurb)
def write(self, output_dir: str, opt_builtins: bool = False) -> None:
for name in self._module:
@@ -310,7 +310,7 @@ class QAPISchemaModularCVisitor(QAPISchemaVisitor):
def visit_module(self, name: Optional[str]) -> None:
if name is None:
if self._builtin_blurb:
- self._add_system_module(None, self._builtin_blurb)
+ self._add_system_module('builtin', self._builtin_blurb)
self._begin_system_module(name)
else:
# The built-in module has not been created. No code may
--
2.26.2
- [PATCH 00/11] Drop support for QAPIGen without a file name, Markus Armbruster, 2020/12/18
- [PATCH 01/11] qapi/commands: assert arg_type is not None, Markus Armbruster, 2020/12/18
- [PATCH 04/11] qapi/gen: assert that _start_if is not None in _wrap_ifcond, Markus Armbruster, 2020/12/18
- [PATCH 03/11] qapi/main: handle theoretical None-return from re.match(), Markus Armbruster, 2020/12/18
- [PATCH 07/11] qapi/gen: Replace ._begin_system_module(), Markus Armbruster, 2020/12/18
- [PATCH 06/11] qapi/gen: write _genc/_genh access shims, Markus Armbruster, 2020/12/18
- [PATCH 11/11] qapi/gen: Drop support for QAPIGen without a file name, Markus Armbruster, 2020/12/18
- [PATCH 02/11] qapi/events: fix visit_event typing, Markus Armbruster, 2020/12/18
- [PATCH 08/11] qapi/gen: Expose a single module name space, Markus Armbruster, 2020/12/18
- [PATCH 09/11] qapi/gen: Support for switching to another module temporarily, Markus Armbruster, 2020/12/18
- [PATCH 05/11] qapi/gen: use './builtin' for the built-in module name,
Markus Armbruster <=
- [PATCH 10/11] qapi/commands: Simplify command registry generation, Markus Armbruster, 2020/12/18