def create(self, data, oid): rset = ResourceSetResponse().deserialize(data, "json") rset.weed() m = hashlib.md5(rset.to_json().encode("utf8")) rsid = m.hexdigest() rset["_id"] = rsid # Need to add _id before verifying rset.verify() try: self.db[oid][rsid] = rset except KeyError: self.db[oid] = {rsid: rset} # backward lookup table self.rsid2oid[rsid] = oid # add a revision number self.etag[rsid] = str(uuid.uuid4()) status = StatusResponse(_id=rsid) return status