summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorMichael Vogt <michael.vogt@ubuntu.com>2005-04-08 00:51:04 +0000
committerMichael Vogt <michael.vogt@ubuntu.com>2005-04-08 00:51:04 +0000
commit8f914ef267ab1bbcbda1c6694edd2e4c9b6401ec (patch)
treeed06ac66d1e0675a77080bf5a5d6f33e3c492d52 /doc
parent7e76103c2b13d27f4a9987b1f9fca50504177268 (diff)
downloadpython-apt-8f914ef267ab1bbcbda1c6694edd2e4c9b6401ec.tar.gz
* started the DepCache.Commit() interface
Diffstat (limited to 'doc')
-rw-r--r--doc/examples/action.py26
-rw-r--r--doc/examples/inst.py140
-rw-r--r--doc/examples/progress.py30
3 files changed, 171 insertions, 25 deletions
diff --git a/doc/examples/action.py b/doc/examples/action.py
index 09ded0a7..3eb58d9e 100644
--- a/doc/examples/action.py
+++ b/doc/examples/action.py
@@ -4,31 +4,7 @@
import apt_pkg
import sys
import copy
-
-class OpProgress:
- def __init__(self):
- self.last = 0.0
-
- def Update(self, percent):
- if (self.last + 1.0) <= percent:
- sys.stdout.write("\rProgress: %i.2 " % (percent))
- self.last = percent
- if percent >= 100:
- self.last = 0.0
-
- def Done(self):
- self.last = 0.0
- print "\rDone "
-
-
-class FetchProgress:
- def __init__(self):
- pass
- def UpdateStatus(self, uri, descr, shortDescr, status):
- print "UpdateStatus: '%s' '%s' '%s' '%i'" % (uri,descr,shortDescr, status)
- def Pulse(self):
- print "Pulse: CPS: %s/s; Bytes: %s/%s; Item: %s/%s" % (apt_pkg.SizeToStr(self.CurrentCPS), apt_pkg.SizeToStr(self.CurrentBytes), apt_pkg.SizeToStr(self.TotalBytes), self.CurrentItems, self.TotalItems)
-
+from progress import OpProgress, FetchProgress
# init
diff --git a/doc/examples/inst.py b/doc/examples/inst.py
new file mode 100644
index 00000000..3854805b
--- /dev/null
+++ b/doc/examples/inst.py
@@ -0,0 +1,140 @@
+#!/usr/bin/python
+# example how to deal with the depcache
+
+import apt_pkg
+import sys
+import copy
+
+from progress import OpProgress, FetchProgress
+
+
+# init
+apt_pkg.init()
+
+progress = OpProgress()
+cache = apt_pkg.GetCache(progress)
+print "Available packages: %s " % cache.PackageCount
+
+# get depcache
+depcache = apt_pkg.GetDepCache(cache)
+depcache.ReadPinFile()
+depcache.Init(progress)
+
+# do something
+fprogress = FetchProgress()
+iprogress = "lala"
+iter = cache["base-config"]
+print "\n%s"%iter
+
+# install or remove, the importend thing is to keep us busy :)
+if iter.CurrentVer == None:
+ depcache.MarkInstall(iter)
+else:
+ depcache.MarkDelete(iter)
+depcache.Commit(fprogress, iprogress)
+
+print "Exiting"
+sys.exit(0)
+
+
+
+
+
+
+
+
+
+
+
+
+
+iter = cache["base-config"]
+print "example package iter: %s" % iter
+
+# get depcache
+print "\n\n depcache"
+depcache = apt_pkg.GetDepCache(cache, progress)
+depcache.ReadPinFile()
+print "got a depcache: %s " % depcache
+print "Marked for install: %s " % depcache.InstCount
+
+print "\n\n Reinit"
+depcache.Init(progress)
+
+#sys.exit()
+
+
+# get a canidate version
+ver= depcache.GetCandidateVer(iter)
+print "Candidate version: %s " % ver
+
+print "\n\nQuerry interface"
+print "%s.IsUpgradable(): %s" % (iter.Name, depcache.IsUpgradable(iter))
+
+print "\nMarking interface"
+print "Marking '%s' for install" % iter.Name
+depcache.MarkInstall(iter)
+print "Install count: %s " % depcache.InstCount
+print "%s.MarkedInstall(): %s" % (iter.Name, depcache.MarkedInstall(iter))
+print "%s.MarkedUpgrade(): %s" % (iter.Name, depcache.MarkedUpgrade(iter))
+print "%s.MarkedDelete(): %s" % (iter.Name, depcache.MarkedDelete(iter))
+
+print "Marking %s for delete" % iter.Name
+depcache.MarkDelete(iter)
+print "DelCount: %s " % depcache.DelCount
+print "%s.MarkedDelete(): %s" % (iter.Name, depcache.MarkedDelete(iter))
+
+
+iter = cache["3dchess"]
+print "\nMarking '%s' for install" % iter.Name
+depcache.MarkInstall(iter)
+print "Install count: %s " % depcache.InstCount
+print "%s.MarkedInstall(): %s" % (iter.Name, depcache.MarkedInstall(iter))
+print "%s.MarkedUpgrade(): %s" % (iter.Name, depcache.MarkedUpgrade(iter))
+print "%s.MarkedDelete(): %s" % (iter.Name, depcache.MarkedDelete(iter))
+
+print "Marking %s for keep" % iter.Name
+depcache.MarkKeep(iter)
+print "Install: %s " % depcache.InstCount
+
+iter = cache["3dwm-server"]
+print "\nMarking '%s' for install" % iter.Name
+depcache.MarkInstall(iter)
+print "Install: %s " % depcache.InstCount
+print "Broken count: %s" % depcache.BrokenCount
+print "FixBroken() "
+depcache.FixBroken()
+print "Broken count: %s" % depcache.BrokenCount
+
+print "\nPerforming Upgrade"
+depcache.Upgrade()
+print "Keep: %s " % depcache.KeepCount
+print "Install: %s " % depcache.InstCount
+print "Delete: %s " % depcache.DelCount
+print "UsrSize: %s " % apt_pkg.SizeToStr(depcache.UsrSize)
+print "DebSize: %s " % apt_pkg.SizeToStr(depcache.DebSize)
+
+for pkg in cache.Packages:
+ if pkg.CurrentVer != None and not depcache.MarkedInstall(pkg) and depcache.IsUpgradable(pkg):
+ print "Upgrade didn't upgrade (kept): %s" % pkg.Name
+
+
+print "\nPerforming DistUpgrade"
+depcache.Upgrade(True)
+print "Keep: %s " % depcache.KeepCount
+print "Install: %s " % depcache.InstCount
+print "Delete: %s " % depcache.DelCount
+print "UsrSize: %s " % apt_pkg.SizeToStr(depcache.UsrSize)
+print "DebSize: %s " % apt_pkg.SizeToStr(depcache.DebSize)
+
+# overview about what would happen
+for pkg in cache.Packages:
+ if depcache.MarkedInstall(pkg):
+ if pkg.CurrentVer != None:
+ print "Marked upgrade: %s " % pkg.Name
+ else:
+ print "Marked install: %s" % pkg.Name
+ elif depcache.MarkedDelete(pkg):
+ print "Marked delete: %s" % pkg.Name
+ elif depcache.MarkedKeep(pkg):
+ print "Marked keep: %s" % pkg.Name
diff --git a/doc/examples/progress.py b/doc/examples/progress.py
new file mode 100644
index 00000000..f6cf1495
--- /dev/null
+++ b/doc/examples/progress.py
@@ -0,0 +1,30 @@
+import apt_pkg
+import sys
+
+class OpProgress:
+ def __init__(self):
+ self.last = 0.0
+
+ def Update(self, percent):
+ if (self.last + 1.0) <= percent:
+ sys.stdout.write("\rProgress: %i.2 " % (percent))
+ self.last = percent
+ if percent >= 100:
+ self.last = 0.0
+
+ def Done(self):
+ self.last = 0.0
+ print "\rDone "
+
+
+class FetchProgress:
+ def __init__(self):
+ pass
+ def UpdateStatus(self, uri, descr, shortDescr, status):
+ print "UpdateStatus: '%s' '%s' '%s' '%i'" % (uri,descr,shortDescr, status)
+ def Pulse(self):
+ print "Pulse: CPS: %s/s; Bytes: %s/%s; Item: %s/%s" % (apt_pkg.SizeToStr(self.CurrentCPS), apt_pkg.SizeToStr(self.CurrentBytes), apt_pkg.SizeToStr(self.TotalBytes), self.CurrentItems, self.TotalItems)
+
+ def MediaChange(self, medium, drive):
+ print "Please insert medium %s in drive %s" % (medium, drive)
+ sys.stdin.readline() \ No newline at end of file