File size: 1,038 Bytes
372531f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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