def insert(self, auth_token, atoms, kvp): ids = [] if isinstance(atoms, ase.atoms.Atoms): # We're just inserting one ids.append(self.collection.insert(util.atoms2dict(atoms))) else: # Assume atoms is an iterable dicts = [util.atoms2dict(a) for a in atoms] ids.extend(self.collection.insert(dicts)) return results.InsertResult(ids)
def insert(self, auth_token, atoms): ids = [] if isinstance(atoms, ase.atoms.Atoms): # We're just inserting one ids.append(self.collection.insert(util.atoms2dict(atoms))) else: # Assume atoms is an iterable dicts = [util.atoms2dict(a) for a in atoms] ids.extend(self.collection.insert(dicts)) return results.InsertResult(ids)
def update(self, auth_token, atoms): if 'uid' not in atoms.info: return results.UpdateResult(None, "Cannot update a structure" "without a valid uid") uid = atoms.info.uid doc = util.atoms2dict(atoms) self.collection.update({'_id': ObjectId(uid)}, {'$set': doc}) return results.UpdateResult([uid])
def backendFind(database, user, filter, sort, limit, keys, omit_keys): box = StructureBox(Backend(database=database, user=user)) atoms_it = box.find( auth_token="", filter=json.loads(b64decode(filter)), sort=json.loads(b64decode(sort)), limit=limit, keys=json.loads(b64decode(keys)), omit_keys=json.loads(b64decode(omit_keys)), ) atoms_dcts_list = [atoms2dict(atoms, True) for atoms in atoms_it] print("204:" + b64encode(json.dumps(atoms_dcts_list)))