summaryrefslogtreecommitdiff
path: root/apt/package.py
diff options
context:
space:
mode:
Diffstat (limited to 'apt/package.py')
-rw-r--r--apt/package.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/apt/package.py b/apt/package.py
index 1a2626fa..411f9635 100644
--- a/apt/package.py
+++ b/apt/package.py
@@ -28,6 +28,11 @@ import socket
import subprocess
import urllib2
import warnings
+try:
+ from collections import Mapping
+except ImportError:
+ # (for Python < 2.6) pylint: disable-msg=C0103
+ Mapping = object
import apt_pkg
import apt.progress
@@ -145,7 +150,7 @@ class Origin(object):
self.site, self.trusted)
-class Record(object):
+class Record(Mapping):
"""Represent a pkgRecord.
It can be accessed like a dictionary and can also give the original package
@@ -155,6 +160,9 @@ class Record(object):
def __init__(self, record_str):
self._rec = apt_pkg.ParseSection(record_str)
+ def __hash__(self):
+ return hash(self._rec)
+
def __str__(self):
return str(self._rec)
@@ -183,6 +191,9 @@ class Record(object):
"""deprecated form of ``key in x``."""
return key in self._rec
+ def __len__(self):
+ return len(self._rec)
+
class Version(object):
"""Representation of a package version.