def _process(self, value): if isinstance(value, list): return [self._process(v) for v in value] elif isinstance(value, dict): d = {} for k, v in value.items(): d[k] = self._process(v) return client.create_thing(self, d.get('key'), d) elif isinstance(value, common.Reference): return client.create_thing(self, unicode(value), None) else: return value
def get_doc(key): doc = docs[key] del doc['_id'] del doc['_rev'] if not _raw: data = self._site._process_dict(common.parse_query(doc)) doc = client.create_thing(self._site, doc['key'], data) return doc
def add(self, doc): #@@ UGLY! doc = common.parse_query(doc) doc = client.Site(None, None)._process_dict(doc) key = doc['key'] self.docs[key] = client.create_thing(self, key, doc) olid = key.split("/")[-1] if web.re_compile(r'OL\d+[A-Z]').match(olid): self.olids[olid] = key
def make_doc(self, rawdata): data = web.ctx.site._process_dict(common.parse_query(rawdata)) doc = client.create_thing(web.ctx.site, data['key'], data) return doc
def new(self, key, data=None): """Creates a new thing in memory. """ data = common.parse_query(data) data = self._process_dict(data or {}) return client.create_thing(self, key, data)
def get(self, key, revision=None): data = self.docs.get(key) data = data and web.storage(common.parse_query(data)) return data and client.create_thing(self, key, self._process_dict(data))
def get(self, key): doc = self.docs[key] # black magic data = self._process_dict(common.parse_query(doc)) return client.create_thing(self, key, data)