X-Git-Url: https://scm.cri.minesparis.psl.eu/git/linpy.git/blobdiff_plain/af70cb24e2db153fa0afad42296cc1528b82b2a2..c3149dd6dbf0dd296c85676fcf9f997ead2470f0:/linpy/geometry.py?ds=sidebyside

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