Re: [zypp-devel] python: ResPool object is unsubscriptable
On Sun, Sep 7, 2008 at 10:13 PM, Jano Kupec
Nikolay Derkach wrote:
Hi,
I would be nice if ResPool objects would be subscriptable (dictionaries). For example it'd be very convenient to have an access to pool items like this:
Z = zypp.ZYppFactory_instance().getZYpp()
...
p = Z.pool() print p[package_name].isInstalled()
where package_name is a key name (pool item name).
But there can be multiple PoolItems with the same name (different versions, different kinds)... Such an interface could be provided, but it would still not point to a single PoolItem, but rather a set.
Yes, in general case it may be a list.
Right now the only way I could find to do this is:
for item in Z.pool(): if item.name() == pkg_name: print item.status().isInstalled()
which makes code a bit bloated.
Better use the byName or byIdent iterators, they use indices.
Hm, it seems that Z.pool().byKindIterator() is gone, so I have to use something like this: for item in range(Z.pool().byIdentBegin(zypp.KindOfPackage(), pkgname), Z.pool().byIdentEnd(zypp.KindOfPackage(), pkgname)): Another problem is that KindOfResolvable() (needed for KindOfPackage() and such) is also not available anymore, while it's still used in ResTraits.i -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org
participants (1)
-
Nikolay Derkach