How do I tear down soffice cleanly?

Stephan Bergmann sbergman at redhat.com
Thu Feb 26 04:54:38 PST 2015


On 02/26/2015 01:46 PM, Michael Stahl wrote:
> On 26.02.2015 12:09, Stephan Bergmann wrote:
>> According to Miklos: "afaik the usual way to check if a python object
>> has a method "foo" is 'if "foo" in dir(obj):', hope that also works with
>> pyuno objects."
>
> guess that would work, unless a service implements 2 different
> interfaces that overload the same method name (i hope we don't have any
> such overloading...).

Ah, right.  So better to go via queryInterface as below (or add a 
convenient wrapper around it into uno.py say).

> it's also possible to manually call queryInterface though probably that
> is not idiomatic in Python:
>
>>>> import uno
>>>> from com.sun.star.uno.TypeClass import INTERFACE
>>>> x = uno.getComponentContext()
>>>> y = x.queryInterface(uno.Type("com.sun.star.uno.XComponentContext",
> INTERFACE))
>>>> y
> pyuno object (com.sun.star.uno.XComponentContext)0x7f0941697060{,
> supportedInterfaces={com.sun.star.uno.XComponentContext,com.sun.star.container.XNameContainer,com.sun.star.lang.XTypeProvider,com.sun.star.uno.XWeak,com.sun.star.lang.XComponent}}
>>>> z = x.queryInterface(uno.Type("com.sun.star.util.XCloseable",
> INTERFACE))
>>>> z is None
> True


More information about the LibreOffice mailing list