diff options
Diffstat (limited to 'Lib/bsddb/dbtables.py')
| -rw-r--r-- | Lib/bsddb/dbtables.py | 11 | 
1 files changed, 10 insertions, 1 deletions
diff --git a/Lib/bsddb/dbtables.py b/Lib/bsddb/dbtables.py index 56b4e3a01d..563390ba6f 100644 --- a/Lib/bsddb/dbtables.py +++ b/Lib/bsddb/dbtables.py @@ -88,6 +88,15 @@ class LikeCond(Cond):      def __call__(self, s):          return self.re.match(s.decode(self.encoding)) +def CmpToKey(mycmp): +    'Convert a cmp= function into a key= function' +    class K(object): +        def __init__(self, obj, *args): +            self.obj = obj +        def __lt__(self, other): +            return mycmp(self.obj, other.obj) == -1 +    return K +  #  # keys used to store database metadata  # @@ -587,7 +596,7 @@ class bsdTableDB :              return 0          conditionlist = list(conditions.items()) -        conditionlist.sort(cmp_conditions) +        conditionlist.sort(key=CmpToKey(cmp_conditions))          # Apply conditions to column data to find what we want          cur = self.db.cursor()  | 
