Commit feef62e170734a82145c568caa93fb6ca3ba4246

Authored by Jürgen Knödlseder
1 parent f52a79f5

Fix again

Showing 1 changed file with 39 additions and 8 deletions
modules/comscripts/comgendb.py
@@ -160,6 +160,37 @@ class comgendb(ctools.cscript): @@ -160,6 +160,37 @@ class comgendb(ctools.cscript):
160 # Return relative path 160 # Return relative path
161 return relpath 161 return relpath
162 162
  163 + def _sorted(self, elements):
  164 + """
  165 + Sort list of dict according to 'tjd_start'
  166 +
  167 + Parameters
  168 + ----------
  169 + elements : list of dict
  170 + List of dictionary
  171 +
  172 + Returns
  173 + -------
  174 + sorted_elements : list of dict
  175 + Sorted list of dictionary
  176 + """
  177 + # Set Python version that has sorted function and current
  178 + # Python version
  179 + req_version = (2,4)
  180 + cur_version = sys.version_info
  181 +
  182 + # If Python version has sorted the use sorted function
  183 + if cur_version >= req_version:
  184 + sorted_elements = sorted(elements, key=lambda k: k['tjd_start'])
  185 +
  186 + # ... otherwise use sort() with cmp
  187 + else:
  188 + sorted_elements = elements
  189 + sorted_elements.sort(lambda x,y : cmp(x['tjd_start'], y['tjd_start']))
  190 +
  191 + # Return sorted elements
  192 + return sorted_elements
  193 +
163 def _get_evp_list(self): 194 def _get_evp_list(self):
164 """ 195 """
165 Get EVP list 196 Get EVP list
@@ -192,7 +223,7 @@ class comgendb(ctools.cscript): @@ -192,7 +223,7 @@ class comgendb(ctools.cscript):
192 evp_list.extend(evps) 223 evp_list.extend(evps)
193 224
194 # Sort EVP list by start day 225 # Sort EVP list by start day
195 - evp_list.sort(lambda x,y : cmp(x['tjd_start'], y['tjd_start'])) 226 + evp_list = self._sorted(evp_list)
196 227
197 # Return EVP list 228 # Return EVP list
198 return evp_list 229 return evp_list
@@ -274,7 +305,7 @@ class comgendb(ctools.cscript): @@ -274,7 +305,7 @@ class comgendb(ctools.cscript):
274 evp_list.append(evp_dict) 305 evp_list.append(evp_dict)
275 306
276 # Sort EVP list by start day 307 # Sort EVP list by start day
277 - evp_list.sort(lambda x,y : cmp(x['tjd_start'], y['tjd_start'])) 308 + evp_list = self._sorted(evp_list)
278 309
279 # Return EVP list 310 # Return EVP list
280 return evp_list 311 return evp_list
@@ -426,7 +457,7 @@ class comgendb(ctools.cscript): @@ -426,7 +457,7 @@ class comgendb(ctools.cscript):
426 oad_list.extend(oads) 457 oad_list.extend(oads)
427 458
428 # Sort OAD list by start day 459 # Sort OAD list by start day
429 - oad_list.sort(lambda x,y : cmp(x['tjd_start'], y['tjd_start'])) 460 + oad_list = self._sorted(oad_list)
430 461
431 # Return OAD list 462 # Return OAD list
432 return oad_list 463 return oad_list
@@ -488,7 +519,7 @@ class comgendb(ctools.cscript): @@ -488,7 +519,7 @@ class comgendb(ctools.cscript):
488 oad_list.append(oad_dict) 519 oad_list.append(oad_dict)
489 520
490 # Sort OAD list by start day 521 # Sort OAD list by start day
491 - oad_list.sort(lambda x,y : cmp(x['tjd_start'], y['tjd_start'])) 522 + oad_list = self._sorted(oad_list)
492 523
493 # Return OAD list 524 # Return OAD list
494 return oad_list 525 return oad_list
@@ -613,7 +644,7 @@ class comgendb(ctools.cscript): @@ -613,7 +644,7 @@ class comgendb(ctools.cscript):
613 tim_list.extend(tims) 644 tim_list.extend(tims)
614 645
615 # Sort TIM list by start day 646 # Sort TIM list by start day
616 - tim_list.sort(lambda x,y : cmp(x['tjd_start'], y['tjd_start'])) 647 + tim_list = self._sorted(tim_list)
617 648
618 # Return TIM list 649 # Return TIM list
619 return tim_list 650 return tim_list
@@ -675,7 +706,7 @@ class comgendb(ctools.cscript): @@ -675,7 +706,7 @@ class comgendb(ctools.cscript):
675 tim_list.append(tim_dict) 706 tim_list.append(tim_dict)
676 707
677 # Sort TIM list by start day 708 # Sort TIM list by start day
678 - tim_list.sort(lambda x,y : cmp(x['tjd_start'], y['tjd_start'])) 709 + tim_list = self._sorted(tim_list)
679 710
680 # Return TIM list 711 # Return TIM list
681 return tim_list 712 return tim_list
@@ -824,7 +855,7 @@ class comgendb(ctools.cscript): @@ -824,7 +855,7 @@ class comgendb(ctools.cscript):
824 xml_list.append(xml) 855 xml_list.append(xml)
825 856
826 # Sort XML list by start day 857 # Sort XML list by start day
827 - xml_list.sort(lambda x,y : cmp(x['tjd_start'], y['tjd_start'])) 858 + xml_list = self._sorted(xml_list)
828 859
829 # Return XML list 860 # Return XML list
830 return xml_list 861 return xml_list
@@ -1211,7 +1242,7 @@ class comgendb(ctools.cscript): @@ -1211,7 +1242,7 @@ class comgendb(ctools.cscript):
1211 oads.append(oad) 1242 oads.append(oad)
1212 1243
1213 # Sort OAD list by start day 1244 # Sort OAD list by start day
1214 - oads.sort(lambda x,y : cmp(x['tjd_start'], y['tjd_start'])) 1245 + oads = self._sorted(oads)
1215 1246
1216 # Return OADs 1247 # Return OADs
1217 return oads 1248 return oads