Skip to main content

Ref Man Python Module

Project description

* ref-man-py

Python Module for ~ref-man~ (See https://github.com/akshaybadola/ref-man).

Network requests and xml parsing can be annoying in emacs, so ref-man uses a
separate python process for efficient (and sometimes parallel) fetching of
network requests.

* Features

** Persistent Service with Flask
- Can easily integrate with other applications
- Parallel fetching of large number of entries from supported websites
(DBLP, ArXiv etc.)

** HTTP integration with Semantic Scholar API (https://www.semanticscholar.org/product/api)
- Fetch with multiple IDs like arxiv, ACL etc.
- Local files based cache to avoid redundant requests
- +Fetches all metadata in one go (Will change soon as Semantic Scholar is
updating its API)+
- Now uses the Semantic Scholar Graph API

** Experimental (and undocumented) Semantic Scholar Search API
- Mostly gleaned through analyzing network requests. Helpful for searching
articles.

** HTTP integration with DBLP and ArXiv
- Supports multiple parallel requests for batch updates

** Fetch PDF from a given URL
- Easier to fetch using python than with Emacs's callbacks

** Option for proxying requests
- Particularly useful for PDFs if you're tunneling to your institution from
home or some other location and the article you want is with institutional
(IP based) access only.

* Roadmap

** More Tests
- Coverage is low.
- Need to remove some code which isn't used.
- Some parts need to be rewritten.

** Change to new Semantic Scholar API (*Done*)
Semantic Scholar is changing its API. See https://www.semanticscholar.org/product/api
we should migrate to new ~graph/v1/paper~ API.

** Integrate ~common_pyutil.net.Get~
It has support for progress tracking. Helpful when network is slow and when
downloading large files.

** ASGI server
With websockets for better Async integration.

** Integrate more services
There're semi-working/broken functions for CrossRef and some other services in
~ref-man~. They can be exported to python perhaps.

* Wishlist

** Serve Org files on the fly as html
Will help in integrating a larger userbase. Perhaps also with a py-to-lisp
(hy like maybe) interface so that elementary scripting on the org backend can
be done.

** Ultimately integrate ~pndconf~ also
A document preparation toolchain (See https://github.com/akshaybadola/pndconf),
which is integrated with ~ref-man~.

* License

All the code in this repo except for external services and libraries are
licensed under the MIT License. See ~LICENSE.md~ in this repo.

Some commits in the repository may be under a different license. If you use
those, you would have see the details of that License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ref_man_py-0.8.0.tar.gz (27.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ref_man_py-0.8.0-py3-none-any.whl (29.9 kB view details)

Uploaded Python 3

File details

Details for the file ref_man_py-0.8.0.tar.gz.

File metadata

  • Download URL: ref_man_py-0.8.0.tar.gz
  • Upload date:
  • Size: 27.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.13.3 Linux/6.13.8-200.fc41.x86_64

File hashes

Hashes for ref_man_py-0.8.0.tar.gz
Algorithm Hash digest
SHA256 a8506886608cd021fac569112c2ee5cfc52e1409412aa38be0fa2fd41a896182
MD5 463353c28b6e0b3a8b777666a5520eba
BLAKE2b-256 fe40c2f98ddc2fbfa8a7d644d69726a2129be9bd0228c480cd95384da8822fce

See more details on using hashes here.

File details

Details for the file ref_man_py-0.8.0-py3-none-any.whl.

File metadata

  • Download URL: ref_man_py-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 29.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.13.3 Linux/6.13.8-200.fc41.x86_64

File hashes

Hashes for ref_man_py-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e8106ace65c37eb791309766ebdaf439919bcc23c4581cdafb9f41ec3380ffbc
MD5 602bd94c147520d475448e6a43ff3fe2
BLAKE2b-256 873d2d18886267b45bf57bf7feaa8982849d53dc750946d748db074ddf9747eb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page