for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
#!/usr/bin/env python
import collections
from orderdict import orderdict
import public
@public.add
class OrderingDict(collections.OrderedDict):
ordering = []
def __init__(self, *args, **kwargs):
if "ordering" in kwargs:
self.ordering = kwargs["ordering"]
del kwargs["ordering"]
ordereddict = orderdict(self.ordering, *args, **kwargs)
super(OrderingDict, self).__init__(ordereddict)
def update(self, *args, **kwargs):
items = dict(self)
items.update(*args, **kwargs)
ordereddict = orderdict(self.ordering, items)
self.clear()
super(OrderingDict, self).update(ordereddict)
def __setitem__(self, key, value):
items[key] = value
for k, v in ordereddict.items():
super(OrderingDict, self).__setitem__(k, v)
def orderingdict(ordering, *args, **kwargs):
return OrderingDict(*args, ordering=ordering, **kwargs)