From: Vivien Maisonneuve Date: Tue, 19 Aug 2014 13:09:17 +0000 (+0200) Subject: Simplify implementation of Coordinates.__new__() X-Git-Tag: 1.0~46 X-Git-Url: https://scm.cri.mines-paristech.fr/git/linpy.git/commitdiff_plain/48ede349025246bb3a3294f677b633991b69abad?ds=sidebyside Simplify implementation of Coordinates.__new__() --- diff --git a/linpy/geometry.py b/linpy/geometry.py index 43344e4..cc19a72 100644 --- a/linpy/geometry.py +++ b/linpy/geometry.py @@ -85,14 +85,15 @@ class Coordinates: if isinstance(coordinates, Mapping): coordinates = coordinates.items() self = object().__new__(cls) - self._coordinates = OrderedDict() - for symbol, coordinate in sorted(coordinates, - key=lambda item: item[0].sortkey()): + self._coordinates = [] + for symbol, coordinate in coordinates: if not isinstance(symbol, Symbol): raise TypeError('symbols must be Symbol instances') if not isinstance(coordinate, numbers.Real): raise TypeError('coordinates must be real numbers') - self._coordinates[symbol] = coordinate + self._coordinates.append((symbol, coordinate)) + self._coordinates.sort(key=lambda item: item[0].sortkey()) + self._coordinates = OrderedDict(self._coordinates) return self @property