Skip to content

Commit f84e318

Browse files
MiWeisstdsimao
andauthored
🐛 no empty extra line at end of generated files
* use str join to avoid inserting extra entry separator * remove extra line from tests Co-authored-by: tdsimao <tdsimao@users.noreply.github.com>
1 parent 9e9f87e commit f84e318

13 files changed

Lines changed: 9 additions & 26 deletions

bibtexparser/bwriter.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,6 @@ def write(self, bib_database):
9797
return bibtex
9898

9999
def _entries_to_bibtex(self, bib_database):
100-
bibtex = ''
101100
if self.order_entries_by:
102101
# TODO: allow sort field does not exist for entry
103102
entries = sorted(bib_database.entries, key=lambda x: BibDatabase.entry_sort_key(x, self.order_entries_by))
@@ -109,9 +108,7 @@ def _entries_to_bibtex(self, bib_database):
109108
widths = [max(map(len, entry.keys())) for entry in entries]
110109
self._max_field_width = max(widths)
111110

112-
for entry in entries:
113-
bibtex += self._entry_to_bibtex(entry)
114-
return bibtex
111+
return self.entry_separator.join(self._entry_to_bibtex(entry) for entry in entries)
115112

116113
def _entry_to_bibtex(self, entry):
117114
bibtex = ''
@@ -143,7 +140,7 @@ def _entry_to_bibtex(self, entry):
143140
bibtex += '\n'+self.indent+','
144141
else:
145142
bibtex += ','
146-
bibtex += "\n}\n" + self.entry_separator
143+
bibtex += "\n}\n"
147144
return bibtex
148145

149146
def _comments_to_bibtex(self, bib_database):

bibtexparser/tests/data/article_comma_first.bib

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,4 @@ @ARTICLE{ Baltazar2013
1616
, journal = {Nice Journal}
1717
, comments = {A comment}
1818
, keyword = {keyword1, keyword2}}
19+

bibtexparser/tests/data/article_comma_first_and_trailing_comma_output.bib

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,3 @@ @article{Cesar2013
1212
, year = {2013}
1313
,
1414
}
15-

bibtexparser/tests/data/article_output.bib

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,3 @@ @article{Cesar2013
1111
volume = {12},
1212
year = {2013}
1313
}
14-

bibtexparser/tests/data/article_trailing_comma_output.bib

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,3 @@ @article{Cesar2013
1111
volume = {12},
1212
year = {2013},
1313
}
14-

bibtexparser/tests/data/article_with_annotation_output.bib

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,3 @@ @article{Cesar2013
1212
volume = {12},
1313
year = {2013}
1414
}
15-

bibtexparser/tests/data/article_with_strings_output.bib

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,3 @@ @article{Cesar2013
1515
volume = {12},
1616
year = {2013}
1717
}
18-

bibtexparser/tests/data/book_comma_first.bib

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,3 @@ @book{Bird1987
66
, volume = {1}
77
, year = {1987}
88
}
9-

bibtexparser/tests/data/book_output.bib

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,3 @@ @book{Bird1987
66
volume = {1},
77
year = {1987}
88
}
9-

bibtexparser/tests/data/multiple_entries_and_comments_output.bib

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,3 @@ @book{Yablon2005
2626
title = {Optical fiber fusion slicing},
2727
year = {2005}
2828
}
29-

0 commit comments

Comments
 (0)