diff options
Diffstat (limited to 'g_octave/svn/revisions.py')
-rw-r--r-- | g_octave/svn/revisions.py | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/g_octave/svn/revisions.py b/g_octave/svn/revisions.py index 4f5e98d..cc4e234 100644 --- a/g_octave/svn/revisions.py +++ b/g_octave/svn/revisions.py @@ -35,20 +35,28 @@ class Revisions(object): return False return True - def __getitem__(self, key): + def get(self, category=None, package=None): revisions = self._load_json() - if key in revisions: - return revisions[key] + if category is None: + return revisions + if category in revisions: + if package is None: + return revisions[category] + if package in revisions[category]: + return revisions[category][package] return None - def __setitem__(self, key, value): + def set(self, category, package, value): revisions = self._load_json() - revisions[key] = value + if category not in revisions: + revisions[category] = {} + revisions[category][package] = value if not self._dump_json(revisions): raise RuntimeError('Failed to save JSON file.') + if __name__ == '__main__': a = Revisions('/tmp/file.json') - a['fuuuu'] = 1234 - print a['fuuuu'] + a.set('main', 'fuuuu', 1234) + print a.get() |