Commit 6b5dc974f7fb1a2293f889654ed4733ddfebf2e7
1 parent
6c98f13f
Correct container slicing code for Python >= 3.2
Showing
19 changed files
with
76 additions
and
0 deletions
inst/cta/pyext/GCTAEventList.i
| ... | ... | @@ -110,7 +110,11 @@ public: |
| 110 | 110 | Py_ssize_t stop = 0; |
| 111 | 111 | Py_ssize_t step = 0; |
| 112 | 112 | Py_ssize_t len = self->size(); |
| 113 | + #if PY_VERSION_HEX >= 0x03020000 | |
| 114 | + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { | |
| 115 | + #else | |
| 113 | 116 | if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { |
| 117 | + #endif | |
| 114 | 118 | GCTAEventList* list = new GCTAEventList; |
| 115 | 119 | if (step > 0) { |
| 116 | 120 | for (int i = (int)start; i < (int)stop; i += (int)step) { | ... | ... |
inst/lat/pyext/GLATEventList.i
| ... | ... | @@ -88,7 +88,11 @@ public: |
| 88 | 88 | Py_ssize_t stop = 0; |
| 89 | 89 | Py_ssize_t step = 0; |
| 90 | 90 | Py_ssize_t len = self->size(); |
| 91 | + #if PY_VERSION_HEX >= 0x03020000 | |
| 92 | + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { | |
| 93 | + #else | |
| 91 | 94 | if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { |
| 95 | + #endif | |
| 92 | 96 | GLATEventList* list = new GLATEventList; |
| 93 | 97 | if (step > 0) { |
| 94 | 98 | for (int i = (int)start; i < (int)stop; i += (int)step) { | ... | ... |
pyext/GApplicationPars.i
| ... | ... | @@ -97,7 +97,11 @@ public: |
| 97 | 97 | Py_ssize_t stop = 0; |
| 98 | 98 | Py_ssize_t step = 0; |
| 99 | 99 | Py_ssize_t len = self->size(); |
| 100 | + #if PY_VERSION_HEX >= 0x03020000 | |
| 101 | + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { | |
| 102 | + #else | |
| 100 | 103 | if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { |
| 104 | + #endif | |
| 101 | 105 | GApplicationPars* pars = new GApplicationPars; |
| 102 | 106 | if (step > 0) { |
| 103 | 107 | for (int i = (int)start; i < (int)stop; i += (int)step) { | ... | ... |
pyext/GEbounds.i
| ... | ... | @@ -99,7 +99,11 @@ public: |
| 99 | 99 | Py_ssize_t stop = 0; |
| 100 | 100 | Py_ssize_t step = 0; |
| 101 | 101 | Py_ssize_t len = self->size(); |
| 102 | + #if PY_VERSION_HEX >= 0x03020000 | |
| 103 | + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { | |
| 104 | + #else | |
| 102 | 105 | if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { |
| 106 | + #endif | |
| 103 | 107 | GEbounds* ebounds = new GEbounds; |
| 104 | 108 | if (step > 0) { |
| 105 | 109 | for (int i = (int)start; i < (int)stop; i += (int)step) { | ... | ... |
pyext/GEnergies.i
| ... | ... | @@ -97,7 +97,11 @@ public: |
| 97 | 97 | Py_ssize_t stop = 0; |
| 98 | 98 | Py_ssize_t step = 0; |
| 99 | 99 | Py_ssize_t len = self->size(); |
| 100 | + #if PY_VERSION_HEX >= 0x03020000 | |
| 101 | + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { | |
| 102 | + #else | |
| 100 | 103 | if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { |
| 104 | + #endif | |
| 101 | 105 | GEnergies* energies = new GEnergies; |
| 102 | 106 | if (step > 0) { |
| 103 | 107 | for (int i = (int)start; i < (int)stop; i += (int)step) { | ... | ... |
pyext/GFits.i
| ... | ... | @@ -123,7 +123,11 @@ public: |
| 123 | 123 | Py_ssize_t stop = 0; |
| 124 | 124 | Py_ssize_t step = 0; |
| 125 | 125 | Py_ssize_t len = self->size(); |
| 126 | + #if PY_VERSION_HEX >= 0x03020000 | |
| 127 | + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { | |
| 128 | + #else | |
| 126 | 129 | if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { |
| 130 | + #endif | |
| 127 | 131 | GFits* fits = new GFits; |
| 128 | 132 | if (step > 0) { |
| 129 | 133 | for (int i = (int)start; i < (int)stop; i += (int)step) { | ... | ... |
pyext/GFitsHeader.i
| ... | ... | @@ -98,7 +98,11 @@ public: |
| 98 | 98 | Py_ssize_t stop = 0; |
| 99 | 99 | Py_ssize_t step = 0; |
| 100 | 100 | Py_ssize_t len = self->size(); |
| 101 | + #if PY_VERSION_HEX >= 0x03020000 | |
| 102 | + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { | |
| 103 | + #else | |
| 101 | 104 | if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { |
| 105 | + #endif | |
| 102 | 106 | GFitsHeader* header = new GFitsHeader; |
| 103 | 107 | if (step > 0) { |
| 104 | 108 | for (int i = (int)start; i < (int)stop; i += (int)step) { | ... | ... |
pyext/GGti.i
| ... | ... | @@ -91,7 +91,11 @@ public: |
| 91 | 91 | Py_ssize_t stop = 0; |
| 92 | 92 | Py_ssize_t step = 0; |
| 93 | 93 | Py_ssize_t len = self->size(); |
| 94 | + #if PY_VERSION_HEX >= 0x03020000 | |
| 95 | + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { | |
| 96 | + #else | |
| 94 | 97 | if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { |
| 98 | + #endif | |
| 95 | 99 | GGti* gti = new GGti; |
| 96 | 100 | if (step > 0) { |
| 97 | 101 | for (int i = (int)start; i < (int)stop; i += (int)step) { | ... | ... |
pyext/GModels.i
| ... | ... | @@ -101,7 +101,11 @@ public: |
| 101 | 101 | Py_ssize_t stop = 0; |
| 102 | 102 | Py_ssize_t step = 0; |
| 103 | 103 | Py_ssize_t len = self->size(); |
| 104 | + #if PY_VERSION_HEX >= 0x03020000 | |
| 105 | + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { | |
| 106 | + #else | |
| 104 | 107 | if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { |
| 108 | + #endif | |
| 105 | 109 | GModels* models = new GModels; |
| 106 | 110 | if (step > 0) { |
| 107 | 111 | for (int i = (int)start; i < (int)stop; i += (int)step) { | ... | ... |
pyext/GNodeArray.i
| ... | ... | @@ -104,7 +104,11 @@ public: |
| 104 | 104 | Py_ssize_t stop = 0; |
| 105 | 105 | Py_ssize_t step = 0; |
| 106 | 106 | Py_ssize_t len = self->size(); |
| 107 | + #if PY_VERSION_HEX >= 0x03020000 | |
| 108 | + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { | |
| 109 | + #else | |
| 107 | 110 | if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { |
| 111 | + #endif | |
| 108 | 112 | GNodeArray* nodes = new GNodeArray; |
| 109 | 113 | if (step > 0) { |
| 110 | 114 | for (int i = (int)start; i < (int)stop; i += (int)step) { | ... | ... |
pyext/GObservations.i
| ... | ... | @@ -126,7 +126,11 @@ typedef GObservations::likelihood likelihood; |
| 126 | 126 | Py_ssize_t stop = 0; |
| 127 | 127 | Py_ssize_t step = 0; |
| 128 | 128 | Py_ssize_t len = self->size(); |
| 129 | + #if PY_VERSION_HEX >= 0x03020000 | |
| 130 | + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { | |
| 131 | + #else | |
| 129 | 132 | if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { |
| 133 | + #endif | |
| 130 | 134 | GObservations* obs = new GObservations; |
| 131 | 135 | obs->models(self->models()); // Copy over model container |
| 132 | 136 | if (step > 0) { | ... | ... |
pyext/GOptimizerPars.i
| ... | ... | @@ -93,7 +93,11 @@ public: |
| 93 | 93 | Py_ssize_t stop = 0; |
| 94 | 94 | Py_ssize_t step = 0; |
| 95 | 95 | Py_ssize_t len = self->size(); |
| 96 | + #if PY_VERSION_HEX >= 0x03020000 | |
| 97 | + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { | |
| 98 | + #else | |
| 96 | 99 | if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { |
| 100 | + #endif | |
| 97 | 101 | GOptimizerPars* pars = new GOptimizerPars; |
| 98 | 102 | if (step > 0) { |
| 99 | 103 | for (int i = (int)start; i < (int)stop; i += (int)step) { | ... | ... |
pyext/GPhases.i
| ... | ... | @@ -69,7 +69,11 @@ public: |
| 69 | 69 | Py_ssize_t stop = 0; |
| 70 | 70 | Py_ssize_t step = 0; |
| 71 | 71 | Py_ssize_t len = self->size(); |
| 72 | + #if PY_VERSION_HEX >= 0x03020000 | |
| 73 | + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { | |
| 74 | + #else | |
| 72 | 75 | if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { |
| 76 | + #endif | |
| 73 | 77 | GPhases* phases = new GPhases; |
| 74 | 78 | if (step > 0) { |
| 75 | 79 | for (int i = (int)start; i < (int)stop; i += (int)step) { | ... | ... |
pyext/GPhotons.i
| ... | ... | @@ -78,7 +78,11 @@ public: |
| 78 | 78 | Py_ssize_t stop = 0; |
| 79 | 79 | Py_ssize_t step = 0; |
| 80 | 80 | Py_ssize_t len = self->size(); |
| 81 | + #if PY_VERSION_HEX >= 0x03020000 | |
| 82 | + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { | |
| 83 | + #else | |
| 81 | 84 | if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { |
| 85 | + #endif | |
| 82 | 86 | GPhotons* photons = new GPhotons; |
| 83 | 87 | if (step > 0) { |
| 84 | 88 | for (int i = (int)start; i < (int)stop; i += (int)step) { | ... | ... |
pyext/GSkyRegions.i
| ... | ... | @@ -86,7 +86,11 @@ public: |
| 86 | 86 | Py_ssize_t stop = 0; |
| 87 | 87 | Py_ssize_t step = 0; |
| 88 | 88 | Py_ssize_t len = self->size(); |
| 89 | + #if PY_VERSION_HEX >= 0x03020000 | |
| 90 | + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { | |
| 91 | + #else | |
| 89 | 92 | if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { |
| 93 | + #endif | |
| 90 | 94 | GSkyRegions* regions = new GSkyRegions; |
| 91 | 95 | if (step > 0) { |
| 92 | 96 | for (int i = (int)start; i < (int)stop; i += (int)step) { | ... | ... |
pyext/GTestSuites.i
| ... | ... | @@ -91,7 +91,11 @@ public: |
| 91 | 91 | Py_ssize_t stop = 0; |
| 92 | 92 | Py_ssize_t step = 0; |
| 93 | 93 | Py_ssize_t len = self->size(); |
| 94 | + #if PY_VERSION_HEX >= 0x03020000 | |
| 95 | + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { | |
| 96 | + #else | |
| 94 | 97 | if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { |
| 98 | + #endif | |
| 95 | 99 | GTestSuites* tests = new GTestSuites(self->name()); |
| 96 | 100 | if (step > 0) { |
| 97 | 101 | for (int i = (int)start; i < (int)stop; i += (int)step) { | ... | ... |
pyext/GTimes.i
| ... | ... | @@ -80,7 +80,11 @@ public: |
| 80 | 80 | Py_ssize_t stop = 0; |
| 81 | 81 | Py_ssize_t step = 0; |
| 82 | 82 | Py_ssize_t len = self->size(); |
| 83 | + #if PY_VERSION_HEX >= 0x03020000 | |
| 84 | + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { | |
| 85 | + #else | |
| 83 | 86 | if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { |
| 87 | + #endif | |
| 84 | 88 | GTimes* times = new GTimes; |
| 85 | 89 | if (step > 0) { |
| 86 | 90 | for (int i = (int)start; i < (int)stop; i += (int)step) { | ... | ... |
pyext/GXml.i
| ... | ... | @@ -92,7 +92,11 @@ public: |
| 92 | 92 | Py_ssize_t stop = 0; |
| 93 | 93 | Py_ssize_t step = 0; |
| 94 | 94 | Py_ssize_t len = self->size(); |
| 95 | + #if PY_VERSION_HEX >= 0x03020000 | |
| 96 | + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { | |
| 97 | + #else | |
| 95 | 98 | if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { |
| 99 | + #endif | |
| 96 | 100 | GXml* xml = new GXml; |
| 97 | 101 | if (step > 0) { |
| 98 | 102 | for (int i = (int)start; i < (int)stop; i += (int)step) { | ... | ... |
pyext/GXmlElement.i
| ... | ... | @@ -93,7 +93,11 @@ public: |
| 93 | 93 | Py_ssize_t stop = 0; |
| 94 | 94 | Py_ssize_t step = 0; |
| 95 | 95 | Py_ssize_t len = self->size(); |
| 96 | + #if PY_VERSION_HEX >= 0x03020000 | |
| 97 | + if (PySlice_GetIndices(param, len, &start, &stop, &step) == 0) { | |
| 98 | + #else | |
| 96 | 99 | if (PySlice_GetIndices((PySliceObject*)param, len, &start, &stop, &step) == 0) { |
| 100 | + #endif | |
| 97 | 101 | GXmlElement* element = new GXmlElement; |
| 98 | 102 | if (step > 0) { |
| 99 | 103 | for (int i = (int)start; i < (int)stop; i += (int)step) { | ... | ... |