Skip to content

Commit f131581

Browse files
committed
SparseArray(fix[append]): Handle empty array case
why: Calling append() on an empty SparseArray crashed with ValueError because max() on an empty sequence raises an exception. what: - Use max(self.keys(), default=-1) to return -1 for empty arrays - First append now correctly adds at index 0 - Add doctest demonstrating empty array append behavior
1 parent 862177d commit f131581

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/libtmux/_internal/sparse_array.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,8 +125,15 @@ def append(self, value: T) -> None:
125125
--------
126126
>>> from libtmux._internal.sparse_array import SparseArray
127127
128+
Appending to an empty array starts at index 0:
129+
128130
>>> arr: SparseArray[str] = SparseArray()
129-
>>> arr.add(0, "first")
131+
>>> arr.append("first")
132+
>>> arr[0]
133+
'first'
134+
135+
Appending to a non-empty array adds at max index + 1:
136+
130137
>>> arr.add(5, "at index 5")
131138
>>> arr.append("appended")
132139
>>> arr[6]
@@ -135,7 +142,7 @@ def append(self, value: T) -> None:
135142
>>> arr[7]
136143
'another'
137144
"""
138-
index = max(self.keys()) + 1
145+
index = max(self.keys(), default=-1) + 1
139146
self[index] = value
140147

141148
def iter_values(self) -> t.Iterator[T]:

0 commit comments

Comments
 (0)