Total Complexity | 10 |
Total Lines | 32 |
Duplicated Lines | 0 % |
Changes | 5 | ||
Bugs | 1 | Features | 0 |
1 | class MetaValue(): |
||
2 | def __init__(self): |
||
3 | self._metas = {} |
||
4 | |||
5 | def reset(self): |
||
6 | self._metas = {} |
||
7 | |||
8 | def _get_metas(self, name): |
||
9 | if name not in self._metas: |
||
10 | self._metas[name] = {} |
||
11 | return self._metas[name] |
||
12 | |||
13 | def set(self, name, subject, value): |
||
14 | metas = self._get_metas(name) |
||
15 | metas[subject] = value |
||
16 | |||
17 | def unset(self, name, subject): |
||
18 | metas = self._get_metas(name) |
||
19 | del(metas[subject]) |
||
20 | |||
21 | def have(self, name, subject): |
||
22 | metas = self._get_metas(name) |
||
23 | return subject in metas |
||
24 | |||
25 | def get(self, name, subject, allow_empty=False, empty_value=None): |
||
26 | metas = self._get_metas(name) |
||
27 | try: |
||
28 | return metas[subject] |
||
29 | except KeyError: |
||
30 | if not allow_empty: |
||
31 | raise |
||
32 | return empty_value |
||
33 |