summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel P. Berrangé <berrange@redhat.com>2022-03-24 12:23:46 +0000
committerDaniel P. Berrangé <berrange@redhat.com>2022-04-21 12:32:51 +0100
commitf4c43ef58171c5efad9001c7bc643c06f38f0edc (patch)
tree4406914400e92219cd103a41ac96d4e3c2bd8d7b
parentfdd2034c1d7a9090706d59fd6c27a6d7872ad01b (diff)
downloadlibvirt-python-f4c43ef58171c5efad9001c7bc643c06f38f0edc.tar.gz
generator: use single dict for tracking all functions
A single invokation of the generator only handles processing of one libvirt API module, so there is no need to use separate dicts for tracking functions. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
-rwxr-xr-xgenerator.py26
1 files changed, 12 insertions, 14 deletions
diff --git a/generator.py b/generator.py
index 6bc5d56..e88e7a0 100755
--- a/generator.py
+++ b/generator.py
@@ -16,8 +16,6 @@ EnumValue = Union[str, int]
EnumType = Dict[str, EnumValue]
functions = {} # type: Dict[str, FunctionType]
-lxc_functions = {} # type: Dict[str, FunctionType]
-qemu_functions = {} # type: Dict[str, FunctionType]
enums = defaultdict(dict) # type: Dict[str, EnumType] # { enumType: { enumConstant: enumValue } }
lxc_enums = defaultdict(dict) # type: Dict[str, EnumType] # { enumType: { enumConstant: enumValue } }
qemu_enums = defaultdict(dict) # type: Dict[str, EnumType] # { enumType: { enumConstant: enumValue } }
@@ -180,15 +178,15 @@ def function(name: str, desc: str, ret: ArgumentType, args: List[ArgumentType],
def qemu_function(name: str, desc: str, ret: ArgumentType, args: List[ArgumentType], file: str, module: str, cond: str) -> None:
- if onlyOverrides and name not in qemu_functions:
+ if onlyOverrides and name not in functions:
return
- qemu_functions[name] = (desc, ret, args, file, module, cond)
+ functions[name] = (desc, ret, args, file, module, cond)
def lxc_function(name: str, desc: str, ret: ArgumentType, args: List[ArgumentType], file: str, module: str, cond: str) -> None:
- if onlyOverrides and name not in lxc_functions:
+ if onlyOverrides and name not in functions:
return
- lxc_functions[name] = (desc, ret, args, file, module, cond)
+ functions[name] = (desc, ret, args, file, module, cond)
def enum(type: str, name: str, value: EnumValue) -> None:
@@ -652,10 +650,10 @@ def print_function_wrapper(module: str, name: str, output: IO[str], export: IO[s
(desc, ret, args, file, mod, cond) = functions[name]
skip_function2, skip_impl2 = skip_function, skip_impl
elif module == "libvirt-lxc":
- (desc, ret, args, file, mod, cond) = lxc_functions[name]
+ (desc, ret, args, file, mod, cond) = functions[name]
skip_function2, skip_impl2 = lxc_skip_function, lxc_skip_impl
elif module == "libvirt-qemu":
- (desc, ret, args, file, mod, cond) = qemu_functions[name]
+ (desc, ret, args, file, mod, cond) = functions[name]
skip_function2, skip_impl2 = qemu_skip_function, qemu_skip_impl
else:
raise ValueError(module)
@@ -852,10 +850,10 @@ def buildStubs(module: str, api_xml: str) -> int:
funcs = functions
funcs_skipped = functions_skipped
elif module == "libvirt-lxc":
- funcs = lxc_functions
+ funcs = functions
funcs_skipped = lxc_functions_skipped
elif module == "libvirt-qemu":
- funcs = qemu_functions
+ funcs = functions
funcs_skipped = qemu_functions_skipped
try:
@@ -1286,9 +1284,9 @@ def writeDoc(module: str, name: str, args: List[ArgumentType], indent: str, outp
if module == "libvirt":
funcs = functions
elif module == "libvirt-lxc":
- funcs = lxc_functions
+ funcs = functions
elif module == "libvirt-qemu":
- funcs = qemu_functions
+ funcs = functions
if not funcs[name][0]:
return
val = funcs[name][0]
@@ -1786,7 +1784,7 @@ def qemuBuildWrappers(module: str) -> None:
#
# Generate functions directly, no classes
#
- for name, (desc, ret, args, file, mod, cond) in sorted(qemu_functions.items()):
+ for name, (desc, ret, args, file, mod, cond) in sorted(functions.items()):
func = nameFixup(name, 'None', '', '')
fd.write("def %s(" % func)
for n, (a_name, a_type, a_info) in enumerate(args):
@@ -1890,7 +1888,7 @@ def lxcBuildWrappers(module: str) -> None:
#
# Generate functions directly, no classes
#
- for name, (desc, ret, args, file, mod, cond) in sorted(lxc_functions.items()):
+ for name, (desc, ret, args, file, mod, cond) in sorted(functions.items()):
func = nameFixup(name, 'None', '', '')
fd.write("def %s(" % func)
for n, (a_name, a_type, a_info) in enumerate(args):