Skip to main content

Module to complete bibtex files by polling online databases

Reason this release was yanked:

Doesn't work with python < 3.9

Project description

Bibtex Autocomplete

Maintenance PyPI version PyPI pyversions License PyPI status Downloads

bibtexautocomplete or btac is a python package to autocomplete bibtex bibliographies. It is inspired and expanding on the solution provided by thando in this tex stackexchange post.

It attempts to complete a bibtex file by querying the following domains:

Demo

demo.svg

Quick overview

How does it find matches?

btac queries the websites using the entry doi if known otherwise the title. So entries that don't have one of those two fields will not be completed. Additionally, the title should be the full title (title are compared excluding case and punctuation, but missing words are a mismatch).

Disclaimers

  • There is no guarantee that the script will find matches for your entries, or that the websites will have any data to add to your entries, (or even that the website data is correct, but that's not for me to say...)

  • The script is designed to minimize the chance of false positives - that is adding data from another similar-ish entry to your entry. If you find any such false positive please report them using the issue tracker.

How are entries completed?

Once responses from all websites have been found, the script will add fields from website with the following priority : crossref > dblp > researchr > unpaywall.

So if both crossref's and dblp's response contain a publisher, the one from crossref will be used.

The script will not overwrite any user given non-empty fields, unless the -f/--force-overwrite flag is given.

Installation

Can be installed with pip :

pip install bibtexautocomplete

You should now be able to run the script using either commands:

btac --version
python3 -m bibtexautocomplete --version

Dependencies

This package has two dependencies (automatically installed by pip) :

Usage

The command line tool can be used as follows:

btac [-flag] <input_files>

Examples :

  • btac my/db.bib : reads from ./my/db.bib, writes to ./my/db.btac.bib
  • btac -i db.bib : reads from db.bib and overwrites it (inplace flag)
  • btac db1.bib db2.bib -o out1.bib -o out2.bib reads multiple files and write their outputs to out1.bib and out2.bib respectively

Optional arguments:

  • -o --output <file>

    Write output to given file. Can be used multiple times when also giving multiple inputs. Maps inputs to outputs in order in that case If there are extra inputs, use default name (old_name.btac.bib). Ignored in inplace (-i) mode.

  • -q --only-query <site> or -Q --dont-query <site>

    Restrict which websites to query from. <site> must be one of: crossref, dblp, researchr, unpaywall. These arguments can be used multiple times, for example to only query crossref and dblp use -q crossref -q dblp or -Q researchr -Q unpaywall

  • -e --only-entry <id> or -E --exclude-entry <id>

    Restrict which entries should be autocomplete. <id> is the entry id used in your bibtex file (e.g. @inproceedings{<id> ... }). These arguments can also be used multiple times to select only/exclude multiple entries

  • -c --only-complete <field> or -C --dont-complete <field>

    Restrict which fields you wish to autocomplete. Field is a bibtex field (e.g. author, doi,...). So if you only wish to add missing doi's used -c doi.

Output formatting:

  • --fa --align-values pad fieldnames to align all values

    @article{Example,
      author = {Someone},
      doi    = {10.xxxx/yyyyy},
    }
    
  • --fc --comma-first use comma first syntax

    @article{Example
      , author = {Someone}
      , doi = {10.xxxx/yyyyy}
      ,
    }
    
  • --fl --no-trailing-comma don't add the last trailing comma

  • --fi --indent <space> space used for indentation, default is a tab

Flags:

  • -i --inplace Modify input files inplace, ignores any specified output files

  • -f --force-overwrite Overwrite already present fields. The default is to overwrite a field if it is empty or absent

  • -t --timeout <float> set timeout on request in seconds, default: 10.0 s, increase this if you are getting a lot of timeouts.

  • -v --verbose verbose mode shows more info. It details entries as they are being processed and shows a summary of new fields and their source at the end. Using it more then once prints debug info (up to three times).

  • -s --silent hide info and progressbar. Keep showing warnings and errors. Use twice to also hide warnings, thrice to also hide errors and four times to also hide critical error, effectively killing all output.

  • -n --no-color don't color use ansi codes to color and stylise output

  • --version show version number

  • -h --help show help

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

bibtexautocomplete-1.0.3.tar.gz (31.8 kB view details)

Uploaded Source

Built Distribution

bibtexautocomplete-1.0.3-py3-none-any.whl (39.1 kB view details)

Uploaded Python 3

File details

Details for the file bibtexautocomplete-1.0.3.tar.gz.

File metadata

  • Download URL: bibtexautocomplete-1.0.3.tar.gz
  • Upload date:
  • Size: 31.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.7

File hashes

Hashes for bibtexautocomplete-1.0.3.tar.gz
Algorithm Hash digest
SHA256 1520ab68c19834a60ccda42f31f2a8d6c176f2b287c71e6efceb9f59dbc829d4
MD5 11e3a70ae5eda52c58ac132206eea41d
BLAKE2b-256 1b6999dffad3bf034826e95ccbf2505cfc4ecfa1a93171e7789aa56bb34dc0e5

See more details on using hashes here.

File details

Details for the file bibtexautocomplete-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: bibtexautocomplete-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 39.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.63.0 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.7

File hashes

Hashes for bibtexautocomplete-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d59638f13fc370a5d050f8f14e7bd135517901ec6660635f2c8defbdeb4bd67c
MD5 cfe2ff0378b98d80535369ae44872d57
BLAKE2b-256 5a30283626158d6e7690c36f6851405de15f4bd6c364dcad3f419c2e4abe710f

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