summaryrefslogtreecommitdiffstats
path: root/python/dbus_bindings.pyx.in
diff options
context:
space:
mode:
authorSeth Nickell <seth@gnome.org>2004-07-12 06:29:00 +0000
committerSeth Nickell <seth@gnome.org>2004-07-12 06:29:00 +0000
commit5afe4265eaa30afa7d93eb1550839c56360abeda (patch)
treedde4b6230f724bcc3d7289772f701435226adeec /python/dbus_bindings.pyx.in
parentdd4ff748c19ed30d832ae0c8f842cc73cb277639 (diff)
2004-07-12 Seth Nickell <seth@gnome.org>
* python/dbus.py: Add message argument to the default object_method_handler function. * python/dbus_bindings.pyx.in: Automatically return NIL when passed an empty list (we can't pass back a list since lists are typed and we don't have any idea what type the the client intended the list to be... :-( )
Diffstat (limited to 'python/dbus_bindings.pyx.in')
-rw-r--r--python/dbus_bindings.pyx.in28
1 files changed, 16 insertions, 12 deletions
diff --git a/python/dbus_bindings.pyx.in b/python/dbus_bindings.pyx.in
index de90603b..6703f7d3 100644
--- a/python/dbus_bindings.pyx.in
+++ b/python/dbus_bindings.pyx.in
@@ -614,19 +614,23 @@ cdef class MessageIter:
elif value_type == dict:
retval = self.append_dict(value)
elif value_type == list:
- if (len(value) == 0):
- raise TypeError, "Empty lists are currently not supported, return None instead"
- list_type = type(value[0])
- if list_type == str:
- self.append_string_array(value)
- elif list_type == int:
- self.append_int32_array(value)
- elif list_type == float:
- self.append_double_array(value)
- elif isinstance(value[0], ObjectPath):
- self.append_object_path_array(value)
+ if len(value) == 0:
+ # Empty lists are currently not supported, returning None instead
+ retval = self.append(None)
else:
- raise TypeError, "List of unknown type '%s'" % (list_type)
+ list_type = type(value[0])
+ if list_type == str:
+ self.append_string_array(value)
+ elif list_type == int:
+ self.append_int32_array(value)
+ elif list_type == float:
+ self.append_double_array(value)
+ elif isinstance(value[0], ObjectPath):
+ self.append_object_path_array(value)
+ else:
+ raise TypeError, "List of unknown type '%s'" % (list_type)
+ elif value_type == None.__class__:
+ retval = self.append_nil()
elif isinstance(value, ObjectPath):
retval = self.append_object_path(value)
else: