Today if you run the attached test script, you will get this output.
[EMAIL PROTECTED] yum]$ sudo python ~/yum-repr-test.py
[<yum.packages.YumInstalledPackage object at 0xb73c56c>]
[<yum.sqlitesack.YumAvailablePackageSqlite object at 0xb73dbcc>]
after adding the attached patch you will get this output.
[EMAIL PROTECTED] yum]$ cp ~/yum-repr-test.py .
[EMAIL PROTECTED] yum]$ sudo python ./yum-repr-test.py
[<Installed Package : yumex-2.0.3-2.fc8.noarch >]
[<Available Package : yumex-2.0.3-2.fc8.noarch (updates) >]
much more informative, very useful wen debugging yum and running in the
interactive python console.
Anybody have any objections to adding this patch.
Tim
>From 724690d2e6adb88dc8c7240c35588a1607c0a85b Mon Sep 17 00:00:00 2001
From: Tim Lauridsen <[EMAIL PROTECTED]>
Date: Sun, 3 Feb 2008 14:11:23 +0100
Subject: [PATCH] * make package object show some useful info when printed.
* make print str(po) look the same for installed and available packages.
---
yum/packages.py | 7 +++++--
yum/sqlitesack.py | 3 +++
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/yum/packages.py b/yum/packages.py
index 3c8e712..18ccbed 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -706,10 +706,10 @@ class YumHeaderPackage(YumAvailablePackage):
def __str__(self):
if self.epoch == '0':
- val = '%s - %s-%s.%s' % (self.name, self.version, self.release,
+ val = '%s-%s-%s.%s' % (self.name, self.version, self.release,
self.arch)
else:
- val = '%s - %s:%s-%s.%s' % (self.name, self.epoch, self.version,
+ val = '%s:%s-%s-%s.%s' % (self.epoch,self.name, self.version,
self.release, self.arch)
return val
@@ -822,6 +822,9 @@ class YumInstalledPackage(YumHeaderPackage):
fakerepo = _installed_repo
YumHeaderPackage.__init__(self, fakerepo, hdr)
+ def __repr__(self):
+ return "<Installed Package : %s >" % (str(self))
+
def verify(self, patterns=[]):
"""verify that the installed files match the packaged checksum
optionally verify they match only if they are in the 'pattern' list
diff --git a/yum/sqlitesack.py b/yum/sqlitesack.py
index 0c53da9..a4ee7fd 100644
--- a/yum/sqlitesack.py
+++ b/yum/sqlitesack.py
@@ -68,6 +68,9 @@ class YumAvailablePackageSqlite(YumAvailablePackage, PackageObject, RpmBase):
self._hash = None
files = property(fget=lambda self: self._loadFiles())
+
+ def __repr__(self):
+ return "<Available Package : %s (%s) >" % (str(self),self.repo.id)
def _read_db_obj(self, db_obj, item=None):
"""read the db obj. If asked for a specific item, return it.
--
1.5.3.8
import yum
yb = yum.YumBase()
yb.doConfigSetup()
ipo = yb.rpmdb.returnNewestByName(name='yumex')
apo = yb.pkgSack.returnNewestByName(name='yumex')
print ipo
print apo
_______________________________________________
Yum-devel mailing list
[email protected]
https://lists.dulug.duke.edu/mailman/listinfo/yum-devel