Skip to main content

A powerful, lightweight, universal bibliography management tool

Project description


PyPI version GitHub version

Paperstack is a powerful, lightweight, universal bibliography management tool written in Python.

Table of Contents

Installation

Paperstack can be installed from PyPI with the following command:

python3 -m pip install paperstack

To build directly from source, run:

git clone https://github.com/williamroque/Paperstack.git
cd Paperstack
python3 setup.py install

Afterwards, run the following command to test the installation and explore CLI options.

paperstack --help

Usage

Interface

Run paperstack by itself to open the interactive text-based interface. There, the left panel lists the records in your library (use arrow keys to navigate) and the right panel shows record details. Below, the footer displays key map hints and other messages.

There is also a command-line interface, which can be useful for batch actions and integration with other programs. For example, run the command

paperstack add article 'author: Albert Einstein; title: Die Grundlage der allgemeinen Relativitätstheorie; journal: AdP; year: 1916'

to add a new paper. Note the syntax for entries (key1: value1; key2: value2). Then run

paperstack list

to list all added records in the library. A slightly less trivial use case might be to scrape multiple articles at once. The following script reads a list of bibcodes from a text file and uses Paperstack to add them to your library.

for line in $(cat bibcodes.txt); do
    paperstack scrape ads "bibcode: $line" --add
done

Configuration for Paperstack goes in $HOME/.paperstack.cfg. The config file follows a standard similar to Windows .ini files. Sections are labeled with [section name] and settings are written as key = value. Check the documentation for the different settings you can customize. Below is an example configuration.

[paths]
data = ~/Documents/Paperstack/

[article]
id-format = author@2-title@15-year@4

[ads]
key = <YOUR-API-KEY>
timeout = 10

[arxiv]
timeout = 10

[keys]
vim-bindings = yes

[editor]
command = vim
extension = md

Note that to scrape ADS, a valid API key has to be specified in the config file.

Find a presentation containing a few use cases and general information here.

Exporting

Paperstack supports exporting to both BibTeX and a variety of citation standards. In order to maintain a small installation size, however, only the Harvard citation style is enabled by default. To add more, visit CSL Styles | GitHub and download the .csl file corresponding to your preferred style. Then, save that file to the csl directory within the data directory specified in your configuration.

A few common styles you can download include:

Contributing

All contributions are welcome. Reporting issues on the GitHub repository is greatly appreciated, but pull requests are preferred. In particular, help is needed to:

  • Improve documentation;
  • Test on different platforms;
  • Add support for new databases;
  • Add support for new record types (books, websites, etc.);
  • Any other goals or roadmap items listed in the Project Notes.

Note that contributions should follow PEP 8 as closely as possible (though not strictly enforced), docstrings should follow the Numpy format, and that, in general, simple, flat, and scalable code is strongly encouraged.

A special thanks to Dr. Mosenkov for conceiving and co-creating this project.

License

This program is licensed under the GNU General Public 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

paperstack-1.2.7.tar.gz (42.6 kB view details)

Uploaded Source

Built Distribution

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

paperstack-1.2.7-py3.9.egg (94.2 kB view details)

Uploaded Egg

File details

Details for the file paperstack-1.2.7.tar.gz.

File metadata

  • Download URL: paperstack-1.2.7.tar.gz
  • Upload date:
  • Size: 42.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.1

File hashes

Hashes for paperstack-1.2.7.tar.gz
Algorithm Hash digest
SHA256 e74be9717b0a38dba82ba41ea0fcb75bc5565e72f7cd178ddd4e7cbbcc00b531
MD5 674690b88421315c32173d020847b131
BLAKE2b-256 2e23891ff17f68b1eea216e1410e895f01c65c7b004baba0ee5e750abe7c522a

See more details on using hashes here.

File details

Details for the file paperstack-1.2.7-py3.9.egg.

File metadata

  • Download URL: paperstack-1.2.7-py3.9.egg
  • Upload date:
  • Size: 94.2 kB
  • Tags: Egg
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.1

File hashes

Hashes for paperstack-1.2.7-py3.9.egg
Algorithm Hash digest
SHA256 b626669c64d530ebdeea1a6196facce6b43b805c49fcce032c0873d27d800f8d
MD5 ae794fd9368545131e5b231b0142d42d
BLAKE2b-256 3028d7b38c12361c35fe780ebdbbbd1652b6040b0acb76efd8f824f7d0ab4773

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