arxiv_search.py
arxiv_search.pyBrowse 2 files
387 tokens
1,653 bytes
Token encoding: o200k_base
Snapshot 229ffef
← Back to SKILL.md
1#!/usr/bin/env python32"""arXiv Search.3 4Searches the arXiv preprint repository for research papers.5"""6 7import argparse8 9 10def query_arxiv(query: str, max_papers: int = 10) -> str:11 """Query arXiv for papers based on the provided search query.12 13 Parameters14 ----------15 query : str16 The search query string.17 max_papers : int18 The maximum number of papers to retrieve (default: 10).19 20 Returns:21 The formatted search results or an error message.22 """23 try:24 import arxiv # ty: ignore25 except ImportError:26 return "Error: arxiv package not installed. Install with: pip install arxiv"27 28 try:29 client = arxiv.Client()30 search = arxiv.Search(31 query=query, max_results=max_papers, sort_by=arxiv.SortCriterion.Relevance32 )33 results = "\n\n".join(34 [35 f"Title: {paper.title}\nSummary: {paper.summary}"36 for paper in client.results(search)37 ]38 )39 return results or "No papers found on arXiv."40 except Exception as e:41 return f"Error querying arXiv: {e}"42 43 44def main() -> None:45 """Main entry point for the arXiv search CLI tool."""46 parser = argparse.ArgumentParser(description="Search arXiv for research papers")47 parser.add_argument("query", type=str, help="Search query string")48 parser.add_argument(49 "--max-papers",50 type=int,51 default=10,52 help="Maximum number of papers to retrieve (default: 10)",53 )54 55 args = parser.parse_args()56 57 query_arxiv(args.query, max_papers=args.max_papers)58 59 60if __name__ == "__main__":61 main()62