Hi all,

 

Sorry to disturb you again.

We want to use libzypp-bindings to get package list for special pattern, just as the function of ‘zypper pattern-info’.

But fails with some unexpected error.

 

Error 1:

Code:

         pool            = myZypp.pool() # pool of packages

group = "tablet"

pattern = pool.byIdentBegin (zypp.ResKind.pattern, group)# this would trigger the following error:

File "/usr/lib/python2.6/site-packages/zypp.py", line 3084, in byIdentBegin

    def byIdentBegin(self, *args): return _zypp.ResPool_byIdentBegin(self, *args)

NotImplementedError: Wrong number of arguments for overloaded function 'ResPool_byIdentBegin'.

 Possible C/C++ prototypes are:

    byIdentBegin(zypp::ResPool const *,zypp::ResPool::ByIdent const &)

    byIdentBegin(zypp::ResPool const *,zypp::ResKind,zypp::IdString)

    byIdentBegin(zypp::ResPool const *,zypp::ResKind,C_Str const &)

    byIdentBegin(zypp::ResPool const *,zypp::PoolItem const &)

    byIdentBegin(zypp::ResPool const *,zypp::sat::Solvable)

    byIdentBegin(zypp::ResPool const *,zypp::IdString)

In fact, my arguments are correct.

Error 2:

Code

for item in pool: # iterate over the pool

        msg = ""

        if zypp.isKindPattern(item) and str(item.name()) == "tablet":

                msg += str(item.name())

                pattern= zypp.asKindPattern(item)

                contents = pattern.contents(); # This code will trigger the following error:

swig/python detected a memory leak of type 'zypp::sat::SolvableSet *', no destructor found.

 

Attached are two c++ code to implement this function, and one python code.

 

Thanks in advance

Qiang