Skip to content

Commit 6203d79

Browse files
Use tuple as SliceLiteral.key and add minor formatting, test changes
1 parent 68f7665 commit 6203d79

4 files changed

Lines changed: 22 additions & 11 deletions

File tree

‎numba/core/types/misc.py‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,8 @@ def __init__(self, value):
336336

337337
@property
338338
def key(self):
339-
return self.name
339+
sl = self.literal_value
340+
return sl.start, sl.stop, sl.step
340341

341342

342343
Literal.ctor_map[slice] = SliceLiteral

‎numba/cpython/slicing.py‎

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -150,8 +150,13 @@ def get_defaults(context):
150150

151151
@lower_builtin(slice, types.VarArg(types.Any))
152152
def slice_constructor_impl(context, builder, sig, args):
153-
default_start_pos, default_start_neg, default_stop_pos, default_stop_neg, default_step = \
154-
[context.get_constant(types.intp, x) for x in get_defaults(context)]
153+
(
154+
default_start_pos,
155+
default_start_neg,
156+
default_stop_pos,
157+
default_stop_neg,
158+
default_step,
159+
) = [context.get_constant(types.intp, x) for x in get_defaults(context)]
155160

156161
slice_args = [None] * 3
157162

@@ -239,8 +244,13 @@ def make_slice_from_constant(context, builder, ty, pyval):
239244
sli = context.make_helper(builder, ty)
240245
lty = context.get_value_type(types.intp)
241246

242-
default_start_pos, default_start_neg, default_stop_pos, default_stop_neg, default_step = \
243-
[context.get_constant(types.intp, x) for x in get_defaults(context)]
247+
(
248+
default_start_pos,
249+
default_start_neg,
250+
default_stop_pos,
251+
default_stop_neg,
252+
default_step,
253+
) = [context.get_constant(types.intp, x) for x in get_defaults(context)]
244254

245255
step = pyval.step
246256
if step is None:

‎numba/tests/test_parfors.py‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3439,16 +3439,16 @@ def test_parfor_array_access_lower_slice(self):
34393439
slice(None, None, None), slice(None, None, -2)]:
34403440

34413441
def test_impl(n):
3442-
X = np.ones((n, 3))
3442+
X = np.arange(n * 4).reshape((n, 4))
34433443
y = 0
34443444
for i in numba.prange(n):
34453445
y += X[i, ts].sum()
34463446
return y
34473447

3448-
n = 211
3448+
n = 10
34493449
self.check(test_impl, n)
34503450

3451-
X = np.ones((211, 3))
3451+
X = np.arange(n * 4).reshape((n, 4))
34523452

34533453
def test_impl(X):
34543454
y = 0

‎numba/tests/test_slices.py‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ def test_slice_indices_examples(self):
185185
str(e.exception)
186186
)
187187

188-
def test_slice_constant_lowering(self):
188+
def test_slice_from_constant(self):
189189
for ts in [slice(1, 3, None), slice(2, None, None), slice(None, 2, -1),
190190
slice(None, None, None), slice(None, None, -2)]:
191191
test_tuple = (1, 2, 3, 4)
@@ -194,13 +194,13 @@ def test_slice_constant_lowering(self):
194194
def test_fn():
195195
return test_tuple[ts]
196196

197-
assert test_fn() == test_tuple[ts]
197+
self.assertEqual(test_fn(), test_fn.py_func())
198198

199199
def test_literal_slice_distinct(self):
200200
sl1 = types.misc.SliceLiteral(slice(1, None, None))
201201
sl2 = types.misc.SliceLiteral(slice(None, None, None))
202202

203-
assert sl1 != sl2
203+
self.assertNotEqual(sl1, sl2)
204204

205205

206206
if __name__ == '__main__':

0 commit comments

Comments
 (0)