def put(self, key, value): """ >>> o = EzdmObject({'a/b': 1, 'a/c': 2}) >>> o.put('/f/g', 16) >>> o()['f/g'] 16 """ self.objdata[stripslashes(key)] = value
def get(self, key, default=None): """ >>> o = EzdmObject({'a/b': 1, 'a/c': 2}) >>> o.get('/a', '') '' >>> o.get('/a/b', '') 1 >>> o.get('/f/g', 5) 5 """ key = stripslashes(key) if not self() or not key in self(): if default is not None: return default return self()[key]
def realkey(key): key = stripslashes(key) if key.startswith('conditional'): conditions = [k for k in key.split('/') if '=' in k] for condition in conditions: newkey = key.split('/') newkey = newkey[newkey.index(condition):][1:] newkey = '/'.join(newkey) newkey = newkey.replace('.','/') key = newkey ret = [] for k in key.split('/'): if k.startswith('__'): ret.append(k[3:]) else: ret.append(k) return '/'.join(ret).strip('/')