Cvxpy

Latest version: v1.5.1

Safety actively analyzes 629765 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 8

1.4.0

This release is consistent with our semantic versioning guarantee. It comes packed with many new features, bug fixes, and performance improvements. This version of CVXPY supports Python 3.8 through 3.12, and is our first release that supports Python 3.12. While working on the next release, we continue to officially support CVXPY 1.3 and 1.4.

New features

- New atom: `convolve`
- New atom: `mean`
- New atom: `outer`
- New atom: `ptp`
- New atom: `std`
- New atom: `var`
- New atom: `vec_to_upper_tri`
- Adds methods to CVXPY expressions that are found on NumPy ndarrays such as `.sum()`, `.max()`, and `.mean()`
- New solver interface: `PIQP`
- Adds SDP support to the Clarabel interface
- Added support for OR-Tools 9.7
- Removed support for OR-Tools 9.4
- `PowerConeND` now supports extracting its dual variables
- `reshape` now supports using `-1` as a dimension, with the same meaning it has in NumPy
- Indexing CVXPY expressions with floats now raises an appropriate error
- Clearer error messages for a number of common errors
- The `perspective` atom now supports `s=0`
- Performance improvements in the SCIPY backend
- Performance improvements in canonicalizing parameterized QPs
- Performance improvements for quadratic forms with sparse matrices
- Greater support for static typing

ECOS deprecation

CVXPY has used ECOS as the default solver for many years; however, it has known issues with performance and numerical stability in edge cases. Recently, a new solver, Clarabel, that improves the algorithm and implementation of ECOS has been under development.

In 1.5, CVXPY plans to start using Clarabel instead of ECOS by default for some categories of problems. In 1.6, we plan to no longer install ECOS as a CVXPY dependency. We have no plans to remove support for calling ECOS as a solver. As part of this transition, in 1.4 CVXPY will raise a warning whenever ECOS is called by default. We encourage you to try and use Clarabel instead, but if you're dependent on ECOS's exact behavior please explicitly specify it as a solver.

`conv` deprecation

The CVXPY atom `conv` is inconsistent with NumPy's `convolve` functions. We are deprecating it, but have no plans to remove it in the short term. We encourage all users to use the CVXPY atom `convolve` instead.

`NonPos` deprecation

The `NonPos` cone uses the opposite dual variable sign convention as the rest of the CVXPY cones and a constraint of `NonPos(expr)` is the same as a constraint on `NonNeg(-expr)`. We are deprecating `NonPos`, but have no plans to remove it in the short term. We encourage users to switch to using `NonNeg`.

Contributors

This release would not have been possible without the contributions of many CVXPY users and developers. Across 29 contributors and 116 PRs, we would like to thank the following people for their contributions to this release (in alphabetical order):

- akshayka | 2105
- allenlawrence94 | 2080, 2103
- alxhslm | 2046
- aryamanjeendgar | 2171, 2192, 2204, 2241
- aszekMosek | 2017, 2029
- bkurtz | 1821
- carlosgmartin | 2246, 2250
- cbonet | 2173, 2175
- dcajasn | 2131, 2152
- goulart-paul | 2108
- h-vetinari | 1998
- jlchen0 | 2028
- michaels0m | 2085
- mkoeppe | 2118
- mlubin | 2169, 2251
- Paulnkk | 2069, 2073, 2078, 2084, 2086, 2096, 2117, 2119, 2137, 2144, 2179
- phschiele | 2008, 2009, 2049, 2053, 2054, 2061, 2063, 2088, 2094, 2113, 2120, 2127, 2141, 2146, 2156, 2161, 2164, 2185, 2196, 2206, 2219, 2220, 2221, 2245, 2247, 2249, 2253
- pragmaticTNT | 2057
- PTNobel | 2058, 2081, 2172, 2188, 2207, 2238, 2248, 2254, 2255
- r-barnes | 1697
- rileyjmurray | 2001, 2123, 2125, 2139, 2155
- RSchwan | 2190
- samuel-adekunle | 2016
- sdementen | 2056
- SteveDiamond | 2007, 2022, 2041, 2043, 2047, 2060, 2067, 2071, 2079, 2110, 2111, 2126, 2130, 2159, 2160, 2183, 2225, 2226, 2232, 2233, 2244
- Transurgeon | 2044, 2091, 2186, 2213, 2215, 2223, 2224, 2230, 2239
- usamamuneeb | 2097, 2116, 2147
- wfan19 | 2157
- wujianjack | 2134

Special shoutout to our Google Summer of Code interns aryamanjeendgar and Transurgeon!

1.3.4

What's Changed

- 2351 Fix invalid escape sequences in docstrings (befelix)
- 2338 Improving the Gurobi integration by supporting further error codes (jmarecek)
- 2358 Removes deprecated scipy_wrapper.py (PTNobel)
- 2356 Redirect model output to Python instead of Terminal (anmolsahoo25)

New Contributors
* syanga made their first contribution in https://github.com/cvxpy/cvxpy/pull/2415

**Full Changelog**: https://github.com/cvxpy/cvxpy/compare/v1.3.3...v1.3.4

1.3.2

This is a patch release for 1.3. The patch includes fixes from many contributors:

- phschiele Introduce ruff linter (2049)
- Paulnkk Fix scip timelimit no solution (2084)
- phschiele Adds devcontainer support (2088)
- rileyjmurray Correct categorization of tr_inv atom. (2123)
- dcajasn Fixes to PowCone3D and updates to test_conic_solvers.py (2131)
- Paulnkk Fix rare bugs in curvature calculation: non-psd diagonal matrices and starting vectors in eigsh (2086)
- wujianjack Map imprecise status to optimal_inaccurate (2134)
- SteveDiamond Fix bug with calling Mosek simplex solver (2126)
- SteveDiamond Fix conv and add convolve (2047)
- allenlawrence94 fix: scipy time limit raises SolverError (2080)
- bkurtz CBC interface: add ability to configure the underlying CLP solver (1821)
- SteveDiamond remove github banner (2160)
- SteveDiamond Update scipy_wrapper (2159)
- phschiele PR benchmark against base branch (2161)

1.3.1

This is a patch release for 1.3. The patch includes fixes from many contributors:

phschiele New deepcopy semantics https://github.com/cvxpy/cvxpy/pull/2053
Transurgeon Typo fix in documentation https://github.com/cvxpy/cvxpy/pull/2044
SteveDiamond Fix Mosek power cone https://github.com/cvxpy/cvxpy/pull/2043
aszekMosek Clean up Mosek parameter settings https://github.com/cvxpy/cvxpy/pull/2029
jlchen0 Fix p-norm issue with DGP problems https://github.com/cvxpy/cvxpy/pull/2028
SteveDiamond Unpin setuptools https://github.com/cvxpy/cvxpy/pull/2022
aszekMosek Attach Mosek log handler before inputting data https://github.com/cvxpy/cvxpy/pull/2017
samuel-adekunle Update atomic functions docs https://github.com/cvxpy/cvxpy/pull/2016
phschiele Build wheels on push https://github.com/cvxpy/cvxpy/pull/2008
phschiele aarch64 wheels https://github.com/cvxpy/cvxpy/pull/2054
phschiele Keep sparsity for PSD constraints in Mosek interface https://github.com/cvxpy/cvxpy/pull/2063
SteveDiamond Fix issue with matrix multiplication involving quad https://github.com/cvxpy/cvxpy/pull/2067
PTNobel Adds error on floats as indices https://github.com/cvxpy/cvxpy/pull/2058
phschiele Improved PSD check message https://github.com/cvxpy/cvxpy/pull/2009
SteveDiamond Fix bug with quadratic objective and power atom https://github.com/cvxpy/cvxpy/pull/2060
rileyjmurray Remove ill-posed xexp test case https://github.com/cvxpy/cvxpy/pull/2001

1.3

This release marks our first minor release since the introduction of semantic versioning in [March 2022](https://github.com/cvxpy/cvxpy/releases/tag/v1.2.0). It comes packed with many new features, bug fixes, and performance improvements. This version of CVXPY supports Python 3.7 through 3.11, and is our first release that supports Python 3.11. While working on the next release, we continue to officially support CVXPY 1.2 and 1.3, and will backport important bug fixes to 1.1, if feasible.

New features
- [New atoms](https://www.cvxpy.org/version/1.3/tutorial/functions/index.html#scalar-functions):
- `dotsort`
- `tr_inv`
- `von_neumann_entr`
- `perspective`
- Support for native quadratic forms (`x.T P x`)
- New solver interfaces: `COPT`, `SDPA`, `Clarabel`, `proxqp`
- A new SciPy-based backend
- New constraints:
- `FiniteSet`
- `RelEntrConeQuad`
- `OpRelEntrConeQuad`
- ... and many more!

Other big developments
- The new OpRelEntrConeQuad constraint class is the first major piece of our effort to improve support for quantum information modeling ([GSOC project](https://github.com/cvxpy/org/blob/main/GSoC2022/aryamanjeendgar/final_report.pdf))
- Continuous performance benchmarking ([GSOC project](https://github.com/cvxpy/org/blob/main/GSoC2022/parthb83/final_report.md))

API changes
Moving forward, the public API of CVXPY is considered to be everything that is importable directly from the `cvxpy` namespace. We plan to introduce a `cvxpy.experimental` namespace for features in development where the API has not yet been fixed. It is explicitly not a part of our API whether atoms are implemented by functions or classes, e.g. we do not consider replacing `cvxpy.power`, which is currently a class, with a function to be a breaking change or replacing `cp.quad_form` which is a function to become a class to be a breaking change. Code of the form `cvxpy.power(a, b)` is guaranteed to remain working.

Community
We were thrilled to see the CVXPY community grow since our last release. In GitHub issues and the increasingly utilized [GitHub discussions](https://github.com/cvxpy/cvxpy/discussions), we saw a lot of great reports and questions. Reaching almost 1000 members, the [CVXPY Discord](https://discord.gg/4urRQeGBCr) has become a great place to ask questions and get quick help. It was great to meet some of you at SciPy 2022 and ICCOPT 2022.

Planned projects
A major upcoming project is an overhaul of the web documentation, making it more modern, structured, and interactive. For this, we received a [NumFOCUS Small Development Grant](https://numfocus.org/programs/small-development-grants) and are currently looking for a web developer to help us with the implementation. Email us at [cvxpydevsgmail.com](mailto:cvxpydevsgmail.com) if interested.

Contributors
This release would not have been possible without the contributions of many
CVXPY users and developers. Across 30 contributors and 95 PRs, we would like to
thank the following people for their contributions to this release (in alphabetical order):

- aryamanjeendgar | 1740, 1789, 1833, 1875, 1899
- BehrouzSohrabi | 1966
- Brown2345 | 1754
- chrisyeh96 | 1814, 1861, 1862
- dcajasn | 1897
- ericlux | 1869, 1867
- fabinsch | 1882, 1894
- goulart-paul | 1888
- h-vetinari | [conda-forge PR 75](https://github.com/conda-forge/cvxpy-feedstock/pull/75)
- imcjp | 1822
- JiaxinWang-thu | 1720
- jlchen0 | 1986
- joycebrum | 1892, 1927
- KerimovEmil | 1871
- merraksh | 1935
- Michael-123123 | 1793
- mkoeppe | 1707, 1705, 1719, 1727
- mlubin | 1859, 1872
- parthb83 | 1768, 1810, 1798
- phschiele | 1748, 1783, 1725, 1792, 1804, 1803, 1838, 1839, 1846, 1851, 1874, 1852, 1887, 1893, 1896, 1922, 1931, 1840, 1933, 1937, 1936, 1929, 1979
- piiq | 1951
- r-barnes | 1693
- rileyjmurray | 1733, 1736, 1738, 1866, 1977, 1976, 1978, 1984, 1987
- rluce | 1962
- roberthuisman | 1854
- SteveDiamond | 1689, 1757, 1761, 1794, 1802, 1807, 1796, 1818, 1820, 1829, 1835, 1844, 1856, 1880, 1885, 1886, 1877, 1898, 1909
- tasseff | 1830
- usamamuneeb | 1769
- wujianjack | 1836
- yasirroni | 1744, 1745, 1756

Special thanks to michaels0m for numerous discussions about the new backend.

1.3.0

Page 2 of 8

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.