X-Git-Url: https://scm.cri.minesparis.psl.eu/git/linpy.git/blobdiff_plain/4162c0430092e0ba2b8d8d62b5de24cdd71abe3b..1044e58e639333d281d47739ba9ecef607ff14e6:/linpy/polyhedra.py

diff --git a/linpy/polyhedra.py b/linpy/polyhedra.py
index 1ccbe9c..ead9b83 100644
--- a/linpy/polyhedra.py
+++ b/linpy/polyhedra.py
@@ -94,15 +94,23 @@ class Polyhedron(Domain):
         sc_equalities = []
         if equalities is not None:
             for equality in equalities:
-                if not isinstance(equality, LinExpr):
-                    raise TypeError('equalities must be linear expressions')
-                sc_equalities.append(equality.scaleint())
+                if isinstance(equality, LinExpr):
+                    sc_equalities.append(equality.scaleint())
+                elif isinstance(equality, numbers.Rational):
+                    sc_equalities.append(Rational(equality).scaleint())
+                else:
+                    raise TypeError('equalities must be linear expressions '
+                        'or rational numbers')
         sc_inequalities = []
         if inequalities is not None:
             for inequality in inequalities:
-                if not isinstance(inequality, LinExpr):
-                    raise TypeError('inequalities must be linear expressions')
-                sc_inequalities.append(inequality.scaleint())
+                if isinstance(inequality, LinExpr):
+                    sc_inequalities.append(inequality.scaleint())
+                elif isinstance(inequality, numbers.Rational):
+                    sc_inequalities.append(Rational(inequality).scaleint())
+                else:
+                    raise TypeError('inequalities must be linear expressions '
+                        'or rational numbers')
         symbols = cls._xsymbols(sc_equalities + sc_inequalities)
         islbset = cls._toislbasicset(sc_equalities, sc_inequalities, symbols)
         return cls._fromislbasicset(islbset, symbols)