{ "info": { "author": "('Andrew Mathas',)", "author_email": "andrew.mathas@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Natural Language :: English", "Programming Language :: Python :: 2.7", "Topic :: Text Processing :: Markup :: LaTeX", "Topic :: Utilities" ], "description": "=========\nbibupdate\n=========\n\n**Usage**: \n\nusage: bibupdate [-h] [-a] [-c] [-f] [-i IGNORE] [-l LOG] [-m | -M] [-q] [-r]\n [-w LEN] bibtexfile [outputfile]\n\nThis is a command line tool for updating the entries in a BibTeX_ file using\nmrlookup_. By default bibupdate_ tries to update the entry for each paper\nin the BibTeX_ file unless the entry already has an ``mrnumber`` field (you can\ndisable future checking of an entry by giving it an empty ``mrnumber`` field).\n\n**Options**::\n\n -a, --all update or validate ALL BibTeX entries\n -c, --check_all check all bibtex entries against a database\n -f, --font_replace do NOT replace fonts \\Bbb, \\germ and \\scr\n -h, --help show this help message and exit\n -i IGNORE, --ignored-fields IGNORE\n a string of bibtex fields to ignore\n -l LOG, --log LOG log messages to specified file (defaults to stdout)\n -q, --quietness print fewer messages\n -r --replace replace existing bibtex file\n -w {}, --wrap {} wrap bibtex fields to specified width\n\n -m, --mrlookup use mrlookup to update bibtex entries (default)\n -M, --mathscinet use mathscinet to update bibtex entries (less flexible)\n\n**Note:** \nAs described below, you should check the new file for errors before deleting the\noriginal version of your BibTeX_ file.\n\nBy default, bibupdate_ does not change your original database file. Instead, it creates a\nnew file with the name *updated_file.bib*, if your original file was *file.bib*.\nIt is also possible to have it replace your current file (use carefully!), or to\nspecify a new file name.\n\nBibTeX_ is widely used by the LaTeX_ community to maintain publication databases.\nThis script attempts to add missing fields to the papers in a BibTeX_ database\nfile by querying mrlookup_ and getting the missing information from there. This\nis not completely routine because to search on mrlookup_ you need either the\nauthors or the title of the article and both of these can have non-standard\nrepresentations. If the article is already published then it is also possible to\nuse the publication year and its page numbers. To search on mrlookup_ we:\n\n - use the authors (can be problematic because of accents and names with von etc)\n - use the page numbers, if they exist\n - use the year only if there are no page numbers and this is NOT a preprint\n - use the title if there are no page numbers (or this is a book)\n\nIf there is a unique (good, non-fuzzy) match from mrlookup_ then bibupdate_\nreplaces all of the current fields with those from mrlookup_, except for the\ncitation key. The values of any fields that are not specified by mrlookup_, such\nas ``eprint`` fields, are retained. By default, a message is printed whenever\nexisting fields in the database are changed. If the title of the retrieved paper\ndoes not (fuzzily) match that of the original article then the entry is NOT\nupdated and a warning message is printed.\n\nAlthough some care is taken to make sure that the new BibTeX_ entries correspond\nto the same paper that the original entry referred to there is always a (small?)\nchance the new entry corresponds to an entirely different paper. In my\nexperience this happens rarely, and mostly with unpublished manuscripts. In any\ncase, before you delete your original BibTeX_ file *you are strongly advised to\ncheck the updated file BibTeX file carefully for errors!*\n\nTo help the user to compare the updated fields for each entry in the BibTeX_\nfile the program prints a detailed list of all changes that are made to existing\nBibTeX_ fields (any new fields that are added are not printed). Once bibupdate_\nhas finished running it is recommended that you compare the old and new versions\nof your database using programs like *diff* and *tkdiff*.\n\nAs bibupdate_ calls mrlookup_ this program will only be useful if you have\npapers in your database that are listed in MathSciNet_. As described below it is\nalso possible to call MathSciNet_ directly, however, this is less flexible\nbecause the ``mrnumber`` field for each paper is required.\n\nI wrote this script because I wanted to automatically add links to journals, the\narXiv_ and DOIs to the bibliographies of my papers using hyperref_. This script\nallowed me to add the missing urls and DOI fields to my BibTeX_ database. As a\nbonus the script helped me to correct many minor errors that had crept into my\nBibTeX_ file over the years (for example, incorrect page numbers and publication\nyears). Now I use the program to automatically update the preprint entries in my\ndatabase when the papers appear in MathSciNet_ after they are published.\n\nOptions and their defaults\n--------------------------\n\n-a, --all Update or validate ALL BibTeX entries\n\n By default bibupdate_ only checks each BibTeX_ entry with the mrlookup\n database if the entry does *not* have an ``mrnumber`` field. With this switch\n all entries are checked and updated.\n\n-c --check_all Check/validate all bibtex entries against a database\n\n Prints a list of entries in the BibTeX file that have fields different from\n those given by the corresponding database. The original BibTeX file is not\n changed.\n\n-f, --font_replace Do not replace fonts \\\\germ and \\\\scr\n\n The BibTeX_ entries generated by mrlookup_ use \\\\Bbb, \\\\germ and \\\\scr for the\n \\\\mathbb, \\\\mathfrak and \\\\mathscr fonts. By default, in the *title* fields,\n these fonts specifications are automatically changed to the following more\n LaTeX_ friendly fonts:\n\n - \\\\Bbb X --> \\\\mathbb{X}\n - \\\\scr X --> \\\\mathcal{X}\n - \\\\germ X --> \\\\mathfrak{X}\n\n The -f option *disables* these substitutions.\n\n-i IGNORE, --ignored-fields=IGNORE A string of BibTeX_ fields to ignore when writing the updated file\n\n By default bibupdate_ removes the following fields from each BibTeX_ entry:\n\n - coden\n - mrreviewer\n - fjournal\n - issn\n\n This list can be changed using the -i command line option::\n\n bibupdate -i \"coden fjournal\" file.bib # ignore coden and fjournal\n bibupdate -i coden -i fjournal file.bib # ignore coden and fjournal\n bibupdate -i \"\" file.bib # do not ignore any fields\n\n-l LOG, --log LOG Log output to file (defaults to stdout)\n\n Specify a log filename to use for the bibupdate_ messages.\n\n-m --mrlookup Use mrlookup to update bibtex entries (default)\n\n-M --mathscinet Use mathscinet to update bibtex entries\n\n By default mrlookup_ is used to update the BibTeX_ entries in the database.\n This has the advantage of being a free service provided by the American\n Mathematical Society. A second advantage is the more flexible searching is\n possible when mrlookup_ is used. It is also possible to update BibTeX_\n entries using MathSciNet_, however, these searches are currently only possible\n using the ``mrnumber`` field (so this option only does something if combined\n with the --all option or the -check-all-option).\n\n-q, --quietness Print fewer messages\n\n There are three levels of verbosity in how bibupdate_ describes the changes that\n it is making. These are determined by the q-option as follows::\n\n bibupdate bibfile.bib (Defalt) Report all changes\n bibupdate -q bibfile.bib (Warning mode) Only print entries that are changed\n bibupdate -qq bibfile.bib (Quiet mode) Only printer error messages\n\n By default all changes are printed (to stdout, although a log file can be\n specified by the -l option). In the default mode bibupdate_ will tell you what\n entries it changes and when it *is not* able to find the paper on the database\n (either because there are no matches or because there are too many). If it is\n not able to find the paper and bibupdate_ thinks that the paper is not a\n preprint then it will mark the missing entry with an exclamation mark, to\n highlight that it thinks that it should have found the entry in mrlookup_ but\n failed. Here is some sample output::\n\n ------------------------------\n ? did not find Webster:CanonicalBasesHigherRep=Canonical bases and higher representatio\n ++++++++++++++++++++++++++++++\n + updating Weyl=\n + publisher: Princeton University Press\n + -> Princeton University Press, Princeton, NJ\n ------------------------------\n ? did not find Williamson:JamesLusztig=Schubert calculus and torsion\n ------------------------------\n ! did not find QSAII=On Quantitative Substitutional Analysis\n\n Each bibtex_ entry is identified by the citation key and the (first 50\n characters of the sanitised) document title, as specified by your database. Of\n the three missed entries above, bibupdate_ thinks that the first and third are\n preprints (they are not marked with an !) and that the final article should\n already have been published. With the entry that bibupdate_ found, only the\n publisher field was changed to include the city of publication.\n\n In *warning mode*, with the -q option, you are \"warned\" whenever changes are\n made to an entry or when the paper is not found in the external datbase. That\n is, when papers are found (with changes) or when they are missed and\n bibupdate_ thinks that they are not preprints. In *quiet mode*, with the -qq\n option, the program only reports when something goes wrong.\n\n-r --replace Replace the existing bibtex file with the updated version\n\n Replace the existing BibTeX_ file with the updated file. A backup version of\n the original BibTeX_ is made with a .bak extension. it is also possible to\n specify the output filename as the last argument to bibupdate.\n\n-w WRAP_LEN --wrap WRAP_LEN wrap bibtex fields to specified width\n\n Limits the maximum line length in the output BibTeX_ file. In theory this is\n supposed to make it easier to compare the updated BibTeX_ file with the\n original one, however, in practise this doesn't always work.\n\nKnown issues\n------------\n\nThere are a small number of cases where bibupdate_ fails to correctly identify\npapers that are listed in MathSciNet_. These failures occur for the following\nreasons:\n\n* Apostrophes: Searching for a title that contains, for example, \"James's Conjecture\" \n confuses mrlookup_.\n* Ambiguous spelling: Issues arise when there are multiple ways to spell a\n given author's name. This can often happen if the surname involves accents\n (such as Koenig and K\\\\\"onig). Most of the time accents themselves are not a\n problem because the AMS is LaTeX_ aware.\n* Pages numbers: electronic journals, in particular, often have strange page\n numbers (for example \"Art. ID rnm032, 24\"). bibupdate_ assumes that page\n numbers are always given in the format like 4--42.\n* Occasionally MathReviews combines two or more closely related articles. This\n makes it difficult to search for them.\n\nAll of these problems are due to idiosyncrasies with mrlookup_ so there is not\nmuch that we can do about them.\n\nInstallation\n============\n\nYou need to have Python_ installed. In principle, this program should work on\nany system that supports Python_, however, I only promise that it will work\non an up-to-date mac or Linux system. In the event that it does not install I\nmay not be able to help you as I will not have access to your system.\n\nFrom the command line type::\n\n pip install bibupdate\n\nInstead of pip, you should also be able to use easy_install. The program should\nrun on python 2.7 and 2.8...I haven't tried python3. You can also clone or\ndownload_ the git repository and work directly with the source.\n\nSupport\n=======\n\nThis program is being made available primarily on the basis that it might be\nuseful to others. I wrote the program in my spare time and I will support it in\nmy spare time, to the extent that I will fix what I consider to be serious\nproblems and I may implement feature requests. Ultimately, however, my family,\nresearch, teaching and administrative duties will have priority.\n\nTo do\n=====\n\n- More intelligent searches using MathSciNet_.\n- Interface to the arXiv_? In principle, this is easy to do although,\n ultimately, it would probably not work because the arXiv_ blocks frequent\n requests from the same IP address in order to discourage robots.\n\nAUTHOR\n======\n\n`Andrew Mathas`_\n\nbibupdate_ Version 1.2. Copyright (C) 2012-14 \n\nGNU General Public License, Version 3, 29 June 2007\n\nThis program is free software: you can redistribute it and/or modify it under\nthe terms of the GNU_General Public License (GPL_) as published by the Free\nSoftware Foundation, either version 3 of the License, or (at your option) any\nlater version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY\nWARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A\nPARTICULAR PURPOSE. See the GNU General Public License for more details.\n\n.. _`Andrew Mathas`: http://www.maths.usyd.edu.au/u/mathas/\n.. _arXiv: http://arxiv.org/\n.. _BibTeX: http://www.bibtex.org/\n.. _bibupdate: https://bitbucket.org/AndrewsBucket/bibupdate\n.. _download: http://bitbucket.org/AndrewsBucket/bibupdate/downloads/\n.. _GPL: http://www.gnu.org/licenses/gpl.html\n.. _hyperref: http://www.ctan.org/pkg/hyperref\n.. _LaTeX: http://en.wikipedia.org/wiki/LaTeX\n.. _MathSciNet: http://www.ams.org/mathscinet/\n.. _mrlookup: http://www.ams.org/mrlookup\n.. _Python: https://www.python.org/", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/AndrewsBucket/bibupdate", "keywords": "bibtex, mrlookup, MathSciNet, latex", "license": "GNU General Public License, Version 3, 29 June 2007", "maintainer": null, "maintainer_email": null, "name": "bibupdate", "package_url": "https://pypi.org/project/bibupdate/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/bibupdate/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://bitbucket.org/AndrewsBucket/bibupdate" }, "release_url": "https://pypi.org/project/bibupdate/1.2/", "requires_dist": null, "requires_python": null, "summary": "('Automatically update the entries of a bibtex file using mrlookup/MathSciNet',)", "version": "1.2" }, "last_serial": 1166320, "releases": { "1.1": [ { "comment_text": "", "digests": { "md5": "5ea8e9a38872f2fda123afebe2e0a171", "sha256": "8b18f94ac77fd93cb8273f3496e0e27f02970f7780c5dd64d548b11fe429a828" }, "downloads": -1, "filename": "bibupdate-1.1.tar.gz", "has_sig": false, "md5_digest": "5ea8e9a38872f2fda123afebe2e0a171", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30016, "upload_time": "2014-07-22T02:05:45", "url": "https://files.pythonhosted.org/packages/34/fe/42d99d271a6fafe023bf239e45b25bb097d07ff6c9245e6ca8516a9701b1/bibupdate-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "e3841ecab8cf9701e6697066e788991e", "sha256": "d5f1105bcd21e700577d39893451645f9f14e74c772ec5a5dd5890aef360bf9c" }, "downloads": -1, "filename": "bibupdate-1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "e3841ecab8cf9701e6697066e788991e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 25087, "upload_time": "2014-07-23T06:50:19", "url": "https://files.pythonhosted.org/packages/db/d6/44a84e1e0da5566ce5956189fd4e75f121854bf53d7a283f78a21e523b5d/bibupdate-1.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "09e2365cc51732a94ff7c8530d2dda37", "sha256": "95ba288632c4a9cd46666997b992a528b977d7a8b5fbca54941b9ce1efccb90b" }, "downloads": -1, "filename": "bibupdate-1.2.tar.gz", "has_sig": false, "md5_digest": "09e2365cc51732a94ff7c8530d2dda37", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30912, "upload_time": "2014-07-23T06:50:23", "url": "https://files.pythonhosted.org/packages/07/bb/e3d6d4f59be8fe6e45b98cc674140a84d89b8398b4c947cd924f453b7f1e/bibupdate-1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e3841ecab8cf9701e6697066e788991e", "sha256": "d5f1105bcd21e700577d39893451645f9f14e74c772ec5a5dd5890aef360bf9c" }, "downloads": -1, "filename": "bibupdate-1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "e3841ecab8cf9701e6697066e788991e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 25087, "upload_time": "2014-07-23T06:50:19", "url": "https://files.pythonhosted.org/packages/db/d6/44a84e1e0da5566ce5956189fd4e75f121854bf53d7a283f78a21e523b5d/bibupdate-1.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "09e2365cc51732a94ff7c8530d2dda37", "sha256": "95ba288632c4a9cd46666997b992a528b977d7a8b5fbca54941b9ce1efccb90b" }, "downloads": -1, "filename": "bibupdate-1.2.tar.gz", "has_sig": false, "md5_digest": "09e2365cc51732a94ff7c8530d2dda37", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30912, "upload_time": "2014-07-23T06:50:23", "url": "https://files.pythonhosted.org/packages/07/bb/e3d6d4f59be8fe6e45b98cc674140a84d89b8398b4c947cd924f453b7f1e/bibupdate-1.2.tar.gz" } ] }