A library to handle BibTeX bibliographic data.
biblib is a (pure) python library that provides several useful classes, methods and functions to work with BibTeX bibliographic data within your python scripts.
The idea is to enabling you to prepare your own tools, which are specifically tailored to your own literature investigation scheme, comfortably.
The following code will read the file into a db, fetch an entry by its DOI and save the db to a new file:
import biblib # open file as filedb in read only mode fileDb = biblib.FileBibDB('bibtex.bib', mode='r') # open file as db read/write mode, # no LaTeX encoding of unicode character newFileDb = biblib.FileBibDB('new.bib', encode=False) # add fileDb entries to newFileDb newFileDb.merge_bibdb(fileDb) # access an entry object refered by its cite-key entry = newFileDb['JCP-127-234509'] entry.get_tag('year') > 2007 # init doi db doiDb = biblib.DoiBibDB() # retrieve bibliographic meta data by DOI entry = doiDb['10.1088/0959-5309/43/5/301'] # add new entries to database newFileDb.add_entry(entry) # or this way to set a specific cite-key # newFileDb['MY_CITE_KEY'] = entry1
If you don’t use biblib in a bigger context (i.e. from the command line) you can use the helper functions for the fast and easy way:
from biblib import db_from_file, entry_from_doi, db_to_file db = db_from_file('bibtex.bib') entry = entry_from_doi('10.1088/0959-5309/43/5/301') db.add_entry(entry) db_to_file(db, 'new.bib', encode=False)
You can install the latest version from the Python package index. From the command line, enter (in some cases you have to precede the command with sudo):
$ pip install biblib
More information about the usage and how to get and install pip you find in the PIP documentation.
To install it manual, download the archive, unpack it, and type (in some cases you have to precede the command with sudo):
$ python setup.py install
Documentation including installation procedure, tutorial and API: http://wgserve.de/biblib/
Thanks to Jackalope for his support while planing and designing biblib, and for his contribution of the Storage concept.