def get_dois(self, queries, mode, wait_time=0): if mode == 'mp': self.__logger.info('Searching with MP queries') mpr = MPRester(environ.get('MAPI_KEY'), endpoint="https://www.materialsproject.org/rest") mpids = [] for query in queries: try: entries = mpr.get_entries(query) for entry in entries: mpids.extend(entry.data['task_ids']) for mpid in mpids: mpid = mpr.get_materials_id_from_task_id( mpid)['materials_id'] bibtex = mpr.get_materials_id_references(mpid) parsed_bibtex = bibtexparser.loads(bibtex) for item in parsed_bibtex.entries: if 'doi' in item: if item['doi'] not in self.dl_dois: self.dl_dois.append(item['doi']) except: self.__logger.warning( 'FAILURE: Failed to get DOIs from MP:' + str(query)) elif mode == 'cr': self.__logger.info('Searching with CR queries') for query in queries: dl_dois = [] try: dl_dois = self.ad.get_dois_from_search( query, rows=self.rows_per_query) except Exception, e: self.__logger.warning( 'FAILURE: Failed to get DOIs from CR: ' + str(query)) self.__logger.warning('EXCEPTION: ' + str(e)) sleep(wait_time) self.dl_dois.extend(dl_dois)
def test_get_materials_id_references(self): # nosetests pymatgen/matproj/tests/test_rest.py:MPResterTest.test_get_materials_id_references m = MPRester() data = m.get_materials_id_references('mp-123') self.assertTrue(len(data) > 1000)
def test_get_materials_id_references(self): # nosetests pymatgen/matproj/tests/test_rest.py:MPResterTest.test_get_materials_id_references # self.rester points to rest/v2 by default which doesn't have the refs endpoint m = MPRester(endpoint="https://www.materialsproject.org/rest") data = m.get_materials_id_references('mp-123') self.assertTrue(len(data) > 1000)