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 AGPL 3.0 (or later). See LICENSE.md in this repo. To learn more
about AGPL see https://www.gnu.org/licenses/agpl-3.0.en.html.

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.7.1.tar.gz (50.8 kB view details)

Uploaded Source

Built Distribution

ref_man_py-0.7.1-py3-none-any.whl (55.8 kB view details)

Uploaded Python 3

File details

Details for the file ref-man-py-0.7.1.tar.gz.

File metadata

  • Download URL: ref-man-py-0.7.1.tar.gz
  • Upload date:
  • Size: 50.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.14 CPython/3.11.4 Linux/6.2.11-200.fc37.x86_64

File hashes

Hashes for ref-man-py-0.7.1.tar.gz
Algorithm Hash digest
SHA256 f9846aca6cf06cbe2434a18c510abe2f2a43a76efcf7fffbbcd1344267889d08
MD5 20f0c1ee3ba9c7d3d2f5f5b0f0d20621
BLAKE2b-256 341822e32cbab4f46e500b7db14d83e54f63ce495a0bfc4ff79b4dd2a196ea81

See more details on using hashes here.

File details

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

File metadata

  • Download URL: ref_man_py-0.7.1-py3-none-any.whl
  • Upload date:
  • Size: 55.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.14 CPython/3.11.4 Linux/6.2.11-200.fc37.x86_64

File hashes

Hashes for ref_man_py-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cfcb01902fe785dfbba8b11c12e26a6dde4ff8993795092992b4d38f3389b269
MD5 7cfba3c2a0bb05a3fc2a9504e118528e
BLAKE2b-256 c8cf1da566b1f252a2d2991aa5c5a7c23095dadba220a644bd729f538bb15734

See more details on using hashes here.

Supported by

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