comparison mercurial/util.py @ 50750:a2df74853f8d stable

tests: fix sortdict doctest with Python 3.12 The output of OrderedDict changed to use plain dict syntax: $ python3.11 -c "import collections;print(collections.OrderedDict([('a', 0), ('b', 1)]))" OrderedDict([('a', 0), ('b', 1)]) $ python3.12 -c "import collections;print(collections.OrderedDict([('a', 0), ('b', 1)]))" OrderedDict({'a': 0, 'b': 1})
author Mads Kiilerich <mads@kiilerich.com>
date Tue, 27 Jun 2023 10:09:11 +0200
parents a45460e235a2
children d718eddf01d9
comparison
equal deleted inserted replaced
50749:faccec1edc2c 50750:a2df74853f8d
1275 class sortdict(collections.OrderedDict): 1275 class sortdict(collections.OrderedDict):
1276 """a simple sorted dictionary 1276 """a simple sorted dictionary
1277 1277
1278 >>> d1 = sortdict([(b'a', 0), (b'b', 1)]) 1278 >>> d1 = sortdict([(b'a', 0), (b'b', 1)])
1279 >>> d2 = d1.copy() 1279 >>> d2 = d1.copy()
1280 >>> d2 1280 >>> list(d2.items())
1281 sortdict([('a', 0), ('b', 1)]) 1281 [('a', 0), ('b', 1)]
1282 >>> d2.update([(b'a', 2)]) 1282 >>> d2.update([(b'a', 2)])
1283 >>> list(d2.keys()) # should still be in last-set order 1283 >>> list(d2.keys()) # should still be in last-set order
1284 ['b', 'a'] 1284 ['b', 'a']
1285 >>> d1.insert(1, b'a.5', 0.5) 1285 >>> d1.insert(1, b'a.5', 0.5)
1286 >>> d1 1286 >>> list(d1.items())
1287 sortdict([('a', 0), ('a.5', 0.5), ('b', 1)]) 1287 [('a', 0), ('a.5', 0.5), ('b', 1)]
1288 """ 1288 """
1289 1289
1290 def __setitem__(self, key, value): 1290 def __setitem__(self, key, value):
1291 if key in self: 1291 if key in self:
1292 del self[key] 1292 del self[key]