From 48ede349025246bb3a3294f677b633991b69abad Mon Sep 17 00:00:00 2001 From: Vivien Maisonneuve Date: Tue, 19 Aug 2014 15:09:17 +0200 Subject: [PATCH] Simplify implementation of Coordinates.__new__() --- linpy/geometry.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) 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 -- 2.20.1