# Python Wrapper for Embedded Conic Solver (ECOS)
[![Build Status](http://github.com/embotech/ecos-python/workflows/build/badge.svg?event=push)](https://github.com/embotech/ecos-python/actions/workflows/build.yml)
**Visit www.embotech.com/ECOS for detailed information on ECOS.**
ECOS is a numerical software for solving convex second-order cone
programs (SOCPs) of type
```
min c'*x
s.t. A*x = b
G*x <=_K h
```
where the last inequality is generalized, i.e. `h - G*x` belongs to the
cone `K`. ECOS supports the positive orthant `R_+` and second-order
cones `Q_n` defined as
```
Q_n = { (t,x) | t >= || x ||_2 }
```
In the definition above, t is a scalar and `x` is in `R_{n-1}`. The cone
`K` is therefore a direct product of the positive orthant and
second-order cones:
```
K = R_+ x Q_n1 x ... x Q_nN
```
## Installation
The latest version of ECOS is available via `pip`:
pip install ecos
This will download the relevant wheel for your machine.
### Building from source
If you are attempting to build the Python extension from source, then
use
make install
This will use the latest tag on git to version your local installation
of ECOS.
You will need [Numpy](http://www.numpy.org/)
and [Scipy](http://www.scipy.org/). For installation instructions, see
their respective pages.
You may need `sudo` privileges for a global installation.
### Windows users
Windows users may experience some extreme pain when installing ECOS from
source for Python 2.7. We suggest switching to Linux or Mac OSX.
If you must use (or insist on using) Windows, we suggest using
the [Miniconda](http://repo.continuum.io/miniconda/)
distribution to minimize this pain.
If during the installation process, you see the error message
`Unable to find vcvarsall.bat`, you will need to install
[Microsoft Visual Studio Express 2008](go.microsoft.com/?linkid=7729279),
since *Python 2.7* is built against the 2008 compiler.
If using a newer version of Python, you can use a newer version of
Visual Studio. For instance, Python 3.3 is built against [Visual Studio
2010](http://go.microsoft.com/?linkid=9709949).
## Calling ECOS from Python
After installing the ECOS interface, you must import the module with
```
import ecos
```
This module provides a single function `ecos` with one of the following calling sequences:
```
solution = ecos.solve(c,G,h,dims)
solution = ecos.solve(c,G,h,dims,A,b,**kwargs)
```
The arguments `c`, `h`, and `b` are Numpy arrays (i.e., matrices with a single
column). The arguments `G` and `A` are Scipy *sparse* matrices in CSR format;
if they are not of the proper format, ECOS will attempt to convert them. The
argument `dims` is a dictionary with two fields, `dims['l']` and `dims['q']`.
These are the same fields as in the Matlab case. If the fields are omitted or
empty, they default to 0.
The argument `kwargs` can include the keywords
+ `feastol`, `abstol`, `reltol`, `feastol_inacc`, `abstol_innac`, and `reltol_inacc` for tolerance values,
+ `max_iters` for the maximum number of iterations,
+ the Booleans `verbose` and `mi_verbose`,
+ `bool_vars_idx`, a list of `int`s which index the boolean variables,
+ `int_vars_idx`, a list of `int`s which index the integer variables,
+ `mi_max_iters` for maximum number of branch and bound iterations (mixed integer problems only),
+ `mi_abs_eps` for the absolute tolerance between upper and lower bounds (mixed integer problems only), and
+ `mi_rel_eps` for the relative tolerance, (U-L)/L, between upper and lower bounds (mixed integer problems only).
The arguments `A`, `b`, and `kwargs` are optional.
The returned object is a dictionary containing the fields `solution['x']`, `solution['y']`, `solution['s']`, `solution['z']`, and `solution['info']`.
The first four are Numpy arrays containing the relevant solution. The last field contains a dictionary with the same fields as the `info` struct in the MATLAB interface.
## Using ECOS with CVXPY
[CVXPY](http://cvxpy.org) is a powerful Python modeling framework for
convex optimization, similar to the MATLAB counterpart CVX. ECOS is one
of the default solvers in CVXPY, so there is nothing special you have to
do in order to use ECOS with CVXPY, besides specifying it as a solver.
Here is a small
[example](http://www.cvxpy.org/en/latest/tutorial/advanced/index.html#solve-method-options)
from the CVXPY tutorial:
```py
import cvxpy as cp
# Solving a problem with different solvers.
x = cp.Variable(2)
obj = cp.Minimize(cp.norm(x, 2) + cp.norm(x, 1))
constraints = [x >= 2]
prob = cp.Problem(obj, constraints)
# Solve with ECOS.
prob.solve(solver=cp.ECOS)
print("optimal value with ECOS:", prob.value)
```
## ECOS Versioning
The Python module contains two version numbers:
1. `ecos.__version__`: This is the version of the Python wrapper for
ECOS
2. `ecos.__solver_version__`: This is the version of the underlying ECOS
solver
These two version numbers should typically agree, but they might not
when a bug in the Python module has been fixed and nothing in the
underlying C solver has changed. The major version numbers should agree,
however.
### What happened to 2.0.7?
Because version-syncing ECOS and ECOS-Python can be tricky, the 2.0.7
version did not incorporate some minor changes to ECOS. In an
ill-advised move, the release was deleted in hopes it could be
re-uploaded, despite plenty warnings stating otherwise.
Instead, a post release has been made that contains identical content to
the 2.0.7 release. Generally, `pip` should pick up the post release for
2.0.7 and any dependencies such as `pip install "ecos>=2.0.5"` should still
work as expected.
## Deployment
When creating new versions of the Python wrapper, please use
`bumpversion` to bump the version number and also remember to tag the
commit so that CI is able to properly pick it up. See
[Release](RELEASE.md) for more information.
## Python2 Support
Starting with version 2.0.8, ecos-python will no longer support
Python2.7. You may be able to download an [older
version](https://github.com/embotech/ecos-python/releases/tag/2.0.7.post1)
but moving forward we will no longer publish Python2 wheels for use.
## License
ECOS is distributed under the [GNU General Public License
v3.0](http://www.gnu.org/copyleft/gpl.html). Other licenses may be
available upon request from [embotech](http://www.embotech.com).
## Credits
The solver is essentially based on Lieven Vandenberghe's [CVXOPT](http://cvxopt.org) [ConeLP](http://www.ee.ucla.edu/~vandenbe/publications/coneprog.pdf) solver, although it differs in the particular way the linear systems are treated.
The following people have been, and are, involved in the development and maintenance of ECOS:
+ Alexander Domahidi (principal developer)
+ Eric Chu (Python interface, unit tests)
+ Stephen Boyd (methods and maths)
+ Michael Grant (CVX interface)
+ Johan Löfberg (YALMIP interface)
+ João Felipe Santos, Iain Dunning (Julia interface)
+ Han Wang (ECOS branch and bound)
The main technical idea behind ECOS is described in a short [paper](http://www.stanford.edu/~boyd/papers/ecos.html). More details are given in Alexander Domahidi's [PhD Thesis](http://e-collection.library.ethz.ch/view/eth:7611?q=domahidi) in Chapter 9.
If you find ECOS useful, you can cite it using the following BibTex entry:
```
@INPROCEEDINGS{bib:Domahidi2013ecos,
author={Domahidi, A. and Chu, E. and Boyd, S.},
booktitle={European Control Conference (ECC)},
title={{ECOS}: {A}n {SOCP} solver for embedded systems},
year={2013},
pages={3071-3076}
}
```
Raw data
{
"_id": null,
"home_page": "http://github.com/embotech/ecos",
"name": "ecos",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": null,
"author": "Alexander Domahidi, Eric Chu, Han Wang, Santiago Akle",
"author_email": "domahidi@embotech.com, echu@cs.stanford.edu, hanwang2@stanford.edu, tiagoakle@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/2e/5f/17716c533da95ed110815b159efa22b1064c8c41fd5c862f21aff7a7fec0/ecos-2.0.14.tar.gz",
"platform": null,
"description": "# Python Wrapper for Embedded Conic Solver (ECOS)\n\n[![Build Status](http://github.com/embotech/ecos-python/workflows/build/badge.svg?event=push)](https://github.com/embotech/ecos-python/actions/workflows/build.yml)\n\n\n**Visit www.embotech.com/ECOS for detailed information on ECOS.**\n\nECOS is a numerical software for solving convex second-order cone\nprograms (SOCPs) of type\n```\nmin c'*x\ns.t. A*x = b\n G*x <=_K h\n```\nwhere the last inequality is generalized, i.e. `h - G*x` belongs to the\ncone `K`. ECOS supports the positive orthant `R_+` and second-order\ncones `Q_n` defined as\n```\nQ_n = { (t,x) | t >= || x ||_2 }\n```\nIn the definition above, t is a scalar and `x` is in `R_{n-1}`. The cone\n`K` is therefore a direct product of the positive orthant and\nsecond-order cones:\n```\nK = R_+ x Q_n1 x ... x Q_nN\n```\n\n## Installation\nThe latest version of ECOS is available via `pip`:\n\n pip install ecos\n\nThis will download the relevant wheel for your machine.\n\n### Building from source\nIf you are attempting to build the Python extension from source, then\nuse\n\n make install\n\nThis will use the latest tag on git to version your local installation\nof ECOS.\n\nYou will need [Numpy](http://www.numpy.org/)\nand [Scipy](http://www.scipy.org/). For installation instructions, see\ntheir respective pages.\n\nYou may need `sudo` privileges for a global installation.\n\n### Windows users\nWindows users may experience some extreme pain when installing ECOS from\nsource for Python 2.7. We suggest switching to Linux or Mac OSX.\n\nIf you must use (or insist on using) Windows, we suggest using\nthe [Miniconda](http://repo.continuum.io/miniconda/)\ndistribution to minimize this pain.\n\nIf during the installation process, you see the error message\n`Unable to find vcvarsall.bat`, you will need to install\n[Microsoft Visual Studio Express 2008](go.microsoft.com/?linkid=7729279),\nsince *Python 2.7* is built against the 2008 compiler.\n\nIf using a newer version of Python, you can use a newer version of\nVisual Studio. For instance, Python 3.3 is built against [Visual Studio\n2010](http://go.microsoft.com/?linkid=9709949).\n\n## Calling ECOS from Python\n\nAfter installing the ECOS interface, you must import the module with\n```\nimport ecos\n```\nThis module provides a single function `ecos` with one of the following calling sequences:\n```\nsolution = ecos.solve(c,G,h,dims)\nsolution = ecos.solve(c,G,h,dims,A,b,**kwargs)\n```\nThe arguments `c`, `h`, and `b` are Numpy arrays (i.e., matrices with a single\ncolumn). The arguments `G` and `A` are Scipy *sparse* matrices in CSR format;\nif they are not of the proper format, ECOS will attempt to convert them. The\nargument `dims` is a dictionary with two fields, `dims['l']` and `dims['q']`.\nThese are the same fields as in the Matlab case. If the fields are omitted or\nempty, they default to 0.\nThe argument `kwargs` can include the keywords\n+ `feastol`, `abstol`, `reltol`, `feastol_inacc`, `abstol_innac`, and `reltol_inacc` for tolerance values,\n+ `max_iters` for the maximum number of iterations,\n+ the Booleans `verbose` and `mi_verbose`,\n+ `bool_vars_idx`, a list of `int`s which index the boolean variables,\n+ `int_vars_idx`, a list of `int`s which index the integer variables,\n+ `mi_max_iters` for maximum number of branch and bound iterations (mixed integer problems only),\n+ `mi_abs_eps` for the absolute tolerance between upper and lower bounds (mixed integer problems only), and\n+ `mi_rel_eps` for the relative tolerance, (U-L)/L, between upper and lower bounds (mixed integer problems only).\n\nThe arguments `A`, `b`, and `kwargs` are optional.\n\nThe returned object is a dictionary containing the fields `solution['x']`, `solution['y']`, `solution['s']`, `solution['z']`, and `solution['info']`.\nThe first four are Numpy arrays containing the relevant solution. The last field contains a dictionary with the same fields as the `info` struct in the MATLAB interface.\n\n## Using ECOS with CVXPY\n\n[CVXPY](http://cvxpy.org) is a powerful Python modeling framework for\nconvex optimization, similar to the MATLAB counterpart CVX. ECOS is one\nof the default solvers in CVXPY, so there is nothing special you have to\ndo in order to use ECOS with CVXPY, besides specifying it as a solver.\nHere is a small\n[example](http://www.cvxpy.org/en/latest/tutorial/advanced/index.html#solve-method-options)\nfrom the CVXPY tutorial:\n\n```py\nimport cvxpy as cp\n\n# Solving a problem with different solvers.\nx = cp.Variable(2)\nobj = cp.Minimize(cp.norm(x, 2) + cp.norm(x, 1))\nconstraints = [x >= 2]\nprob = cp.Problem(obj, constraints)\n\n# Solve with ECOS.\nprob.solve(solver=cp.ECOS)\nprint(\"optimal value with ECOS:\", prob.value)\n```\n\n## ECOS Versioning\nThe Python module contains two version numbers:\n\n1. `ecos.__version__`: This is the version of the Python wrapper for\n ECOS\n2. `ecos.__solver_version__`: This is the version of the underlying ECOS\n solver\n\nThese two version numbers should typically agree, but they might not\nwhen a bug in the Python module has been fixed and nothing in the\nunderlying C solver has changed. The major version numbers should agree,\nhowever.\n\n### What happened to 2.0.7?\nBecause version-syncing ECOS and ECOS-Python can be tricky, the 2.0.7\nversion did not incorporate some minor changes to ECOS. In an\nill-advised move, the release was deleted in hopes it could be\nre-uploaded, despite plenty warnings stating otherwise.\n\nInstead, a post release has been made that contains identical content to\nthe 2.0.7 release. Generally, `pip` should pick up the post release for\n2.0.7 and any dependencies such as `pip install \"ecos>=2.0.5\"` should still\nwork as expected.\n\n## Deployment\nWhen creating new versions of the Python wrapper, please use\n`bumpversion` to bump the version number and also remember to tag the\ncommit so that CI is able to properly pick it up. See\n[Release](RELEASE.md) for more information.\n\n## Python2 Support\nStarting with version 2.0.8, ecos-python will no longer support\nPython2.7. You may be able to download an [older\nversion](https://github.com/embotech/ecos-python/releases/tag/2.0.7.post1)\nbut moving forward we will no longer publish Python2 wheels for use.\n\n## License\n\nECOS is distributed under the [GNU General Public License\nv3.0](http://www.gnu.org/copyleft/gpl.html). Other licenses may be\navailable upon request from [embotech](http://www.embotech.com).\n\n\n\n\n## Credits\n\nThe solver is essentially based on Lieven Vandenberghe's [CVXOPT](http://cvxopt.org) [ConeLP](http://www.ee.ucla.edu/~vandenbe/publications/coneprog.pdf) solver, although it differs in the particular way the linear systems are treated.\n\nThe following people have been, and are, involved in the development and maintenance of ECOS:\n\n+ Alexander Domahidi (principal developer)\n+ Eric Chu (Python interface, unit tests)\n+ Stephen Boyd (methods and maths)\n+ Michael Grant (CVX interface)\n+ Johan L\u00f6fberg (YALMIP interface)\n+ Jo\u00e3o Felipe Santos, Iain Dunning (Julia interface)\n+ Han Wang (ECOS branch and bound)\n\nThe main technical idea behind ECOS is described in a short [paper](http://www.stanford.edu/~boyd/papers/ecos.html). More details are given in Alexander Domahidi's [PhD Thesis](http://e-collection.library.ethz.ch/view/eth:7611?q=domahidi) in Chapter 9.\n\nIf you find ECOS useful, you can cite it using the following BibTex entry:\n\n```\n@INPROCEEDINGS{bib:Domahidi2013ecos,\nauthor={Domahidi, A. and Chu, E. and Boyd, S.},\nbooktitle={European Control Conference (ECC)},\ntitle={{ECOS}: {A}n {SOCP} solver for embedded systems},\nyear={2013},\npages={3071-3076}\n}\n```\n",
"bugtrack_url": null,
"license": "GPLv3",
"summary": "This is the Python package for ECOS: Embedded Cone Solver. See Github page for more information.",
"version": "2.0.14",
"project_urls": {
"Homepage": "http://github.com/embotech/ecos"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "7c2580b44247ec5ad98ce8acec5b8b9cb73a43e4367cdc679769be109c1e2ae0",
"md5": "9a45221a5c074727cd95e61e921fbc75",
"sha256": "d16f8c97c42a18be77530b4d0090d8dd38105ae311518fc58a66c5c403d79672"
},
"downloads": -1,
"filename": "ecos-2.0.14-cp310-cp310-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "9a45221a5c074727cd95e61e921fbc75",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 92599,
"upload_time": "2024-06-18T03:48:10",
"upload_time_iso_8601": "2024-06-18T03:48:10.336546Z",
"url": "https://files.pythonhosted.org/packages/7c/25/80b44247ec5ad98ce8acec5b8b9cb73a43e4367cdc679769be109c1e2ae0/ecos-2.0.14-cp310-cp310-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "aa14e6a1692aea5647cf29988a351b1a5effe53421504e8648a4a1f04721120a",
"md5": "c91db1abf2f860ceeb8144e65caab55e",
"sha256": "f9a977976ec618261456d6c9cd4ec7b7745607e448e78cd0c851190c6cc515ef"
},
"downloads": -1,
"filename": "ecos-2.0.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "c91db1abf2f860ceeb8144e65caab55e",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 218904,
"upload_time": "2024-06-18T03:47:45",
"upload_time_iso_8601": "2024-06-18T03:47:45.407011Z",
"url": "https://files.pythonhosted.org/packages/aa/14/e6a1692aea5647cf29988a351b1a5effe53421504e8648a4a1f04721120a/ecos-2.0.14-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "55545424e7865d171b5ebd436fabdf66cdcf05bcfe5528ef5a45a02bca008dc9",
"md5": "14432233043633acc548e3c76c66c36c",
"sha256": "f2e8ab314609117f7e96bb83db7458f011ab0496c61078e146a8f5c8244e70b2"
},
"downloads": -1,
"filename": "ecos-2.0.14-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "14432233043633acc548e3c76c66c36c",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": null,
"size": 72198,
"upload_time": "2024-06-18T03:48:51",
"upload_time_iso_8601": "2024-06-18T03:48:51.212897Z",
"url": "https://files.pythonhosted.org/packages/55/54/5424e7865d171b5ebd436fabdf66cdcf05bcfe5528ef5a45a02bca008dc9/ecos-2.0.14-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2b9bc886a268d4b7adfaa1171244cdbfa3c944e5a599fe7a5e738ee27390ab20",
"md5": "73642c5f87bc60c2580fed2b44931cff",
"sha256": "dc90b54eaae16ead128bfdd95e04bf808b73578bdf40ed652c55aa36a6d02e42"
},
"downloads": -1,
"filename": "ecos-2.0.14-cp311-cp311-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "73642c5f87bc60c2580fed2b44931cff",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 92594,
"upload_time": "2024-06-18T03:47:51",
"upload_time_iso_8601": "2024-06-18T03:47:51.721771Z",
"url": "https://files.pythonhosted.org/packages/2b/9b/c886a268d4b7adfaa1171244cdbfa3c944e5a599fe7a5e738ee27390ab20/ecos-2.0.14-cp311-cp311-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "49e9fae34e8ef6a9b78c3098a4428ed0e8f77cdeb334a7dc17c649abb686ed08",
"md5": "1dff60d296be5d2df56e7a971254cad8",
"sha256": "7a8be3b4856838ae351fec40fb3589181d52b41cf75bf4d35342686a508c37a6"
},
"downloads": -1,
"filename": "ecos-2.0.14-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "1dff60d296be5d2df56e7a971254cad8",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 220084,
"upload_time": "2024-06-18T03:47:47",
"upload_time_iso_8601": "2024-06-18T03:47:47.343196Z",
"url": "https://files.pythonhosted.org/packages/49/e9/fae34e8ef6a9b78c3098a4428ed0e8f77cdeb334a7dc17c649abb686ed08/ecos-2.0.14-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2f451e52519d6c29dd26bbfaf92ece5b45ca3de3b7c8b2615a818aaeadb7ad63",
"md5": "8e65e6da0d00809cc130d4487c49e56f",
"sha256": "7495b3031ccc2d4cec72cdb40aed8a2d1fdd734fe40519b7e6047aead5e811cf"
},
"downloads": -1,
"filename": "ecos-2.0.14-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "8e65e6da0d00809cc130d4487c49e56f",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": null,
"size": 72199,
"upload_time": "2024-06-18T03:49:07",
"upload_time_iso_8601": "2024-06-18T03:49:07.772000Z",
"url": "https://files.pythonhosted.org/packages/2f/45/1e52519d6c29dd26bbfaf92ece5b45ca3de3b7c8b2615a818aaeadb7ad63/ecos-2.0.14-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "afc384e392f2410f51fa557198937cc52a2e80f887c517ef4e3fb6d46e3bb008",
"md5": "aa75cfad6a954933fefe8bd827548cda",
"sha256": "4a7e2704a3ef9acfb8146d594deff9942d3a0f0d0399de8fe2e0bd95e8b0855c"
},
"downloads": -1,
"filename": "ecos-2.0.14-cp312-cp312-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "aa75cfad6a954933fefe8bd827548cda",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 92545,
"upload_time": "2024-06-18T03:47:50",
"upload_time_iso_8601": "2024-06-18T03:47:50.589854Z",
"url": "https://files.pythonhosted.org/packages/af/c3/84e392f2410f51fa557198937cc52a2e80f887c517ef4e3fb6d46e3bb008/ecos-2.0.14-cp312-cp312-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "821242f4d953f9284571726b085f99e13bfa84522bf63bf2e7a81460013b09e6",
"md5": "7e8fcb1d42f6fc66fbf2e89d9c6d42f3",
"sha256": "f3cbb1a66ecf10955a1a4bcd6b99db55148000cb79fd176bfac26d98b21a4814"
},
"downloads": -1,
"filename": "ecos-2.0.14-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "7e8fcb1d42f6fc66fbf2e89d9c6d42f3",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 222132,
"upload_time": "2024-06-18T03:47:47",
"upload_time_iso_8601": "2024-06-18T03:47:47.498646Z",
"url": "https://files.pythonhosted.org/packages/82/12/42f4d953f9284571726b085f99e13bfa84522bf63bf2e7a81460013b09e6/ecos-2.0.14-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "569aca30572f3e3ff3cef6a0ea8aa6cdc12c36f9fefe559f65c7d6265713196a",
"md5": "c0b74ada16161049078e6c025d4e28b4",
"sha256": "718eb62afb8e45426bcc365ebaf3ca9f610afcbb754de6073ef5f104da8fca1f"
},
"downloads": -1,
"filename": "ecos-2.0.14-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "c0b74ada16161049078e6c025d4e28b4",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": null,
"size": 72248,
"upload_time": "2024-06-18T03:48:51",
"upload_time_iso_8601": "2024-06-18T03:48:51.504775Z",
"url": "https://files.pythonhosted.org/packages/56/9a/ca30572f3e3ff3cef6a0ea8aa6cdc12c36f9fefe559f65c7d6265713196a/ecos-2.0.14-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "adb7d4442d1d45413aa0e59313f008cfabe1066108f1535b4cb6ca3be29665a2",
"md5": "1960ea2ea29fa43eb6fb972863dff6c0",
"sha256": "1a4048d576dc312679cc56a6a9af24e0fc6501988d89b725107fd05b4f0dcec8"
},
"downloads": -1,
"filename": "ecos-2.0.14-cp37-cp37m-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "1960ea2ea29fa43eb6fb972863dff6c0",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": null,
"size": 92197,
"upload_time": "2024-06-18T03:48:06",
"upload_time_iso_8601": "2024-06-18T03:48:06.777530Z",
"url": "https://files.pythonhosted.org/packages/ad/b7/d4442d1d45413aa0e59313f008cfabe1066108f1535b4cb6ca3be29665a2/ecos-2.0.14-cp37-cp37m-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6a1dfe16ce275aa97de04899bb3a16d6293d59453ed9a34749dcb091690aaef7",
"md5": "216b2cc7632ae48632675d7008b39971",
"sha256": "e55833bb2a468989ed9ffae4944b005888dfbf4c273daff13259d22104cfc097"
},
"downloads": -1,
"filename": "ecos-2.0.14-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "216b2cc7632ae48632675d7008b39971",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": null,
"size": 218221,
"upload_time": "2024-06-18T03:47:46",
"upload_time_iso_8601": "2024-06-18T03:47:46.711302Z",
"url": "https://files.pythonhosted.org/packages/6a/1d/fe16ce275aa97de04899bb3a16d6293d59453ed9a34749dcb091690aaef7/ecos-2.0.14-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ff8af9d83622a1662e24b739b2b47b49187260e59a0d577a8e8a2741412d8d2b",
"md5": "b9d939cd18e214b8e644baba6b810da6",
"sha256": "ceba1e1b411a5ff0acb41bf1732da426b482bf51b40ccc1a114132f8ecedb165"
},
"downloads": -1,
"filename": "ecos-2.0.14-cp37-cp37m-win_amd64.whl",
"has_sig": false,
"md5_digest": "b9d939cd18e214b8e644baba6b810da6",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": null,
"size": 71734,
"upload_time": "2024-06-18T03:49:10",
"upload_time_iso_8601": "2024-06-18T03:49:10.311298Z",
"url": "https://files.pythonhosted.org/packages/ff/8a/f9d83622a1662e24b739b2b47b49187260e59a0d577a8e8a2741412d8d2b/ecos-2.0.14-cp37-cp37m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "456b36e6cf40e37765f890aa6e16510eff05a991da4012486323e7c265907dac",
"md5": "c0a0124b8b0caa50ec8191b7570381cf",
"sha256": "85007d4462178f1e44aa824122e05e3e72605a7ec4366a55f678002793448f84"
},
"downloads": -1,
"filename": "ecos-2.0.14-cp38-cp38-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "c0a0124b8b0caa50ec8191b7570381cf",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": null,
"size": 92385,
"upload_time": "2024-06-18T03:47:58",
"upload_time_iso_8601": "2024-06-18T03:47:58.705017Z",
"url": "https://files.pythonhosted.org/packages/45/6b/36e6cf40e37765f890aa6e16510eff05a991da4012486323e7c265907dac/ecos-2.0.14-cp38-cp38-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "381c84b143eb38b1e94f0876792289322abc14ad6b1e8ed7bed5f97c27741b7e",
"md5": "3daaf10731ad9243a49b79213665353b",
"sha256": "81488788f92b1a288a44398835a371740d2f91b1d2361f76e3a27c4c6c8f8104"
},
"downloads": -1,
"filename": "ecos-2.0.14-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "3daaf10731ad9243a49b79213665353b",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": null,
"size": 221642,
"upload_time": "2024-06-18T03:47:48",
"upload_time_iso_8601": "2024-06-18T03:47:48.659854Z",
"url": "https://files.pythonhosted.org/packages/38/1c/84b143eb38b1e94f0876792289322abc14ad6b1e8ed7bed5f97c27741b7e/ecos-2.0.14-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a25e8c5f561ae51f7faf1d2cb91299d4802a7b436a871408a72185dd53cc66da",
"md5": "8c1fef64c309254e2032c4ab061b5c41",
"sha256": "56e461ce7ef57bacd9c3653da2bfb959571b4e57177b7f0ea9a69170f7e2a1e3"
},
"downloads": -1,
"filename": "ecos-2.0.14-cp38-cp38-win_amd64.whl",
"has_sig": false,
"md5_digest": "8c1fef64c309254e2032c4ab061b5c41",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": null,
"size": 72028,
"upload_time": "2024-06-18T03:49:04",
"upload_time_iso_8601": "2024-06-18T03:49:04.379869Z",
"url": "https://files.pythonhosted.org/packages/a2/5e/8c5f561ae51f7faf1d2cb91299d4802a7b436a871408a72185dd53cc66da/ecos-2.0.14-cp38-cp38-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a8ad4050d41d823928759f20e917e67c05b2842c0da562ffbffb1d5ac07b1657",
"md5": "f740dccea6b0419d3a64f6261b484dc7",
"sha256": "cb7189a1fabb46c6058484158f7002aa7b0d97633af18fd3cc98e4239d550a58"
},
"downloads": -1,
"filename": "ecos-2.0.14-cp39-cp39-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "f740dccea6b0419d3a64f6261b484dc7",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 92594,
"upload_time": "2024-06-18T03:48:12",
"upload_time_iso_8601": "2024-06-18T03:48:12.857667Z",
"url": "https://files.pythonhosted.org/packages/a8/ad/4050d41d823928759f20e917e67c05b2842c0da562ffbffb1d5ac07b1657/ecos-2.0.14-cp39-cp39-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "383e72d2c618691986ff90d77f3324afb582387b855c1d0cbe0061513a6bc6e8",
"md5": "1c0ed0a695aa25980f81336f94321031",
"sha256": "aa30ce5d4ebe012f2432da53369349f9aee8df3c463987f5a4af44477eecd9a5"
},
"downloads": -1,
"filename": "ecos-2.0.14-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "1c0ed0a695aa25980f81336f94321031",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 218715,
"upload_time": "2024-06-18T03:47:51",
"upload_time_iso_8601": "2024-06-18T03:47:51.504922Z",
"url": "https://files.pythonhosted.org/packages/38/3e/72d2c618691986ff90d77f3324afb582387b855c1d0cbe0061513a6bc6e8/ecos-2.0.14-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "970be887413862b12cd0ce3d14c052cacef1b6aa30fb45a51c63008d92331116",
"md5": "42f2d9a1a503b45af2f8057be17badf9",
"sha256": "e412718b23c46500e0f0a3be2a5e5a552e89f495992cf7b3742eae6c75c830a7"
},
"downloads": -1,
"filename": "ecos-2.0.14-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "42f2d9a1a503b45af2f8057be17badf9",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": null,
"size": 72200,
"upload_time": "2024-06-18T03:49:16",
"upload_time_iso_8601": "2024-06-18T03:49:16.637155Z",
"url": "https://files.pythonhosted.org/packages/97/0b/e887413862b12cd0ce3d14c052cacef1b6aa30fb45a51c63008d92331116/ecos-2.0.14-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2e5f17716c533da95ed110815b159efa22b1064c8c41fd5c862f21aff7a7fec0",
"md5": "35ae57a3d11a6d2f8ba39f578f1f13e3",
"sha256": "64b3201c0e0a7f0129050557c4ac50b00031e80a10534506dba1200c8dc1efe4"
},
"downloads": -1,
"filename": "ecos-2.0.14.tar.gz",
"has_sig": false,
"md5_digest": "35ae57a3d11a6d2f8ba39f578f1f13e3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 142430,
"upload_time": "2024-06-18T03:48:34",
"upload_time_iso_8601": "2024-06-18T03:48:34.809899Z",
"url": "https://files.pythonhosted.org/packages/2e/5f/17716c533da95ed110815b159efa22b1064c8c41fd5c862f21aff7a7fec0/ecos-2.0.14.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-06-18 03:48:34",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "embotech",
"github_project": "ecos",
"travis_ci": true,
"coveralls": false,
"github_actions": false,
"lcname": "ecos"
}