Using default misc format for undefined entry types
Issue #126
new
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)