seth vidal wrote:
On Thu, 2007-10-04 at 13:23 +0200, Tim Lauridsen wrote:
Panu Matilainen wrote:
On Thu, 4 Oct 2007, Tim Lauridsen wrote:
Panu Matilainen wrote:
The problem with installed() is just that it's the wrong term for this - make it exists() and it'll make sense for all the package sack types. Whether a package is installed or not is just a question whether it exists in rpmdb or not, if you want to keep API compat just make rpmdb.installed() a wrapper for exists().
Sound like a good idea, it still keeps the api simple.

Somewhat related, IMO the installed() method belongs to the package, not sack object. So something like

for pkg in installable:
if self.rpmdb.installed(po=pkg):
# do stuff

would become

for pkg in installable:
if pkg.installed():
# do stuff

..but that's another story, dunno how feasible it'd be within yum currently (sorry I haven't been paying that much attention lately)
Sound like a great idea, but can be tricky to implement.
a YumInstalledPackage know it is installed, but a YumAvailablePackage dont know if it is installed, I know it is available in a repo, but it dont know if it is installed on the system.
Yup, the package object would have to know about rpmdb then which is probably not that clean. A simple solution would be to move the installed() method to a higher level object that knows about rpmdb, such as YumBase. Basically

class YumBase:
...
def installed(self, po):
return self.rpmdb.exists(po)

and the above example would become

for pkg in installable:
if self.installed(po):
# ... do stuff

Sound like a good idea.


-1

We don't need to pollute the top level name space for this. If installed
is only a mode of something in the rpmdb then why are we moving it
outside of the rpmsack?
I see you point, and i agree :)
When Florian proposed this whole thing on irc originally I said: 1. it breaks the api if we move installed()
2. installed() makes no sense on PackageSackBase
3. if you want to check to see if a package exists inside whatever sack
object you have then we should wrap installed() in the rpmdb around
something like exists() in PackageSackBase and have exists take the same
args that installed() takes now.

Finally, unless there is a compelling reason we need to I do not want to
break the api right before we're finished with Fedora 8 and while folks
are still thinking about 3.2.X for rhel5/centos5 future releases.
+100

Tim
_______________________________________________
Yum-devel mailing list
[email protected]
https://lists.dulug.duke.edu/mailman/listinfo/yum-devel

Reply via email to