Make LinExpr.coefficient() always return a Fraction
[linpy.git] / linpy / linexprs.py
index 38fa7a1..99ad4ec 100644 (file)
@@ -122,7 +122,7 @@ class LinExpr:
         """
         if not isinstance(symbol, Symbol):
             raise TypeError('symbol must be a Symbol instance')
-        return Rational(self._coefficients.get(symbol, 0))
+        return self._coefficients.get(symbol, Fraction(0))
 
     __getitem__ = coefficient
 
@@ -132,14 +132,14 @@ class LinExpr:
         expression. The constant term is ignored.
         """
         for symbol, coefficient in self._coefficients.items():
-            yield symbol, Rational(coefficient)
+            yield symbol, coefficient
 
     @property
     def constant(self):
         """
         The constant term of the expression.
         """
-        return Rational(self._constant)
+        return self._constant
 
     @property
     def symbols(self):
@@ -180,8 +180,8 @@ class LinExpr:
         term.
         """
         for coefficient in self._coefficients.values():
-            yield Rational(coefficient)
-        yield Rational(self._constant)
+            yield coefficient
+        yield self._constant
 
     def __bool__(self):
         return True