On Tue, 02 Oct 2007 at 17:43:41 -0400, Benjamin M. Schwartz wrote: > I used these to send arbitrary bytes over the Tube, which only supports utf8.
This isn't actually true. If a D-Bus method is declared with signature 's' (string) it only supports unicode or UTF-8 str objects. If no signature is declared but you use a str argument, dbus-python will guess that you wanted signature 's' and the string has to be UTF-8. However, if your method is declared with signature 'ay' (byte array) you can pass arbitrary binary data. You probably want to put byte_arrays=True in the @method decorator, so the method will get its input as a dbus.ByteArray (a subclass of str) rather than as a dbus.Array of dbus.Bytes (subclasses of: a list of ints). If your data has some other internal structure, other D-Bus types may be more appropriate (e.g. you might want a list of floats, which in D-Bus terminology would be an array of double, signature 'ad'). Similar notes apply to signals. See http://dbus.freedesktop.org/doc/dbus-python/doc/tutorial.html for more information. _______________________________________________ Sugar mailing list Sugar@lists.laptop.org http://lists.laptop.org/listinfo/sugar