mirror of
https://gitlab.freedesktop.org/dbus/dbus.git
synced 2025-12-25 10:30:10 +01:00
2005-10-24 Robert McQueen <robot101@debian.org>
* python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
derive from unicode instead of str, and encode/decode UTF-8 when
marshalling/unmarshalling bus messages
* python/introspect_parser.py: encode introspection data as UTF-8
before passing the buffer into libxml2
* test/python/test-client.py: add unicode test strings
* test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
ignore generated python test files
This commit is contained in:
parent
396b9c9e70
commit
ef47e01f75
6 changed files with 30 additions and 9 deletions
14
ChangeLog
14
ChangeLog
|
|
@ -1,3 +1,17 @@
|
|||
2005-10-24 Robert McQueen <robot101@debian.org>
|
||||
|
||||
* python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
|
||||
derive from unicode instead of str, and encode/decode UTF-8 when
|
||||
marshalling/unmarshalling bus messages
|
||||
|
||||
* python/introspect_parser.py: encode introspection data as UTF-8
|
||||
before passing the buffer into libxml2
|
||||
|
||||
* test/python/test-client.py: add unicode test strings
|
||||
|
||||
* test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
|
||||
ignore generated python test files
|
||||
|
||||
2005-10-17 John (J5) Palmieri <johnp@redhat.com>
|
||||
|
||||
* glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
|
||||
|
|
|
|||
|
|
@ -123,9 +123,9 @@ class Double(float):
|
|||
def __init__(self, value):
|
||||
float.__init__(self, value)
|
||||
|
||||
class String(str):
|
||||
class String(unicode):
|
||||
def __init__(self, value):
|
||||
str.__init__(self, value)
|
||||
unicode.__init__(self, value)
|
||||
|
||||
class Array(list):
|
||||
def __init__(self, value, type=None, signature=None):
|
||||
|
|
@ -733,8 +733,9 @@ cdef class MessageIter:
|
|||
def get_string(self):
|
||||
cdef char *c_str
|
||||
dbus_message_iter_get_basic(self.iter, <char **>&c_str)
|
||||
ret = c_str.decode('utf8')
|
||||
|
||||
return c_str
|
||||
return ret
|
||||
|
||||
def get_object_path(self):
|
||||
object_path_string = self.get_string()
|
||||
|
|
@ -836,7 +837,7 @@ cdef class MessageIter:
|
|||
elif ptype == long:
|
||||
ret = TYPE_INT64
|
||||
ret = str(chr(ret))
|
||||
elif ptype == str:
|
||||
elif (ptype == str or ptype == unicode):
|
||||
ret = TYPE_STRING
|
||||
ret = str(chr(ret))
|
||||
elif ptype == float:
|
||||
|
|
@ -1042,7 +1043,7 @@ cdef class MessageIter:
|
|||
retval = self.append_int32(value)
|
||||
elif value_type == long:
|
||||
retval = self.append_int64(value)
|
||||
elif value_type == str:
|
||||
elif (value_type == str or value_type == unicode):
|
||||
retval = self.append_string(value)
|
||||
elif value_type == float:
|
||||
retval = self.append_double(value)
|
||||
|
|
@ -1146,8 +1147,9 @@ cdef class MessageIter:
|
|||
|
||||
def append_string(self, value):
|
||||
cdef char *c_value
|
||||
c_value = value
|
||||
return dbus_message_iter_append_basic(self.iter, TYPE_STRING, <char **>&c_value)
|
||||
tmp = value.encode('utf8')
|
||||
c_value = tmp
|
||||
return dbus_message_iter_append_basic(self.iter, TYPE_STRING, <char **>&c_value)
|
||||
|
||||
def append_object_path(self, value):
|
||||
cdef char *c_value
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ def process_introspection_data(data):
|
|||
XMLREADER_START_ELEMENT_NODE_TYPE = 1
|
||||
XMLREADER_END_ELEMENT_NODE_TYPE = 15
|
||||
|
||||
stream = cStringIO.StringIO(data)
|
||||
stream = cStringIO.StringIO(data.encode('utf-8'))
|
||||
input_source = libxml2.inputBuffer(stream)
|
||||
reader = input_source.newTextReader("urn:introspect")
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
debug-echo.service
|
||||
debug-segfault.service
|
||||
debug-glib.service
|
||||
debug-python.service
|
||||
debug-segfault.service
|
||||
debug-shell-echo-fail.service
|
||||
debug-shell-echo-success.service
|
||||
|
|
|
|||
2
test/python/.cvsignore
Normal file
2
test/python/.cvsignore
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
Makefile
|
||||
Makefile.in
|
||||
|
|
@ -23,6 +23,8 @@ if not dbus_bindings.__file__.startswith(pydir):
|
|||
|
||||
test_types_vals = [1, 12323231, 3.14159265, 99999999.99,
|
||||
"dude", "123", "What is all the fuss about?", "gob@gob.com",
|
||||
u'\\u310c\\u310e\\u3114', u'\\u0413\\u0414\\u0415',
|
||||
u'\\u2200software \\u2203crack', u'\\xf4\\xe5\\xe8',
|
||||
[1,2,3], ["how", "are", "you"], [1.23,2.3], [1], ["Hello"],
|
||||
(1,2,3), (1,), (1,"2",3), ("2", "what"), ("you", 1.2),
|
||||
{1:"a", 2:"b"}, {"a":1, "b":2}, #{"a":(1,"B")},
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue