summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--python-optlang.spec252
-rw-r--r--sources1
3 files changed, 254 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..4f2bc15 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/optlang-1.6.1.tar.gz
diff --git a/python-optlang.spec b/python-optlang.spec
new file mode 100644
index 0000000..58c8f3c
--- /dev/null
+++ b/python-optlang.spec
@@ -0,0 +1,252 @@
+%global _empty_manifest_terminate_build 0
+Name: python-optlang
+Version: 1.6.1
+Release: 1
+Summary: Formulate optimization problems using sympy expressions and solve them using interfaces to third-party optimization software (e.g. GLPK).
+License: Apache-2.0
+URL: https://github.com/opencobra/optlang
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/90/9b/5343d9a18a7e5e4d87fcb18058044eb4e94e0a44e160d43ac9132cf5deec/optlang-1.6.1.tar.gz
+BuildArch: noarch
+
+Requires: python3-six
+Requires: python3-swiglpk
+Requires: python3-sympy
+Requires: python3-black
+Requires: python3-isort
+Requires: python3-tox
+
+%description
+*Sympy based mathematical programming language*
+|PyPI| |Python Versions| |License| |Code of Conduct| |GitHub Actions| |Coverage Status| |Documentation Status| |Gitter| |JOSS| |DOI|
+Optlang is a Python package for solving mathematical optimization
+problems, i.e. maximizing or minimizing an objective function over a set
+of variables subject to a number of constraints. Optlang provides a
+common interface to a series of optimization tools, so different solver
+backends can be changed in a transparent way.
+Optlang's object-oriented API takes advantage of the symbolic math library
+`sympy <http://sympy.org/en/index.html>`__ to allow objective functions
+and constraints to be easily formulated from symbolic expressions of
+variables (see examples).
+Show us some love by staring this repo if you find optlang useful!
+Also, please use the GitHub `issue tracker <https://github.com/biosustain/optlang/issues>`_
+to let us know about bugs or feature requests, or our `gitter channel <https://gitter.im/biosustain/optlang>`_ if you have problems or questions regarding optlang.
+Installation
+~~~~~~~~~~~~
+Install using pip
+ pip install optlang
+This will also install `swiglpk <https://github.com/biosustain/swiglpk>`_, an interface to the open source (mixed integer) LP solver `GLPK <https://www.gnu.org/software/glpk/>`_.
+Quadratic programming (and MIQP) is supported through additional optional solvers (see below).
+Dependencies
+~~~~~~~~~~~~
+The following dependencies are needed.
+- `sympy >= 1.0.0 <http://sympy.org/en/index.html>`__
+- `six >= 1.9.0 <https://pypi.python.org/pypi/six>`__
+- `swiglpk >= 1.4.3 <https://pypi.python.org/pypi/swiglpk>`__
+The following are optional dependencies that allow other solvers to be used.
+- `cplex <https://www-01.ibm.com/software/commerce/optimization/cplex-optimizer/>`__ (LP, MILP, QP, MIQP)
+- `gurobipy <http://www.gurobi.com>`__ (LP, MILP, QP, MIQP)
+- `scipy <http://www.scipy.org>`__ (LP)
+- `osqp <https://osqp.org/>`__ (LP, QP)
+Example
+~~~~~~~
+Formulating and solving the problem is straightforward (example taken
+from `GLPK documentation <http://www.gnu.org/software/glpk>`__):
+ from __future__ import print_function
+ from optlang import Model, Variable, Constraint, Objective
+ # All the (symbolic) variables are declared, with a name and optionally a lower and/or upper bound.
+ x1 = Variable('x1', lb=0)
+ x2 = Variable('x2', lb=0)
+ x3 = Variable('x3', lb=0)
+ # A constraint is constructed from an expression of variables and a lower and/or upper bound (lb and ub).
+ c1 = Constraint(x1 + x2 + x3, ub=100)
+ c2 = Constraint(10 * x1 + 4 * x2 + 5 * x3, ub=600)
+ c3 = Constraint(2 * x1 + 2 * x2 + 6 * x3, ub=300)
+ # An objective can be formulated
+ obj = Objective(10 * x1 + 6 * x2 + 4 * x3, direction='max')
+ # Variables, constraints and objective are combined in a Model object, which can subsequently be optimized.
+ model = Model(name='Simple model')
+ model.objective = obj
+ model.add([c1, c2, c3])
+ status = model.optimize()
+ print("status:", model.status)
+ print("objective value:", model.objective.value)
+ print("----------")
+ for var_name, var in model.variables.iteritems():
+ print(var_name, "=", var.primal)
+The example will produce the following output:
+ status: optimal
+
+%package -n python3-optlang
+Summary: Formulate optimization problems using sympy expressions and solve them using interfaces to third-party optimization software (e.g. GLPK).
+Provides: python-optlang
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-optlang
+*Sympy based mathematical programming language*
+|PyPI| |Python Versions| |License| |Code of Conduct| |GitHub Actions| |Coverage Status| |Documentation Status| |Gitter| |JOSS| |DOI|
+Optlang is a Python package for solving mathematical optimization
+problems, i.e. maximizing or minimizing an objective function over a set
+of variables subject to a number of constraints. Optlang provides a
+common interface to a series of optimization tools, so different solver
+backends can be changed in a transparent way.
+Optlang's object-oriented API takes advantage of the symbolic math library
+`sympy <http://sympy.org/en/index.html>`__ to allow objective functions
+and constraints to be easily formulated from symbolic expressions of
+variables (see examples).
+Show us some love by staring this repo if you find optlang useful!
+Also, please use the GitHub `issue tracker <https://github.com/biosustain/optlang/issues>`_
+to let us know about bugs or feature requests, or our `gitter channel <https://gitter.im/biosustain/optlang>`_ if you have problems or questions regarding optlang.
+Installation
+~~~~~~~~~~~~
+Install using pip
+ pip install optlang
+This will also install `swiglpk <https://github.com/biosustain/swiglpk>`_, an interface to the open source (mixed integer) LP solver `GLPK <https://www.gnu.org/software/glpk/>`_.
+Quadratic programming (and MIQP) is supported through additional optional solvers (see below).
+Dependencies
+~~~~~~~~~~~~
+The following dependencies are needed.
+- `sympy >= 1.0.0 <http://sympy.org/en/index.html>`__
+- `six >= 1.9.0 <https://pypi.python.org/pypi/six>`__
+- `swiglpk >= 1.4.3 <https://pypi.python.org/pypi/swiglpk>`__
+The following are optional dependencies that allow other solvers to be used.
+- `cplex <https://www-01.ibm.com/software/commerce/optimization/cplex-optimizer/>`__ (LP, MILP, QP, MIQP)
+- `gurobipy <http://www.gurobi.com>`__ (LP, MILP, QP, MIQP)
+- `scipy <http://www.scipy.org>`__ (LP)
+- `osqp <https://osqp.org/>`__ (LP, QP)
+Example
+~~~~~~~
+Formulating and solving the problem is straightforward (example taken
+from `GLPK documentation <http://www.gnu.org/software/glpk>`__):
+ from __future__ import print_function
+ from optlang import Model, Variable, Constraint, Objective
+ # All the (symbolic) variables are declared, with a name and optionally a lower and/or upper bound.
+ x1 = Variable('x1', lb=0)
+ x2 = Variable('x2', lb=0)
+ x3 = Variable('x3', lb=0)
+ # A constraint is constructed from an expression of variables and a lower and/or upper bound (lb and ub).
+ c1 = Constraint(x1 + x2 + x3, ub=100)
+ c2 = Constraint(10 * x1 + 4 * x2 + 5 * x3, ub=600)
+ c3 = Constraint(2 * x1 + 2 * x2 + 6 * x3, ub=300)
+ # An objective can be formulated
+ obj = Objective(10 * x1 + 6 * x2 + 4 * x3, direction='max')
+ # Variables, constraints and objective are combined in a Model object, which can subsequently be optimized.
+ model = Model(name='Simple model')
+ model.objective = obj
+ model.add([c1, c2, c3])
+ status = model.optimize()
+ print("status:", model.status)
+ print("objective value:", model.objective.value)
+ print("----------")
+ for var_name, var in model.variables.iteritems():
+ print(var_name, "=", var.primal)
+The example will produce the following output:
+ status: optimal
+
+%package help
+Summary: Development documents and examples for optlang
+Provides: python3-optlang-doc
+%description help
+*Sympy based mathematical programming language*
+|PyPI| |Python Versions| |License| |Code of Conduct| |GitHub Actions| |Coverage Status| |Documentation Status| |Gitter| |JOSS| |DOI|
+Optlang is a Python package for solving mathematical optimization
+problems, i.e. maximizing or minimizing an objective function over a set
+of variables subject to a number of constraints. Optlang provides a
+common interface to a series of optimization tools, so different solver
+backends can be changed in a transparent way.
+Optlang's object-oriented API takes advantage of the symbolic math library
+`sympy <http://sympy.org/en/index.html>`__ to allow objective functions
+and constraints to be easily formulated from symbolic expressions of
+variables (see examples).
+Show us some love by staring this repo if you find optlang useful!
+Also, please use the GitHub `issue tracker <https://github.com/biosustain/optlang/issues>`_
+to let us know about bugs or feature requests, or our `gitter channel <https://gitter.im/biosustain/optlang>`_ if you have problems or questions regarding optlang.
+Installation
+~~~~~~~~~~~~
+Install using pip
+ pip install optlang
+This will also install `swiglpk <https://github.com/biosustain/swiglpk>`_, an interface to the open source (mixed integer) LP solver `GLPK <https://www.gnu.org/software/glpk/>`_.
+Quadratic programming (and MIQP) is supported through additional optional solvers (see below).
+Dependencies
+~~~~~~~~~~~~
+The following dependencies are needed.
+- `sympy >= 1.0.0 <http://sympy.org/en/index.html>`__
+- `six >= 1.9.0 <https://pypi.python.org/pypi/six>`__
+- `swiglpk >= 1.4.3 <https://pypi.python.org/pypi/swiglpk>`__
+The following are optional dependencies that allow other solvers to be used.
+- `cplex <https://www-01.ibm.com/software/commerce/optimization/cplex-optimizer/>`__ (LP, MILP, QP, MIQP)
+- `gurobipy <http://www.gurobi.com>`__ (LP, MILP, QP, MIQP)
+- `scipy <http://www.scipy.org>`__ (LP)
+- `osqp <https://osqp.org/>`__ (LP, QP)
+Example
+~~~~~~~
+Formulating and solving the problem is straightforward (example taken
+from `GLPK documentation <http://www.gnu.org/software/glpk>`__):
+ from __future__ import print_function
+ from optlang import Model, Variable, Constraint, Objective
+ # All the (symbolic) variables are declared, with a name and optionally a lower and/or upper bound.
+ x1 = Variable('x1', lb=0)
+ x2 = Variable('x2', lb=0)
+ x3 = Variable('x3', lb=0)
+ # A constraint is constructed from an expression of variables and a lower and/or upper bound (lb and ub).
+ c1 = Constraint(x1 + x2 + x3, ub=100)
+ c2 = Constraint(10 * x1 + 4 * x2 + 5 * x3, ub=600)
+ c3 = Constraint(2 * x1 + 2 * x2 + 6 * x3, ub=300)
+ # An objective can be formulated
+ obj = Objective(10 * x1 + 6 * x2 + 4 * x3, direction='max')
+ # Variables, constraints and objective are combined in a Model object, which can subsequently be optimized.
+ model = Model(name='Simple model')
+ model.objective = obj
+ model.add([c1, c2, c3])
+ status = model.optimize()
+ print("status:", model.status)
+ print("objective value:", model.objective.value)
+ print("----------")
+ for var_name, var in model.variables.iteritems():
+ print(var_name, "=", var.primal)
+The example will produce the following output:
+ status: optimal
+
+%prep
+%autosetup -n optlang-1.6.1
+
+%build
+%py3_build
+
+%install
+%py3_install
+install -d -m755 %{buildroot}/%{_pkgdocdir}
+if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
+if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
+if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
+if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
+pushd %{buildroot}
+if [ -d usr/lib ]; then
+ find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/lib64 ]; then
+ find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/bin ]; then
+ find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+if [ -d usr/sbin ]; then
+ find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst
+fi
+touch doclist.lst
+if [ -d usr/share/man ]; then
+ find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst
+fi
+popd
+mv %{buildroot}/filelist.lst .
+mv %{buildroot}/doclist.lst .
+
+%files -n python3-optlang -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Fri May 05 2023 Python_Bot <Python_Bot@openeuler.org> - 1.6.1-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..beeb8d3
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+c38f9f33bca1dfa436bfcdd9d501f670 optlang-1.6.1.tar.gz