Skip to content

rbturnbull/pybtexnbib

Repository files navigation

pybtexnbib

pipline badge coverage badge black badge git3moji badge

A pybtex plugin for NBIB/Medline/PubMed files. For information on the file format, see the documentation at the National Library of Medicine.

Installation

Install pybtexnbib from PyPI using pip:

pip install pybtexnbib

Command-line usage

To convert an NBIB file to another format, use the pybtex-convert command. For example:

pybtex-convert bibliography.nbib bibliography.bib

The extension of the output file must be supported by pybtex or an associated plugin.

To format an NBIB file into a human-readable bibliography, use the pybtex-format command. For example:

pybtex-format bibliography.nbib bibliography.txt

For more information, see the documentation for pybtex.

Programmatic usage

NBIB files can be formatted into a human-readable bibliography as a string as follows:

from pybtex import format_from_file
bibliography_string = format_from_file(
    "path/to/file.nbib", 
    style="plain", 
    output_backend="plaintext",
    bib_format="nbib",
)

Multiple NBIB files can be formatted in a similar way:

from pybtex import format_from_files
bibliography_string = format_from_files(
    ["path/to/file1.nbib", "path/to/file2.nbib"],
    style="plain", 
    output_backend="plaintext",
    bib_format="nbib",
)

By giving "suffix" as the argument to bib_format, NBIB files can be combined with bibliography files of other formats (such as BibTeX or RIS):

from pybtex import format_from_files
bibliography_string = format_from_files(
    ["path/to/file1.nbib", "path/to/file2.bib", "path/to/file3.ris"],
    style="plain", 
    output_backend="plaintext",
    bib_format="suffix",
)

The RIS parser comes from pybtexris. Parsers for the files for other formats need to be registered on the pybtex.database.input.suffixes entry point as discussed pybtex plugin documentation.

For more information on programmatic use of pybtex, see the documentation of the Python API of pybtex.

Credit

Robert Turnbull (Melbourne Data Analytics Platform, University of Melbourne)