arxivterminal


Namearxivterminal JSON
Version 0.3.1 PyPI version JSON
download
home_pagehttps://github.com/jbencina/arxivterminal
SummaryAn application for summarizing Arxiv results within the terminal
upload_time2023-04-17 05:43:58
maintainer
docs_urlNone
authorJohn Bencina
requires_python>=3.9,<4.0
licenseGPL-3.0-or-later
keywords arxiv
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Arxiv Terminal
![Tests](https://github.com/jbencina/arxivterminal/actions/workflows/main.yaml/badge.svg)
![PyPI](https://img.shields.io/pypi/v/arxivterminal)
![PyPI - Downloads](https://img.shields.io/pypi/dm/arxivterminal)

Arxiv Terminal is a command-line interface (CLI) tool for fetching, searching, and displaying papers from the [arXiv](https://arxiv.org/) preprint repository. The tool allows you to fetch papers from specified categories, search the fetched papers, and display their statistics.

## Features

- Fetch paper abstracts from specified categories and save them in a local sqllite database.
- Show fetched papers and interatively open for more detailed abstracts
- Search fetched papers based on a query (Currently supports pattern + LSA semantic search)
- Download papers locally as PDF

![Demo](https://raw.githubusercontent.com/jbencina/arxivterminal/main/static/demo.gif)

## Contributors
A special call out to ChatGPT (v4) which helped write and modify various code and documentation in this repository.

## Installation

```bash
pip install arxivterminal
```

For local builds, you should have Poetry installed: [User Guide](https://python-poetry.org/docs/#installation). After
installation you may clone and build this repo:
```bash
poetry install
poetry shell
arxiv <command>

# Build the wheels
poetry build
```

## Usage

The CLI is invoked using the `arxiv` command, followed by one of the available commands:

- `arxiv fetch [--num-days] [--categories]`: Fetch papers from the specified categories and store them in the database.
- `arxiv delete_all`: Delete all papers from the database.
- `arxiv show [--days-ago]`: Show papers fetched from the specified number of days ago.
- `arxiv stats`: Show statistics of the papers stored in the database.
- `arxiv search <query>`: Search papers in the database based on a query.

### Examples

Fetch papers from the "cs.AI" and "cs.CL" categories from the last 7 days:

```bash
arxiv fetch --num-days 7 --categories cs.AI,cs.CL
```

Delete all papers from database:

```bash
arxiv delete_all
```

Show papers fetched in the last 7 days

```bash
arxiv show --days-ago 7

# On this screen the user can select a paper for more
# details by typing a line number. Additional options
# allow for searching & downloading
```

Display statistics of the papers stored in the database:

```bash
arxiv stats
```

Show papers containing the phrase "deep learning":

```bash
arxiv search "deep learning"
```

Show papers containing the phrase "deep learning" using LSA matching:

```bash
arxiv search -e "deep learning"
```

### LSA Search Model
> Note: This approach is likely to be replaced in the future by more robust methodology

The LSA search model is largely adapted from the implementation featured in the scikit-learn [User Guide](
https://scikit-learn.org/stable/auto_examples/text/plot_document_clustering.html#sphx-glr-auto-examples-text-plot-document-clustering-py) example.
When used, the model is trained over the entire corpus of abstracts present in the user's local database. The model
is persisted in the app cache folder and automatically reloaded on subsequent runs. During a search query, all abstracts
from the database are encoded as n-dimensional vectors using the trained LSA model. The search query is also represented
as a vector, and a cosine similarity is performed to find the top ranking items.

You may want to force a refresh of the underlying model after loading new papers. This can be done by using the `-f`
flag when performing a search:
```bash
arxiv search -e -f "deep learning"
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/jbencina/arxivterminal",
    "name": "arxivterminal",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.9,<4.0",
    "maintainer_email": "",
    "keywords": "arxiv",
    "author": "John Bencina",
    "author_email": "jbencina@users.noreply.github.com",
    "download_url": "https://files.pythonhosted.org/packages/ac/09/a5d6d073d82983ad04d7096fed5da1dfe6ea949d85ea570edf3d1e93513a/arxivterminal-0.3.1.tar.gz",
    "platform": null,
    "description": "# Arxiv Terminal\n![Tests](https://github.com/jbencina/arxivterminal/actions/workflows/main.yaml/badge.svg)\n![PyPI](https://img.shields.io/pypi/v/arxivterminal)\n![PyPI - Downloads](https://img.shields.io/pypi/dm/arxivterminal)\n\nArxiv Terminal is a command-line interface (CLI) tool for fetching, searching, and displaying papers from the [arXiv](https://arxiv.org/) preprint repository. The tool allows you to fetch papers from specified categories, search the fetched papers, and display their statistics.\n\n## Features\n\n- Fetch paper abstracts from specified categories and save them in a local sqllite database.\n- Show fetched papers and interatively open for more detailed abstracts\n- Search fetched papers based on a query (Currently supports pattern + LSA semantic search)\n- Download papers locally as PDF\n\n![Demo](https://raw.githubusercontent.com/jbencina/arxivterminal/main/static/demo.gif)\n\n## Contributors\nA special call out to ChatGPT (v4) which helped write and modify various code and documentation in this repository.\n\n## Installation\n\n```bash\npip install arxivterminal\n```\n\nFor local builds, you should have Poetry installed: [User Guide](https://python-poetry.org/docs/#installation). After\ninstallation you may clone and build this repo:\n```bash\npoetry install\npoetry shell\narxiv <command>\n\n# Build the wheels\npoetry build\n```\n\n## Usage\n\nThe CLI is invoked using the `arxiv` command, followed by one of the available commands:\n\n- `arxiv fetch [--num-days] [--categories]`: Fetch papers from the specified categories and store them in the database.\n- `arxiv delete_all`: Delete all papers from the database.\n- `arxiv show [--days-ago]`: Show papers fetched from the specified number of days ago.\n- `arxiv stats`: Show statistics of the papers stored in the database.\n- `arxiv search <query>`: Search papers in the database based on a query.\n\n### Examples\n\nFetch papers from the \"cs.AI\" and \"cs.CL\" categories from the last 7 days:\n\n```bash\narxiv fetch --num-days 7 --categories cs.AI,cs.CL\n```\n\nDelete all papers from database:\n\n```bash\narxiv delete_all\n```\n\nShow papers fetched in the last 7 days\n\n```bash\narxiv show --days-ago 7\n\n# On this screen the user can select a paper for more\n# details by typing a line number. Additional options\n# allow for searching & downloading\n```\n\nDisplay statistics of the papers stored in the database:\n\n```bash\narxiv stats\n```\n\nShow papers containing the phrase \"deep learning\":\n\n```bash\narxiv search \"deep learning\"\n```\n\nShow papers containing the phrase \"deep learning\" using LSA matching:\n\n```bash\narxiv search -e \"deep learning\"\n```\n\n### LSA Search Model\n> Note: This approach is likely to be replaced in the future by more robust methodology\n\nThe LSA search model is largely adapted from the implementation featured in the scikit-learn [User Guide](\nhttps://scikit-learn.org/stable/auto_examples/text/plot_document_clustering.html#sphx-glr-auto-examples-text-plot-document-clustering-py) example.\nWhen used, the model is trained over the entire corpus of abstracts present in the user's local database. The model\nis persisted in the app cache folder and automatically reloaded on subsequent runs. During a search query, all abstracts\nfrom the database are encoded as n-dimensional vectors using the trained LSA model. The search query is also represented\nas a vector, and a cosine similarity is performed to find the top ranking items.\n\nYou may want to force a refresh of the underlying model after loading new papers. This can be done by using the `-f`\nflag when performing a search:\n```bash\narxiv search -e -f \"deep learning\"\n```\n",
    "bugtrack_url": null,
    "license": "GPL-3.0-or-later",
    "summary": "An application for summarizing Arxiv results within the terminal",
    "version": "0.3.1",
    "split_keywords": [
        "arxiv"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d70c2b579196a3ecedee663cf8d5a2eaa2c7f45137d84f1e34bb386a08067d8f",
                "md5": "6c6d72ad9eac88f0295cfe424de127c0",
                "sha256": "6c0b1cb984ca1a5901f244fd43b3bf8c034484455725d13eea2ae35dee6f3125"
            },
            "downloads": -1,
            "filename": "arxivterminal-0.3.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "6c6d72ad9eac88f0295cfe424de127c0",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9,<4.0",
            "size": 24455,
            "upload_time": "2023-04-17T05:43:57",
            "upload_time_iso_8601": "2023-04-17T05:43:57.528966Z",
            "url": "https://files.pythonhosted.org/packages/d7/0c/2b579196a3ecedee663cf8d5a2eaa2c7f45137d84f1e34bb386a08067d8f/arxivterminal-0.3.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ac09a5d6d073d82983ad04d7096fed5da1dfe6ea949d85ea570edf3d1e93513a",
                "md5": "26c0935435fa6c9973adbd086b765ca1",
                "sha256": "c4ca7642c24c17f1f47aa769f0ec0ef78baa073b1af78c0eeb104828e765a422"
            },
            "downloads": -1,
            "filename": "arxivterminal-0.3.1.tar.gz",
            "has_sig": false,
            "md5_digest": "26c0935435fa6c9973adbd086b765ca1",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.9,<4.0",
            "size": 22745,
            "upload_time": "2023-04-17T05:43:58",
            "upload_time_iso_8601": "2023-04-17T05:43:58.968900Z",
            "url": "https://files.pythonhosted.org/packages/ac/09/a5d6d073d82983ad04d7096fed5da1dfe6ea949d85ea570edf3d1e93513a/arxivterminal-0.3.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-04-17 05:43:58",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "github_user": "jbencina",
    "github_project": "arxivterminal",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "arxivterminal"
}
        
Elapsed time: 0.05431s