Pybtex Changelog

What's new in Pybtex 0.18

Jul 7, 2014
  • Pybtex is now fully case-insensitive (like BibTeX). As a consequence, IEEEtran styles now work corretly.
  • Added --preserve-case optoin to pybtex-convert (by default all identifiers are converted to lower case).
  • An erorr is reported if two citations have the same key but different case, like in BibTeX. (Example: ddt1999 and DDT1999).
  • Fixed parsing unused bibliography entries with strings containing @ characters.
  • entry.max$ constant is now set to 250, global.max$ is set to 20000, like in BibTeX.
  • Added --strict option to pybtex-convert and pybtex-format (turns warning to errors).
  • Strict mode is now enabled by default when using pybtex as a library (exceptions are raised on all errors instead of just printing warnings to stderr).
  • Non-strict error handling is still enabled when using pybtex from the command line, for compatibility with BibTeX. Use --strict option if you don't like this.
  • Added missing pybtex-format manpage.

New in Pybtex 0.17 (Apr 10, 2014)

  • Added pybtex-format utility for formatting bibliography files as HTML, LaTeX, and other supported human-readable formats.
  • Added --strict command line option (all warnings become errors).
  • Added alpha label style, and alpha and unsrtalpha formatting styles.
  • Added support for url, eprint, doi, and pubmed fields in unsrt style.
  • Names with hyphens are now abbreviated correctly ("Jean-Baptiste" becomes "J.-B.").
  • width$ now uses cmr10 font metrics, like in BibTeX. Non-latin characters are also supported.
  • Pythonic style engine now supports @preamble commands.
  • Warning on missing fields are now more human-readable.
  • When writing BibTeX files, put entry key on the same line with entry type. Fixes warnings in Jabref.
  • When using multiple .bib files, macros defined in earlier files are available in subsequent ones (like in BibTeX).
  • Fixed parsing .bst files with lines consisting of a single % character.
  • Fixed sorting entries without author in author_year_title sorting style.
  • Fixed broken CaseInsensitiveDict.get().
  • CaseInsensitiveDict is now pickleable.
  • Added support for registering plugins at runtime with pybtex.plugin.register_plugin() - useful for using pybtex as a library.

New in Pybtex 0.16 (Apr 10, 2014)

  • BibTeX .bib and .bst parsers were completely rewritten. They are now much faster and more BibTeX-compatible.
  • Syntax errors and undefined strings in .bib files now result in warnings instead of errors, like in BibTeX.
  • Unused entries in .bib files are now skipped, like in BibTeX.
  • The case of entry keys is now preserved (in previous versions they were converted to lowercase).
  • Pythonic style engine now supports sorting.
  • Pythonic style engine: fixed nested optional() blocks.
  • Fixed parsing of some names with a Last part but no von part.
  • Fixed processing of brace-level-one "special characters" in purify$ BibTeX built-in function.
  • Added proper error messages on encoding errors in .bib files.
  • The default encoding is now UTF-8 on all platforms.
  • pybtex-convert now preserves the order of entries in BibTeX and BibTeXML files.
  • The following changes were contributed by Matthias C. M. Troffaes:
  • Fixed first_of behavior when non-empty child is followed by a child that has a missing field.
  • Fixed crossref lookups when key is not lower case.
  • Completed unsrt and plain python styles: they now contain all entry types.
  • Added doctree backend for rendering into a tree of docutils nodes.
  • Added support for non-string backends.

New in Pybtex 0.15 (Apr 10, 2014)

  • Changed license from GPL-3 to MIT.
  • Added support for setuptools plugins.
  • BibTeX parser: fixed whitespace normalization in concatenated strings.
  • BibTeX parser: when parsing multiple BibTeX files, macros defined in earlier files are now available to all subsequent files, like in BibTeX.
  • BibTeX .bst interpreter now prints warnings on missing entries, like BibTeX, instead of raising a KeyError.
  • call.type$ BibTeX built-in function now uses default.entry for unknown entry types, like in BibTeX.
  • substring$ now accepts start=0 and returns an empty string.
  • change.case$: fixed incorrect formatting of strings starting with special characters with "t" format.
  • Fixed abbreviation of names starting with special characters or non-alphabetic characters.
  • Fixed incorrect entry order and duplicated entries with \nocite{*}.
  • Added more detailed error messages for already defined variables in .bst files.

New in Pybtex 0.14.1 (Apr 10, 2014)

  • Added missing custom_fixers directory to the tarball - needed only for converting the sources to Python 3.

New in Pybtex 0.14 (Apr 10, 2014)

  • BibTeX writer: fixed quoting " (double quote) characters.
  • BibTeX parser now produces human-readable error messages on unread macros.
  • Added error messages on missing data in .aux files.
  • Improved performance on very long name lists.
  • Added support for Python 3.

New in Pybtex 0.13.2 (Jun 10, 2010)

  • BibTeX parser: fixed a bug with parsing strings containing braces, like "Error in {DNA}".

New in Pybtex 0.12 (Nov 30, 2009)

  • Pybtex now works correctly with input{filename} in LaTeX files.
  • Added a proper change.case$ BibTeX function instead of a stub.
  • Added -e/--encoding command line option.
  • Fixed non-working --bibtex-encoding option.
  • Added proper error messages on missing plugins, file IO errors, some BibTeX interpreter errors, etc.
  • Fallback to backslash-encoding when printing messages to the console - to make them printable regardless of the locale.

New in Pybtex 0.10 (Aug 24, 2009)

  • Added support for multiple bibliography databases.
  • Pythonic bibliography formatter: added helper functions to simplify writing BibTeX-like name formatting styles in Python. Added a tool for automatic conversion of BibTeX {ll}{, ff}-like patterns into Python.
  • BibTeX parser: added missing characters to the caracter set of the valid identifiers.
  • BibTeX parser: a comma is now allowed between the last field and the closing brace.
  • BibTeX name parser: when splitting name parts into words, whitespace at brace level > 0 is now ignored.
  • BibTeX name parser: fixed parsing of single-word lowercase names and complex von names, like in "Andrea de Leeuw van Weenen".
  • Fixed broken --label-style and --name-style options.
  • Added (autogenerated) manpages.
  • Added this changelog.