halevt-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Halevt-dev] [RFC] dbus/python branch


From: Raphaël
Subject: Re: [Halevt-dev] [RFC] dbus/python branch
Date: Thu, 26 Aug 2010 00:46:14 +0200
User-agent: Mutt/1.5.20 (2009-06-14)

Hi Patrice,

thank you for testing
I've added some doc (I realize now I may have been
wrong about DTD search path hint I commited) and added dbus api urls

Other problems are fixed but still about path ones I have to avoid the
DTD hardcoded in the config.xml :
>From xsl-includes to, AFAIK, lxml dtd lookups limits... it may quicky
become painful ($home:/usr/share:.)

there are also already 2 workarounds to the dbus xml input (the dbus dictionary,
and a hack around the pyxslt serialization)

at least the configuration handling mechanism needs a better design I'm
not sure about :)
currently I use the code as a POC of a simple udisks multi-auto-mounter.

best regards

Raphaël

On Sat, Aug 14, 2010 at 03:24:39PM +0200, Patrice Dumas wrote:
> Hello,
> 
> On Sat, Jun 19, 2010 at 11:55:59AM +0200, Raphaël wrote:
> > Hi,
> > - it entierly relies on dbus and dbus introspection :
> > A daemon (like udisks or upower) is registrered as a dbus service thus
> > provides Objects, Properties, Signals and Methods but also a listing of what
> > values it returns, what signal name we can attach to, ... that's
> > introspection.
> > (these are also documented in the XML service description file usually found
> > in /usr/share/dbus-1/*)
> 
> It looks like a relevant idea.
> 
> > Any thoughts, advices, criticisims, improvements, alternatives,
> > ... welcomed
> 
> The source files are missing a comment at the beginning stating 
> what is the purpose of the file.
> 
> I tried to start 'python dbusevt.py', and I got a pretty cryptic
> error message:
> 
>  ERROR:root:: no such file
> 
> I guess that's because it requires a config file, still it is 
> rather cryptic.
> 
> 
> Then I have tried
> 
> python dbusevt.py  -v debug -n -c examples/sample.conf.xml
> 
> and I get
> 
> DEBUG:root:loading config: examples/sample.conf.xml
> ERROR:root:/xsl/idref2ref.xsl: xslt doesn't exist
> 
> I found out that I have to call like
> 
> python ./dbusevt.py  -v debug -n -c examples/sample.conf.xml
> 
> I then tried with the attached file to see what information dbusevt 
> can list but I get tracebacks when inserting a device (it works
> when removing a device, with a call to a command without udisk
> properties):
> 
> python ./dbusevt.py  -v debug -c test.xml 
> ....
> INFO:root:DeviceAdded happened: got /org/freedesktop/UDisks/devices/sda2
> DEBUG:root:matching props in Config :
> <Element Event at 88df8ec>
> DEBUG:root:running processObject() with /org/freedesktop/UDisks/devices/sda2
> DEBUG:config:xpath(/Config/address@hidden = "added"]//address@hidden = 
> "DeviceAdded"]/Do)
> ERROR:dbus.connection:Exception in handler for D-Bus signal:
> Traceback (most recent call last):
>   File "/usr/lib/pymodules/python2.6/dbus/connection.py", line 214, in 
> maybe_handle_message
>     self._handler(*args, **kwargs)
>   File "<string>", line 2, in dbus_callback_DeviceAdded
>   File "./dbusevt.py", line 114, in processEvent
>     processObject(config, dbusobjects.get(ret), event)
>   File "./dbusevt.py", line 129, in processObject
>     event)
>   File "./dbusevt.py", line 67, in doit
>     torun = command_substitute(torun, dbusobject)
>   File "./dbusevt.py", line 140, in command_substitute
>     torun)
>   File "/usr/lib/python2.6/re.py", line 151, in sub
>     return _compile(pattern, 0).sub(repl, string, count)
>   File "/usr/lib/python2.6/re.py", line 273, in _subx
>     template = _compile_repl(template, pattern)
>   File "/usr/lib/python2.6/re.py", line 258, in _compile_repl
>     p = sre_parse.parse_template(repl, pattern)
>   File "/usr/lib/python2.6/sre_parse.py", line 700, in parse_template
>     s = Tokenizer(source)
>   File "/usr/lib/python2.6/sre_parse.py", line 187, in __init__
>     self.__next()
>   File "/usr/lib/python2.6/sre_parse.py", line 189, in __next
>     if self.index >= len(self.string):
> TypeError: object of type 'dbus.Boolean' has no len()
> 
> 
> 
> I also think that you should put the link to properties in the
> README, or explain how to discover these.
> 
> http://hal.freedesktop.org/docs/udisks/Device.html#Device.properties
> 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]