[Pyrex] Pyrex and None types

John (J5) Palmieri johnp at redhat.com
Tue Apr 19 00:38:04 CEST 2005


Ignore this. It was my fault.  The code works fine.

On Mon, 2005-04-18 at 17:56 -0400, John (J5) Palmieri wrote:
> I am having a problem with this code:
> 
> cdef class Message:
>     cdef DBusMessage *msg
> 
>     def __init__(self, message_type=MESSAGE_TYPE_INVALID,
>                  service=None, path=None, dbus_interface=None, method=None,
>                  Message method_call=None,
>                  name=None,
>                  Message reply_to=None, error_name=None, error_message=None,
>                  _create=1):
> 
>         cdef char *cservice
>         cdef char *ciface
>         cdef DBusMessage *cmsg
> 
>         ciface = NULL
>         if (dbus_interface != None):
>             ciface = interface
> 
>         cservice = NULL
>         if service != None:
>             cservice = service
>             
>         if not _create:
>             return
> 
>         if message_type == MESSAGE_TYPE_METHOD_CALL:
>             self.msg = dbus_message_new_method_call(cservice, path, ciface, method)
>         elif message_type == MESSAGE_TYPE_METHOD_RETURN:
>             cmsg = method_call._get_msg()
>             self.msg = dbus_message_new_method_return(cmsg)
>         elif message_type == MESSAGE_TYPE_SIGNAL:
>             self.msg = dbus_message_new_signal(path, ciface, name)
>         elif message_type == MESSAGE_TYPE_ERROR:
>             cmsg = reply_to._get_msg()
>             self.msg = dbus_message_new_error(cmsg, error_name, error_message)
>             
> 
> It compiles file but I get this error message at runtime:
> 
> 
> Traceback (most recent call last):
>   File "test.py", line 6, in ?
>     obj.ListNames()
>   File "/home/boston/johnp/Devel/dbus/python/dbus.py", line 258, in
> __call__
>     message = dbus_bindings.MethodCall(self._object_path,
> self._interface, self._method_name)
>   File "dbus_bindings.pyx", line 1365, in
> dbus_bindings.MethodCall.__init__
>     def has_sender(self, service):
>   File "dbus_bindings.pyx", line 1187, in dbus_bindings.Message.__init__
>     Message method_call,
> TypeError: expected string or Unicode object, NoneType found
> 
> Any ideas how to fix this?  It works fine if I set the dbus_interface to
> some string.  It only fails if it equals None.  Thanks. 
> 
-- 
John (J5) Palmieri
Associate Software Engineer
Desktop Group
Red Hat, Inc.
Blog: http://martianrock.com




More information about the Pyrex mailing list