blob: 75e2dfca271d4d2be5fc9cb362e169b7d138cc97 [file] [log] [blame]
import colorsys
__all__ = []
class simple_repr_mixin(object):
def __repr__(self):
return "%s(%s)" % (self.__class__.__name__,
", ".join("%s=%r" % (k,v)
for k,v in sorted(self.__dict__.items())))
def sorted(items):
items = list(items)
items.sort()
return items
def make_dark_color(h):
h = h % 1.
s = 0.95
v = 0.8
return colorsys.hsv_to_rgb(h,0.9+s*.1,v)
class multidict(object):
def __init__(self, elts=()):
self.data = {}
for key,value in elts:
self[key] = value
def __contains__(self, item):
return item in self.data
def __getitem__(self, item):
return self.data[item]
def __setitem__(self, key, value):
if key in self.data:
self.data[key].append(value)
else:
self.data[key] = [value]
def items(self):
return self.data.items()
def values(self):
return self.data.values()
def keys(self):
return self.data.keys()
def __len__(self):
return len(self.data)
def get(self, key, default=None):
return self.data.get(key, default)