diff options
author | Guannan Ren <gren@redhat.com> | 2013-03-26 12:34:49 +0800 |
---|---|---|
committer | Guannan Ren <gren@redhat.com> | 2013-03-26 12:34:49 +0800 |
commit | 109e7e30b2697a18436bf4c9556302aaeb1e9777 (patch) | |
tree | 70933a0c80ea2c35ce0ff088c70787a0cb41548d | |
parent | 36975201ffb362dcf04141b5ee5d3ded9a0f56e4 (diff) | |
download | libvirt-python-v6-109e7e30b2697a18436bf4c9556302aaeb1e9777.tar.gz libvirt-python-v6-109e7e30b2697a18436bf4c9556302aaeb1e9777.tar.xz libvirt-python-v6-109e7e30b2697a18436bf4c9556302aaeb1e9777.zip |
python: set default value to optional argumentsv1.0.4-rc2v1.0.4
When prefixing with string (optional) or optional in the description
of arguments to libvirt C APIs, in python, these arguments will be
set as optional arugments, for example:
* virDomainSaveFlags:
* @domain: a domain object
* @to: path for the output file
* @dxml: (optional) XML config for adjusting guest xml used on restore
* @flags: bitwise-OR of virDomainSaveRestoreFlags
the corresponding python APIs is
restoreFlags(self, frm, dxml=None, flags=0)
The following python APIs are changed to:
blockCommit(self, disk, base, top, bandwidth=0, flags=0)
blockPull(self, disk, bandwidth=0, flags=0)
blockRebase(self, disk, base, bandwidth=0, flags=0)
migrate(self, dconn, flags=0, dname=None, uri=None, bandwidth=0)
migrate2(self, dconn, dxml=None, flags=0, dname=None, uri=None, bandwidth=0)
migrateToURI(self, duri, flags=0, dname=None, bandwidth=0)
migrateToURI2(self, dconnuri=None, miguri=None, dxml=None, flags=0, \
dname=None, bandwidth=0)
saveFlags(self, to, dxml=None, flags=0)
migrate(self, domain, flags=0, dname=None, uri=None, bandwidth=0)
migrate2(self, domain, dxml=None, flags=0, dname=None, uri=None, bandwidth=0)
restoreFlags(self, frm, dxml=None, flags=0)
-rwxr-xr-x | generator.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/generator.py b/generator.py index 0237374..8c380bb 100755 --- a/generator.py +++ b/generator.py @@ -1005,6 +1005,8 @@ functions_int_default_test = "%s == -1" def is_integral_type (name): return not re.search ("^(unsigned)? ?(int|long)$", name) is None +def is_optional_arg(info): + return re.search("^\(?\optional\)?", info) is not None # Functions returning lists which need special rules to check for errors # and raise exceptions. functions_list_exception_test = { @@ -1332,6 +1334,11 @@ def buildWrappers(module): if n != 0: classes.write(", ") classes.write("%s" % arg[0]) + if arg[0] == "flags" or is_optional_arg(arg[2]): + if is_integral_type(arg[1]): + classes.write("=0") + else: + classes.write("=None") n = n + 1 classes.write("):\n") writeDoc(module, name, args, ' ', classes) @@ -1488,9 +1495,12 @@ def buildWrappers(module): for arg in args: if n != index: classes.write(", %s" % arg[0]) + if arg[0] == "flags" or is_optional_arg(arg[2]): + if is_integral_type(arg[1]): + classes.write("=0") + else: + classes.write("=None") n = n + 1 - if arg[0] == "flags": - classes.write("=0") classes.write("):\n") writeDoc(module, name, args, ' ', classes) n = 0 |