A Python port of the Invisible Internet Project (I2P)
at main 28 lines 720 B view raw
1"""Collection utilities — OrderedProperties. 2 3Ported from net.i2p.util.OrderedProperties. 4""" 5 6from collections import OrderedDict 7 8 9class OrderedProperties(OrderedDict): 10 """Properties dict that maintains insertion order and sorts for iteration. 11 12 When iterated (keys, items), returns entries sorted by key. 13 """ 14 15 def keys(self): 16 return sorted(super().keys()) 17 18 def items(self): 19 return sorted(super().items(), key=lambda x: x[0]) 20 21 def values(self): 22 return [v for _, v in self.items()] 23 24 def get_property(self, key: str, default: str = "") -> str: 25 return self.get(key, default) 26 27 def set_property(self, key: str, value: str) -> None: 28 self[key] = value