qapi/introspect.py: Type _gen_tree variants as Sequence[str]
Optional[List] is clunky; an empty sequence can more elegantly convey "no variants". By downgrading "List" to "Sequence", we can also accept tuples; this is useful for the empty tuple specifically, which we may use as a default parameter because it is immutable. Signed-off-by: John Snow <jsnow@redhat.com> Message-Id: <20210216021809.134886-18-jsnow@redhat.com> Reviewed-by: Markus Armbruster <armbru@redhat.com> [Doc string touched up] Reviewed-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
parent
cf26906c4a
commit
cea53c31b7
@ -249,13 +249,13 @@ const QLitObject %(c_name)s = %(c_string)s;
|
|||||||
return self._name(typ.name)
|
return self._name(typ.name)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _gen_features(features: List[QAPISchemaFeature]
|
def _gen_features(features: Sequence[QAPISchemaFeature]
|
||||||
) -> List[Annotated[str]]:
|
) -> List[Annotated[str]]:
|
||||||
return [Annotated(f.name, f.ifcond) for f in features]
|
return [Annotated(f.name, f.ifcond) for f in features]
|
||||||
|
|
||||||
def _gen_tree(self, name: str, mtype: str, obj: Dict[str, object],
|
def _gen_tree(self, name: str, mtype: str, obj: Dict[str, object],
|
||||||
ifcond: Sequence[str],
|
ifcond: Sequence[str],
|
||||||
features: Optional[List[QAPISchemaFeature]]) -> None:
|
features: Sequence[QAPISchemaFeature] = ()) -> None:
|
||||||
"""
|
"""
|
||||||
Build and append a SchemaInfo object to self._trees.
|
Build and append a SchemaInfo object to self._trees.
|
||||||
|
|
||||||
@ -302,7 +302,7 @@ const QLitObject %(c_name)s = %(c_string)s;
|
|||||||
|
|
||||||
def visit_builtin_type(self, name: str, info: Optional[QAPISourceInfo],
|
def visit_builtin_type(self, name: str, info: Optional[QAPISourceInfo],
|
||||||
json_type: str) -> None:
|
json_type: str) -> None:
|
||||||
self._gen_tree(name, 'builtin', {'json-type': json_type}, [], None)
|
self._gen_tree(name, 'builtin', {'json-type': json_type}, [])
|
||||||
|
|
||||||
def visit_enum_type(self, name: str, info: Optional[QAPISourceInfo],
|
def visit_enum_type(self, name: str, info: Optional[QAPISourceInfo],
|
||||||
ifcond: Sequence[str],
|
ifcond: Sequence[str],
|
||||||
@ -320,7 +320,7 @@ const QLitObject %(c_name)s = %(c_string)s;
|
|||||||
element_type: QAPISchemaType) -> None:
|
element_type: QAPISchemaType) -> None:
|
||||||
element = self._use_type(element_type)
|
element = self._use_type(element_type)
|
||||||
self._gen_tree('[' + element + ']', 'array', {'element-type': element},
|
self._gen_tree('[' + element + ']', 'array', {'element-type': element},
|
||||||
ifcond, None)
|
ifcond)
|
||||||
|
|
||||||
def visit_object_type_flat(self, name: str, info: Optional[QAPISourceInfo],
|
def visit_object_type_flat(self, name: str, info: Optional[QAPISourceInfo],
|
||||||
ifcond: Sequence[str],
|
ifcond: Sequence[str],
|
||||||
|
Loading…
Reference in New Issue
Block a user