Spaces:
Running
Running
import arxiv | |
class ArxivSearch: | |
""" | |
Arxiv API Retriever | |
""" | |
def __init__(self, query, sort='Relevance'): | |
self.arxiv = arxiv | |
self.query = query | |
assert sort in ['Relevance', 'SubmittedDate'], "Invalid sort criterion" | |
self.sort = arxiv.SortCriterion.SubmittedDate if sort == 'SubmittedDate' else arxiv.SortCriterion.Relevance | |
def search(self, max_results=5): | |
""" | |
Performs the search | |
:param query: | |
:param max_results: | |
:return: | |
""" | |
arxiv_gen = list(arxiv.Client().results( | |
self.arxiv.Search( | |
query= self.query, #+ | |
max_results=max_results, | |
sort_by=self.sort, | |
))) | |
search_result = [] | |
for result in arxiv_gen: | |
search_result.append({ | |
"title": result.title, | |
"href": result.pdf_url, | |
"body": result.summary, | |
}) | |
return search_result |