diff --git a/dictdata.py b/dictdata.py index 5ef8d2d..f4d338b 100644 --- a/dictdata.py +++ b/dictdata.py @@ -1,4 +1,7 @@ import plugin +class ReadOnlyError(Exception): + pass + class DictData(plugin.JSONData): def __init__(self,filename,**kwargs): plugin.JSONData.__init__(self,kwargs) @@ -14,3 +17,15 @@ class DictData(plugin.JSONData): return k in self.value def get(self,k,default=None): return self.value.get(k,default) + +class ReadOnlyDictData(DictData): + def __setitem__(self,k,v): + raise ReadOnlyError("Cannot set item {} to {}".format(k,v)) + +class Numerical(ReadOnlyDictData): + def load(self,filename): + super(Numerical,self).load(filename) + n = {} + for k in self.value: + n[int(k)]=self.value[k] + self.value = n