diff options
| author | Michael Vogt <michael.vogt@ubuntu.com> | 2005-08-04 08:32:54 +0000 |
|---|---|---|
| committer | Michael Vogt <michael.vogt@ubuntu.com> | 2005-08-04 08:32:54 +0000 |
| commit | 6a8d39c2770b9640a51d8d8d8fed10e65e5d2336 (patch) | |
| tree | b316611639f4707247a0a93174cb65567f0e1f72 | |
| parent | 778a4b5fa470c03a598f3cf6f81ab73c3855f488 (diff) | |
| download | python-apt-6a8d39c2770b9640a51d8d8d8fed10e65e5d2336.tar.gz | |
* making the interface cleaner (thanks to jamesh): added proerties in the Package class
| -rw-r--r-- | apt/cache.py | 24 | ||||
| -rw-r--r-- | apt/package.py | 123 | ||||
| -rw-r--r-- | apt/progress.py | 4 | ||||
| -rw-r--r-- | tests/apt-test.py | 2 |
4 files changed, 91 insertions, 62 deletions
diff --git a/apt/cache.py b/apt/cache.py index 7ec99c22..6f301b8a 100644 --- a/apt/cache.py +++ b/apt/cache.py @@ -25,10 +25,10 @@ from apt.progress import OpTextProgress from UserDict import UserDict class Cache(object): - """ Dictionary-like package cache - This class has all the packages that are available in it's - dictionary - """ + """ Dictionary-like package cache + This class has all the packages that are available in it's + dictionary + """ def __init__(self, progress=None): self._callbacks = {} @@ -221,18 +221,18 @@ if __name__ == "__main__": c.connect("cache_post_change", cache_post_changed) print c.has_key("aptitude") p = c["aptitude"] - print p.name() + print p.name print len(c) for pkg in c.keys(): - x= c[pkg].name() + x= c[pkg].name c.upgrade() changes = c.getChanges() print len(changes) for p in changes: - #print p.name() - x = p.name() + #print p.name + x = p.name print "Testing filtered cache (argument is old cache)" f = FilteredCache(c) @@ -242,8 +242,8 @@ if __name__ == "__main__": f.setFilter(MarkedChangesFilter()) print len(f) for pkg in f.keys(): - #print c[pkg].name() - x = f[pkg].name() + #print c[pkg].name + x = f[pkg].name print len(f) @@ -255,7 +255,7 @@ if __name__ == "__main__": f.setFilter(MarkedChangesFilter()) print len(f) for pkg in f.keys(): - #print c[pkg].name() - x = f[pkg].name() + #print c[pkg].name + x = f[pkg].name print len(f) diff --git a/apt/package.py b/apt/package.py index 2368327b..d02ccfd4 100644 --- a/apt/package.py +++ b/apt/package.py @@ -55,33 +55,38 @@ class Package(object): self._records.Lookup((file,index)) return True - # basic information - def name(self): + # basic information (implemented as properties) + def getName(self): """ return the name of the package """ return self._pkg.Name + name = property(getName, None, None, "Return the name of the pkg" ) - def id(self): + # id property + def getId(self): """ return a uniq ID for the pkg, can be used to store additional information about the pkg """ return self._pkg.ID - - def installedVersion(self): + id = property(getId, None, None, "Return a uniq ID of the pkg" ) + + def getInstalledVersion(self): """ return the installed version as string """ ver = self._pkg.CurrentVer if ver != None: return ver.VerStr else: return None + installedVersion = property(getInstalledVersion, None, None, "Return the installed Version as string") - def candidateVersion(self): + def getCandidateVersion(self): """ return the candidate version as string """ ver = self._depcache.GetCandidateVer(self._pkg) if ver != None: return ver.VerStr else: return None + candidateVersion = property(getCandidateVersion, None, None, "Return the candidate Version as string") - def sourcePackageName(self): + def getSourcePackageName(self): """ return the source package name as string """ self._lookupRecord() src = self._records.SourcePkg @@ -89,12 +94,14 @@ class Package(object): return src else: return self._pkg.Name + sourcePackageName = property(getSourcePackageName, None, None, "Return the source package name as string") - def section(self): + def getSection(self): """ return the section of the package""" return self._pkg.Section + section = property(getSection, None, None, "Return the section of the pkg") - def priority(self, UseCandidate=True): + def getPriority(self, UseCandidate=True): """ return the priority """ if UseCandidate: ver = self._depcache.GetCandidateVer(self._pkg) @@ -104,13 +111,15 @@ class Package(object): return ver.PriorityStr else: return None + priority = property(getPriority, None, None, "Return the priority of the candidate version") - def summary(self): + def getSummary(self): """ return the short description (one-line summary) """ self._lookupRecord() return self._records.ShortDesc + summary = property(getSummary, None, None, "Return the short description (one line summary") - def description(self, format=False): + def getDescription(self, format=True): """ return the long description """ self._lookupRecord() if format: @@ -124,31 +133,59 @@ class Package(object): return desc else: return self._records.LongDesc + description = property(getDescription, None, None, "return the formated description of the pkg") + # depcache state - def markedInstall(self): + def getMarkedInstall(self): return self._depcache.MarkedInstall(self._pkg) - def markedUpgrade(self): + markedInstall = property(getMarkedInstall, None, None, "Package is marked for install") + def getMarkedUpgrade(self): return self._depcache.MarkedUpgrade(self._pkg) - def markedDelete(self): + markedUpgrade = property(getMarkedUpgrade, None, None, "Package is marked for upgrade") + def getMarkedDelete(self): return self._depcache.MarkedDelete(self._pkg) - def markedKeep(self): + markedDelete = property(getMarkedDelete, None, None, "Package is marked for delete") + def getMarkedKeep(self): return self._depcache.MarkedKeep(self._pkg) - def markedDowngrade(self): + markedKeep = property(getMarkedKeep, None, None, "Package is marked for keep") + def getMarkedDowngrade(self): return self._depcache.MarkedDowngrade(self._pkg) - def markedReinstall(self): + markedDowngrade = property(getMarkedDowngrade, None, None, "Package is marked for downgrade") + def getMarkedReinstall(self): return self._depcache.MarkedReinstall(self._pkg) - def isInstalled(self): + markedReinstall = property(getMarkedReinstall, None, None, "Package is marked for reinstall") + def getIsInstalled(self): return (self._pkg.CurrentVer != None) - def isUpgradable(self): + isInstalled = property(getIsInstalled, None, None, "Package is installed") + def getIsUpgradable(self): return self.isInstalled() and self._depcache.IsUpgradable(self._pkg) + isUpgradable = property(getIsUpgradable, None, None, "Package is upgradable") + # size + def getPackageSize(self, UseCandidate=True): + if UseCandidate: + ver = self._depcache.GetCandidateVer(self._pkg) + else: + ver = self._pkg.GetCurrentVer + return ver.Size + packageSize = property(getPackageSize, None, None, "The size of the candidate deb package") + + def getInstalledSize(self, UseCandidate=True): + if UseCandidate: + ver = self._depcache.GetCandidateVer(self._pkg) + else: + ver = self._pkg.GetCurrentVer + return ver.InstalledSize + installedSize = property(getInstalledSize, None, None, "The size of the candidate installed package") - # depcache action + # depcache actions def markKeep(self): + """ mark a package for keep """ self._pcache.cachePreChange() self._depcache.MarkKeep(self._pkg) self._pcache.cachePostChange() def markDelete(self, autoFix=True): + """ mark a package for delete. Run the resolver if autoFix is set """ self._pcache.cachePreChange() self._depcache.MarkDelete(self._pkg) # try to fix broken stuffsta @@ -161,6 +198,7 @@ class Package(object): Fix.Resolve() self._pcache.cachePostChange() def markInstall(self, autoFix=True): + """ mark a package for install. Run the resolver if autoFix is set """ self._pcache.cachePreChange() self._depcache.MarkInstall(self._pkg) # try to fix broken stuff @@ -171,28 +209,18 @@ class Package(object): fixer.Resolve(True) self._pcache.cachePostChange() def markUpgrade(self): + """ mark a package for upgrade """ if self.isUpgradable(): self.MarkInstall() # FIXME: we may want to throw a exception here sys.stderr.write("MarkUpgrade() called on a non-upgrable pkg") - - # size - def packageSize(self, UseCandidate=True): - if UseCandidate: - ver = self._depcache.GetCandidateVer(self._pkg) - else: - ver = self._pkg.GetCurrentVer - return ver.Size - - def installedSize(self, UseCandidate=True): - if UseCandidate: - ver = self._depcache.GetCandidateVer(self._pkg) - else: - ver = self._pkg.GetCurrentVer - return ver.InstalledSize def commit(self, fprogress, iprogress): + """ commit the changes, need a FetchProgress and InstallProgress + object as argument + """ self._depcache.Commit(fprogress, iprogress) + # self-test if __name__ == "__main__": @@ -204,18 +232,19 @@ if __name__ == "__main__": iter = cache["apt-utils"] pkg = Package(cache, depcache, records, None, iter) - print "Name: %s " % pkg.name() - print "Installed: %s " % pkg.installedVersion() - print "Candidate: %s " % pkg.candidateVersion() - print "SourcePkg: %s " % pkg.sourcePackageName() - print "Section: %s " % pkg.section() - print "Priority (Candidate): %s " % pkg.priority() - print "Priority (Installed): %s " % pkg.priority(False) - print "Summary: %s" % pkg.summary() - print "Description:\n%s" % pkg.description() - print "Description (formated) :\n%s" % pkg.description(True) - print "InstalledSize: %s " % pkg.installedSize() - print "PackageSize: %s " % pkg.packageSize() + print "Name: %s " % pkg.name + print "ID: %s " % pkg.id + print "Priority (Candidate): %s " % pkg.priority + print "Priority (Installed): %s " % pkg.getPriority(False) + print "Installed: %s " % pkg.installedVersion + print "Candidate: %s " % pkg.candidateVersion + print "SourcePkg: %s " % pkg.sourcePackageName + print "Section: %s " % pkg.section + print "Summary: %s" % pkg.summary + print "Description (formated) :\n%s" % pkg.description + print "Description (unformated):\n%s" % pkg.getDescription(False) + print "InstalledSize: %s " % pkg.installedSize + print "PackageSize: %s " % pkg.packageSize # now test install/remove import apt diff --git a/apt/progress.py b/apt/progress.py index 1520e34e..4e5ffe4d 100644 --- a/apt/progress.py +++ b/apt/progress.py @@ -37,10 +37,10 @@ class OpTextProgress(OpProgress): def __init__(self): OpProgress.__init__(self) def update(self, percent): - sys.stdout.write("\r%s: %.2i " % (self.Op,percent)) + sys.stdout.write("\r%s: %.2i " % (self.subOp,percent)) sys.stdout.flush() def done(self): - sys.stdout.write("\r%s: Done\n" % self.Op) + sys.stdout.write("\r%s: Done\n" % self.op) diff --git a/tests/apt-test.py b/tests/apt-test.py index c44d3117..03fa12eb 100644 --- a/tests/apt-test.py +++ b/tests/apt-test.py @@ -6,7 +6,7 @@ if __name__ == "__main__": print cache for name in cache.keys(): pkg = cache[name] - if pkg.isUpgradable(): + if pkg.isUpgradable: pkg.markInstall() for pkg in cache.getChanges(): #print pkg.Name() |
