diff options
| author | Michael Vogt <egon@bottom> | 2007-08-28 10:14:02 +0200 |
|---|---|---|
| committer | Michael Vogt <egon@bottom> | 2007-08-28 10:14:02 +0200 |
| commit | be3ddb25ea0baa259f20936f1d7a62cafa019b99 (patch) | |
| tree | 10bf95738b6ae2050a6d95da26dacd1dab73f8a0 /apt/package.py | |
| parent | 3c2d0313a45668770e7cb2993dc092fb4e711bb7 (diff) | |
| parent | ddf91759e3fabee1e0d61372247c4256758c387c (diff) | |
| download | python-apt-be3ddb25ea0baa259f20936f1d7a62cafa019b99.tar.gz | |
* apt/debfile.py:
- added wrapper around apt_inst.debExtract()
- support dictionary like access
* python/apt_instmodule.cc:
- added arCheckMember()
* aptsources/distro.py:
- throw NoDistroTemplateException if not distribution template
can be found
* NMU
* Fix version to not use CPU and OS since it's not available on APT
anymore (closes: #435653, #435674)
* apt/package.py:
- added Record class that can be accessed like a dictionary
and return it in candidateRecord and installedRecord
(thanks to Alexander Sack for discussing this with me)
* doc/examples/records.py:
- added example how to use the new Records class
* apt/cache.py:
- throw FetchCancelleException, FetchFailedException,
LockFailedException exceptions when something goes wrong
* aptsources/distro.py:
- generalized some code, bringing it into the Distribution
class, and wrote some missing methods for the DebianDistribution
one (thanks to Gustavo Noronha Silva)
* debian/control:
- updated for python-distutils-extra (>= 1.9.0)
* debian/python-apt.install:
- fix i18n files
* python/indexfile.cc:
- increase str buffer in PackageIndexFileRepr
Diffstat (limited to 'apt/package.py')
| -rw-r--r-- | apt/package.py | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/apt/package.py b/apt/package.py index b82f1aa0..4524a47d 100644 --- a/apt/package.py +++ b/apt/package.py @@ -40,6 +40,23 @@ class Dependency(object): def __init__(self, alternatives): self.or_dependencies = alternatives +class Record(object): + """ represents a pkgRecord, can be accessed like a + dictionary and gives the original package record + if accessed as a string """ + def __init__(self, s): + self._str = s + self._rec = apt_pkg.ParseSection(s) + def __str__(self): + return self._str + def __getitem__(self, key): + k = self._rec.get(key) + if k is None: + raise KeyError + return k + def has_key(self, key): + return self._rec.has_key(key) + class Package(object): """ This class represents a package in the cache """ @@ -244,14 +261,14 @@ class Package(object): " return the full pkgrecord as string of the candidate version " if not self._lookupRecord(True): return None - return self._records.Record + return Record(self._records.Record) candidateRecord = property(candidateRecord) def installedRecord(self): " return the full pkgrecord as string of the installed version " if not self._lookupRecord(False): return None - return self._records.Record + return Record(self._records.Record) installedRecord = property(installedRecord) # depcache states |
