Using default misc format for undefined entry types

Issue #126 new
Zeping Lee created an issue

Environment: Python 3.6 on macOS

Pybtex: 0.22.2

Bib file test.bib:

@foo{bar,
  author       = {Author},
  title        = {Title},
  year         = 2005,
}

Aux file test.aux:

\relax
\bibstyle{unsrt}
\citation{*}
\bibdata{test}

Command:

pybtex --style-language python test

Output:

Traceback (most recent call last):
  File "/usr/local/miniconda3/lib/python3.6/site-packages/pybtex/style/formatting/__init__.py", line 67, in format_entry
    get_template = getattr(self, 'get_{}_template'.format(entry.type))
AttributeError: 'Style' object has no attribute 'get_foo_template'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/miniconda3/bin/pybtex", line 10, in <module>
    sys.exit(main())
  File "/usr/local/miniconda3/lib/python3.6/site-packages/pybtex/cmdline.py", line 181, in __call__
    self.main()
  File "/usr/local/miniconda3/lib/python3.6/site-packages/pybtex/cmdline.py", line 245, in main
    self.run(*args, **kwargs)
  File "/usr/local/miniconda3/lib/python3.6/site-packages/pybtex/__main__.py", line 114, in run
    engine.make_bibliography(filename, **options)
  File "/usr/local/miniconda3/lib/python3.6/site-packages/pybtex/__init__.py", line 177, in make_bibliography
    return PybtexEngine().make_bibliography(*args, **kwargs)
  File "/usr/local/miniconda3/lib/python3.6/site-packages/pybtex/__init__.py", line 58, in make_bibliography
    **kwargs
  File "/usr/local/miniconda3/lib/python3.6/site-packages/pybtex/__init__.py", line 164, in format_from_files
    formatted_bibliography = style.format_bibliography(bib_data, citations)
  File "/usr/local/miniconda3/lib/python3.6/site-packages/pybtex/style/formatting/__init__.py", line 89, in format_bibliography
    formatted_bibliography = FormattedBibliography(formatted_entries, style=self, preamble=bib_data.preamble)
  File "/usr/local/miniconda3/lib/python3.6/site-packages/pybtex/style/__init__.py", line 39, in __init__
    self.entries = list(entries)
  File "/usr/local/miniconda3/lib/python3.6/site-packages/pybtex/style/formatting/__init__.py", line 58, in format_entries
    yield self.format_entry(label, entry, bib_data=bib_data)
  File "/usr/local/miniconda3/lib/python3.6/site-packages/pybtex/style/formatting/__init__.py", line 69, in format_entry
    format_method = getattr(self, "format_" + entry.type)
AttributeError: 'Style' object has no attribute 'format_foo'

As described in the BibTeX doc, "misc" type is used when nothing else fits and bibtex test gives:

This is BibTeX, Version 0.99d (TeX Live 2018)
The top-level auxiliary file: test.aux
The style file: unsrt.bst
Database file #1: test.bib
Warning--entry type for "bar" isn't style-file defined
--line 1 of file test.bib
(There was 1 warning)

Comments (0)

  1. Log in to comment