@@ -90,17 +90,18 @@ def reference_unpack(slize):
90
90
raise ValueError ("slice step cannot be zero" )
91
91
return (0 , start , stop , step )
92
92
93
- test_PySlice_Unpack = CPyExtFunction (
94
- lambda arg : TestPySlice .reference_unpack (* arg ),
95
- lambda : (
96
- (slice (0 ,1 ,2 ),),
97
- (slice (0 ,- 1 ),),
98
- (slice (None ,- 1 ,0 ),),
99
- (slice (0 ,1 ,- 1 ),),
100
- (slice (1 ,- 1 ),),
101
- (slice (1 ),),
102
- ),
103
- code = '''PyObject* wrapper_SliceUnpack(PyObject* slice) {
93
+ if sys .version_info .minor >= 6 :
94
+ test_PySlice_Unpack = CPyExtFunction (
95
+ lambda arg : TestPySlice .reference_unpack (* arg ),
96
+ lambda : (
97
+ (slice (0 ,1 ,2 ),),
98
+ (slice (0 ,- 1 ),),
99
+ (slice (None ,- 1 ,0 ),),
100
+ (slice (0 ,1 ,- 1 ),),
101
+ (slice (1 ,- 1 ),),
102
+ (slice (1 ),),
103
+ ),
104
+ code = '''PyObject* wrapper_SliceUnpack(PyObject* slice) {
104
105
Py_ssize_t start, stop, step;
105
106
int result = PySlice_Unpack(slice, &start, &stop, &step);
106
107
if (result < 0) {
@@ -109,12 +110,12 @@ def reference_unpack(slize):
109
110
return Py_BuildValue("iiii", result, start, stop, step);
110
111
}
111
112
''' ,
112
- resultspec = "O" ,
113
- argspec = 'O' ,
114
- callfunction = "wrapper_SliceUnpack" ,
115
- arguments = ["PyObject* slice" ],
116
- cmpfunc = unhandled_error_compare
117
- )
113
+ resultspec = "O" ,
114
+ argspec = 'O' ,
115
+ callfunction = "wrapper_SliceUnpack" ,
116
+ arguments = ["PyObject* slice" ],
117
+ cmpfunc = unhandled_error_compare
118
+ )
118
119
119
120
def reference_adjust (length , start , stop , step ):
120
121
slicelength = - 1
@@ -145,26 +146,27 @@ def reference_adjust(length, start, stop, step):
145
146
return 0 , start , stop
146
147
147
148
148
- test_PySlice_AdjustIndices = CPyExtFunction (
149
- lambda arg : TestPySlice .reference_adjust (* arg ),
150
- lambda : (
151
- (3 ,0 ,- 1 ,1 ),
152
- (3 ,1 ,- 1 ,1 ),
153
- (12 ,- 1 ,- 1 ,- 1 ),
154
- (12 ,- 1 ,0 ,- 1 ),
155
- (12 ,- 1 ,0 ,- 2 ),
156
- (3 ,1 ,- 1 ,2 ),
157
- ),
158
- code = '''PyObject* Slice_AdjustIndices(int length, int sta, int sto, int step) {
149
+ if sys .version_info .minor >= 6 :
150
+ test_PySlice_AdjustIndices = CPyExtFunction (
151
+ lambda arg : TestPySlice .reference_adjust (* arg ),
152
+ lambda : (
153
+ (3 ,0 ,- 1 ,1 ),
154
+ (3 ,1 ,- 1 ,1 ),
155
+ (12 ,- 1 ,- 1 ,- 1 ),
156
+ (12 ,- 1 ,0 ,- 1 ),
157
+ (12 ,- 1 ,0 ,- 2 ),
158
+ (3 ,1 ,- 1 ,2 ),
159
+ ),
160
+ code = '''PyObject* Slice_AdjustIndices(int length, int sta, int sto, int step) {
159
161
Py_ssize_t start = sta;
160
162
Py_ssize_t stop = sto;
161
163
int slicelength = PySlice_AdjustIndices(length, &start, &stop, step);
162
164
return Py_BuildValue("iii", slicelength, start, stop);
163
165
}
164
166
''' ,
165
- resultspec = "O" ,
166
- argspec = 'iiii' ,
167
- callfunction = "Slice_AdjustIndices" ,
168
- arguments = ["int length" , "int start" , "int stop" , "int step" ],
169
- cmpfunc = unhandled_error_compare
170
- )
167
+ resultspec = "O" ,
168
+ argspec = 'iiii' ,
169
+ callfunction = "Slice_AdjustIndices" ,
170
+ arguments = ["int length" , "int start" , "int stop" , "int step" ],
171
+ cmpfunc = unhandled_error_compare
172
+ )
0 commit comments