Skip to content

Commit 8810f8c

Browse files
committed
simplify size < 0 check
1 parent dec950d commit 8810f8c

1 file changed

Lines changed: 10 additions & 21 deletions

File tree

holoviews/operation/element.py

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1274,19 +1274,12 @@ def _get_dtype(obj):
12741274
return "O"
12751275
return dtype
12761276

1277-
@classmethod
1278-
def _empty_plot(cls, x, values):
1279-
empty_x = np.empty(0, dtype=x.dtype if hasattr(x, "dtype") else float)
1280-
empty_vals = tuple(np.empty(0, dtype=cls._get_dtype(v)) for v in values)
1281-
return empty_x, empty_vals
1282-
12831277
@classmethod
12841278
def pts_to_prestep(cls, x, values):
1285-
if len(x) == 0:
1286-
return cls._empty_plot(x, values)
1287-
1288-
steps = np.zeros(2 * len(x) - 1)
1289-
value_steps = tuple(np.empty(2 * len(x) - 1, dtype=cls._get_dtype(v)) for v in values)
1279+
# Make sure `size` is never < 0. See https://github.com/holoviz/holoviews/issues/6893
1280+
size = max(2 * len(x) - 1, 0)
1281+
steps = np.zeros(size)
1282+
value_steps = tuple(np.empty(size, dtype=cls._get_dtype(v)) for v in values)
12901283

12911284
steps[0::2] = x
12921285
steps[1::2] = steps[0:-2:2]
@@ -1301,14 +1294,12 @@ def pts_to_prestep(cls, x, values):
13011294

13021295
@classmethod
13031296
def pts_to_midstep(cls, x, values):
1304-
if len(x) == 0:
1305-
return cls._empty_plot(x, values)
1306-
13071297
steps = np.zeros(2 * len(x))
13081298
value_steps = tuple(np.empty(2 * len(x), dtype=cls._get_dtype(v)) for v in values)
13091299

1310-
steps[1:-1:2] = steps[2::2] = x[:-1] + (x[1:] - x[:-1]) / 2
1311-
steps[0], steps[-1] = x[0], x[-1]
1300+
if len(x):
1301+
steps[1:-1:2] = steps[2::2] = x[:-1] + (x[1:] - x[:-1]) / 2
1302+
steps[0], steps[-1] = x[0], x[-1]
13121303

13131304
val_arrays = []
13141305
for v, s in zip(values, value_steps, strict=True):
@@ -1320,11 +1311,9 @@ def pts_to_midstep(cls, x, values):
13201311

13211312
@classmethod
13221313
def pts_to_poststep(cls, x, values):
1323-
if len(x) == 0:
1324-
return cls._empty_plot(x, values)
1325-
1326-
steps = np.zeros(2 * len(x) - 1)
1327-
value_steps = tuple(np.empty(2 * len(x) - 1, dtype=cls._get_dtype(v)) for v in values)
1314+
size = max(2 * len(x) - 1, 0)
1315+
steps = np.zeros(size)
1316+
value_steps = tuple(np.empty(size, dtype=cls._get_dtype(v)) for v in values)
13281317

13291318
steps[0::2] = x
13301319
steps[1::2] = steps[2::2]

0 commit comments

Comments
 (0)