Commit 6b5dc974f7fb1a2293f889654ed4733ddfebf2e7

Authored by Jürgen Knödlseder
1 parent 6c98f13f

Correct container slicing code for Python >= 3.2

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