Skip to content

Commit 97487d2

Browse files
committed
fix: fix a regression of adding comment only line to an array
Fix #223
1 parent a157e59 commit 97487d2

File tree

2 files changed

+14
-3
lines changed

2 files changed

+14
-3
lines changed

tests/test_items.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -475,6 +475,7 @@ def test_array_add_line():
475475
t.add_line(1, 2, 3, comment="Line 1")
476476
t.add_line(4, 5, 6, comment="Line 2")
477477
t.add_line(7, api.ws(","), api.ws(" "), 8, add_comma=False)
478+
t.add_line(comment="Line 4")
478479
t.add_line(indent="")
479480
assert len(t) == 8
480481
assert list(t) == [1, 2, 3, 4, 5, 6, 7, 8]
@@ -484,6 +485,7 @@ def test_array_add_line():
484485
1, 2, 3, # Line 1
485486
4, 5, 6, # Line 2
486487
7, 8,
488+
# Line 4
487489
]"""
488490
)
489491

@@ -864,14 +866,16 @@ def test_table_copy():
864866

865867

866868
def test_copy_copy():
867-
result = parse("""
869+
result = parse(
870+
"""
868871
[tool.poetry]
869872
classifiers = [
870873
# comment
871874
"a",
872875
"b",
873876
]
874-
""")
877+
"""
878+
)
875879
classifiers = result["tool"]["poetry"]["classifiers"]
876880
new = copy.copy(classifiers)
877881
assert new == classifiers

tomlkit/items.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1298,7 +1298,14 @@ def add_line(
12981298
list.extend(self, data_values)
12991299
if len(self._value) > 0:
13001300
last_item = self._value[-1]
1301-
last_value_item = next((v for v in self._value[::-1] if v.value), None)
1301+
last_value_item = next(
1302+
(
1303+
v
1304+
for v in self._value[::-1]
1305+
if v.value is not None and not isinstance(v.value, Null)
1306+
),
1307+
None,
1308+
)
13021309
if last_value_item is not None:
13031310
last_value_item.comma = Whitespace(",")
13041311
if last_item.is_whitespace():

0 commit comments

Comments
 (0)