Hacky stuff for 4.0
[git-dm.git] / utils.py
blob2b3be5d8c4342143fbeea39d90f0ce405fd427cb
2 # Useful utilities.
5 # A simple class for accumulating counts or lists
7 class accumulator:
8 def __init__(self):
9 self._data = { }
11 def incr(self, key, increment = 1):
12 try:
13 self._data[key] += increment
14 except KeyError:
15 self._data[key] = increment
17 def get(self, key, default = None):
18 try:
19 return self._data[key]
20 except KeyError:
21 return default
23 def append(self, key, item, unique = False):
24 if unique and self._data.has_key(key) and \
25 item in self._data[key]:
26 return
27 try:
28 self._data[key].append(item)
29 except KeyError:
30 self._data[key] = [item]
32 def keys(self):
33 return self._data.keys()
35 def __getitem__(self, key):
36 return self._data[key]