Implementation of Symbol.sortkey()
[linpy.git] / pypol / linexprs.py
index 9a1ed64..73c6b0e 100644 (file)
@@ -61,7 +61,7 @@ class Expression:
         self = object().__new__(cls)
         self._coefficients = OrderedDict()
         for symbol, coefficient in sorted(coefficients,
         self = object().__new__(cls)
         self._coefficients = OrderedDict()
         for symbol, coefficient in sorted(coefficients,
-                key=lambda item: item[0].name):
+                key=lambda item: item[0].sortkey()):
             if isinstance(coefficient, Rational):
                 coefficient = coefficient.constant
             if not isinstance(coefficient, numbers.Rational):
             if isinstance(coefficient, Rational):
                 coefficient = coefficient.constant
             if not isinstance(coefficient, numbers.Rational):
@@ -380,6 +380,9 @@ class Symbol(Expression):
     def dimension(self):
         return 1
 
     def dimension(self):
         return 1
 
+    def sortkey(self):
+        return self.name,
+
     def issymbol(self):
         return True
 
     def issymbol(self):
         return True