File tree 2 files changed +2
-28
lines changed
2 files changed +2
-28
lines changed Original file line number Diff line number Diff line change @@ -561,34 +561,7 @@ def _normalize_slice(object arrow_obj, slice key):
561
561
Py_ssize_t start, stop, step
562
562
Py_ssize_t n = len (arrow_obj)
563
563
564
- step = key.step or 1
565
-
566
- if key.start is None :
567
- if step < 0 :
568
- start = n - 1
569
- else :
570
- start = 0
571
- elif key.start < 0 :
572
- start = key.start + n
573
- if start < 0 :
574
- start = 0
575
- elif key.start >= n:
576
- start = n
577
- else :
578
- start = key.start
579
-
580
- if step < 0 and (key.stop is None or key.stop < - n):
581
- stop = - 1
582
- elif key.stop is None :
583
- stop = n
584
- elif key.stop < 0 :
585
- stop = key.stop + n
586
- if stop < 0 : # step > 0 in this case.
587
- stop = 0
588
- elif key.stop >= n:
589
- stop = n
590
- else :
591
- stop = key.stop
564
+ start, stop, step = key.indices(n)
592
565
593
566
if step != 1 :
594
567
indices = np.arange(start, stop, step)
Original file line number Diff line number Diff line change @@ -486,6 +486,7 @@ def test_array_slice_negative_step():
486
486
slice (None , None , 2 ),
487
487
slice (0 , 10 , 2 ),
488
488
slice (15 , - 25 , - 1 ), # GH-38768
489
+ slice (- 22 , - 22 , - 1 ), # GH-40642
489
490
]
490
491
491
492
for case in cases :
You can’t perform that action at this time.
0 commit comments