On Tue, 2007-05-29 at 12:43 +0100, Richard W.M. Jones wrote:
>>> libvirt.getVersion ("Xen");
(2002, 3000001)
>>> libvirt.getVersion (None);
2002
I don't think it's a big deal, but I was suggesting these two should be
equivalent - i.e. None == "Xen". That's why the code I posted explicitly
checked for a zero length arg list - if you used "|z" with
PyArg_ParseTuple(), you wouldn't be able[1] to distinguish between no
args and None.
Either that, or just don't allow None as an argument at all - i.e. pass
"|s" to PyArg_ParseTuple().
Cheers,
Mark.
[1] - barring doing something ugly like:
char *type = (char *) -1;
parse(args, "|z", &type);
if (type == (char *) -1)
return libVer;
else if (type == NULL)
return getVer("xen");
else
return getVer(type);