-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cvxpy
fails to install on Python 3.12
#2269
Comments
I found a thread for a similar issue here. |
SCS compilation on Python 3.12 is work in progress, there's a PR open (bodono/scs-python#70). If you are on mac or linux this should work
|
This revision contains bug fixes regarding edge cases of back-tests with changing universes, which have been provided by github PRs #113 and #114. New test cases have been made for those edge cases. Then, we migrated the Python packaging to the new pyproject.toml system and are updating the rest of the development suite. We are improving the code quality overall using pylint (https://pylint.readthedocs.io/), an advanced Python syntax parser and static analysis system. The current Cvxportfolio overall pylint score is 9/10 (was a bit more than 8/10 for the last revision). We aim for maximum score, which ensures the highest code quality, readability, and maintainability. We are also improving test coverage, which is now at about 99%. Html documentation is also being improved and will eventually cover the whole library, including all internal interfaces and low-level objects. Lastly, we are sadly aware than Cvxportfolio can't currently be installed on Python 3.12, due to the removal of distutils from the Standard Library which broke the packaging of a sub-dependency package (see cvxpy/cvxpy#2269, bodono/scs-python#70, bodono/scs-python#69). A workaround exists, see cvxpy/cvxpy#2269. We are monitoring the situation and may redesign Cvxportfolio's dependency graph.
any hope ? scs is now on pypi for Python-3.12. |
I could install cvxpy1.4.2 in Python 3.12 via |
You may retry now, the |
@enzbus conda-forge/scs-feedstock#38 added scs 3.2.4 to conda-forge. 3.2.4 adds Python 3.12 support but it was not built in that PR. There is a follow up PR, conda-forge/scs-feedstock#40, adding the 3.12 build. Still, the 3.12 build should be available from conda-forge in the next couple hours (once that PR finishes building and gets seeded to the CDN). |
Having cvxpy-1.4.2 wheels on pypi for Python-3.12 would have been nice. |
It still fails using |
@RoyiAvital Can you share how it fails? There is now a 3.12 wheel for Windows at https://pypi.org/project/scs/3.2.4.post1/#files |
@wshanks , I can share some screen shots of my failing installation (Few minutes ago) on Python 3.12.2: I can share the whole text: D:\Applications\WinPython\WPy64-31220\scripts>pip install --upgrade cvxpy
Collecting cvxpy
Downloading cvxpy-1.4.2.tar.gz (1.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.6/1.6 MB 4.3 MB/s eta 0:00:00
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Collecting osqp>=0.6.2 (from cvxpy)
Downloading osqp-0.6.5-cp312-cp312-win_amd64.whl.metadata (1.8 kB)
Requirement already satisfied: ecos>=2 in d:\applications\winpython\wpy64-31220\python-3.12.2.amd64\lib\site-packages (from cvxpy) (2.0.13)
Requirement already satisfied: clarabel>=0.5.0 in d:\applications\winpython\wpy64-31220\python-3.12.2.amd64\lib\site-packages (from cvxpy) (0.6.0)
Requirement already satisfied: scs>=3.0 in d:\applications\winpython\wpy64-31220\python-3.12.2.amd64\lib\site-packages (from cvxpy) (3.2.4.post1)
Requirement already satisfied: numpy>=1.15 in d:\applications\winpython\wpy64-31220\python-3.12.2.amd64\lib\site-packages (from cvxpy) (1.26.4)
Requirement already satisfied: scipy>=1.1.0 in d:\applications\winpython\wpy64-31220\python-3.12.2.amd64\lib\site-packages (from cvxpy) (1.12.0)
Requirement already satisfied: pybind11 in d:\applications\winpython\wpy64-31220\python-3.12.2.amd64\lib\site-packages (from cvxpy) (2.11.1)
Collecting scipy>=1.1.0 (from cvxpy)
Downloading scipy-1.11.4-cp312-cp312-win_amd64.whl.metadata (60 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 60.4/60.4 kB ? eta 0:00:00
Collecting qdldl (from osqp>=0.6.2->cvxpy)
Downloading qdldl-0.1.7.post0.tar.gz (70 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 71.0/71.0 kB 3.8 MB/s eta 0:00:00
Installing build dependencies ... done
Getting requirements to build wheel ... done
Installing backend dependencies ... done
Preparing metadata (pyproject.toml) ... done
Downloading osqp-0.6.5-cp312-cp312-win_amd64.whl (293 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 293.4/293.4 kB 4.6 MB/s eta 0:00:00
Downloading scipy-1.11.4-cp312-cp312-win_amd64.whl (43.7 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 43.7/43.7 MB 8.7 MB/s eta 0:00:00
Building wheels for collected packages: cvxpy, qdldl
Building wheel for cvxpy (pyproject.toml) ... error
error: subprocess-exited-with-error
× Building wheel for cvxpy (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [438 lines of output]
running bdist_wheel
running build
running build_py
creating build
creating build\lib.win-amd64-cpython-312
creating build\lib.win-amd64-cpython-312\cvxpy
copying cvxpy\error.py -> build\lib.win-amd64-cpython-312\cvxpy
copying cvxpy\settings.py -> build\lib.win-amd64-cpython-312\cvxpy
copying cvxpy\version.py -> build\lib.win-amd64-cpython-312\cvxpy
copying cvxpy\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy
creating build\lib.win-amd64-cpython-312\setup
copying setup\extensions.py -> build\lib.win-amd64-cpython-312\setup
copying setup\versioning.py -> build\lib.win-amd64-cpython-312\setup
copying setup\__init__.py -> build\lib.win-amd64-cpython-312\setup
creating build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\atom.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\axis_atom.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\condition_number.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\cummax.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\dist_ratio.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\dotsort.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\errormsg.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\eye_minus_inv.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\gen_lambda_max.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\geo_mean.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\gmatmul.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\harmonic_mean.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\inv_prod.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\lambda_max.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\lambda_min.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\lambda_sum_largest.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\lambda_sum_smallest.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\length.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\log_det.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\log_sum_exp.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\matrix_frac.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\max.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\min.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\mixed_norm.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\norm.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\norm1.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\norm_inf.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\norm_nuc.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\one_minus_pos.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\perspective.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\pf_eigenvalue.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\pnorm.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\prod.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\ptp.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\quad_form.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\quad_over_lin.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\sigma_max.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\sign.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\stats.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\sum_largest.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\sum_smallest.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\sum_squares.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\suppfunc.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\total_variation.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\tr_inv.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\von_neumann_entr.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
copying cvxpy\atoms\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms
creating build\lib.win-amd64-cpython-312\cvxpy\constraints
copying cvxpy\constraints\cones.py -> build\lib.win-amd64-cpython-312\cvxpy\constraints
copying cvxpy\constraints\constraint.py -> build\lib.win-amd64-cpython-312\cvxpy\constraints
copying cvxpy\constraints\exponential.py -> build\lib.win-amd64-cpython-312\cvxpy\constraints
copying cvxpy\constraints\finite_set.py -> build\lib.win-amd64-cpython-312\cvxpy\constraints
copying cvxpy\constraints\nonpos.py -> build\lib.win-amd64-cpython-312\cvxpy\constraints
copying cvxpy\constraints\power.py -> build\lib.win-amd64-cpython-312\cvxpy\constraints
copying cvxpy\constraints\psd.py -> build\lib.win-amd64-cpython-312\cvxpy\constraints
copying cvxpy\constraints\second_order.py -> build\lib.win-amd64-cpython-312\cvxpy\constraints
copying cvxpy\constraints\utilities.py -> build\lib.win-amd64-cpython-312\cvxpy\constraints
copying cvxpy\constraints\zero.py -> build\lib.win-amd64-cpython-312\cvxpy\constraints
copying cvxpy\constraints\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\constraints
creating build\lib.win-amd64-cpython-312\cvxpy\cvxcore
copying cvxpy\cvxcore\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\cvxcore
creating build\lib.win-amd64-cpython-312\cvxpy\expressions
copying cvxpy\expressions\cvxtypes.py -> build\lib.win-amd64-cpython-312\cvxpy\expressions
copying cvxpy\expressions\expression.py -> build\lib.win-amd64-cpython-312\cvxpy\expressions
copying cvxpy\expressions\leaf.py -> build\lib.win-amd64-cpython-312\cvxpy\expressions
copying cvxpy\expressions\variable.py -> build\lib.win-amd64-cpython-312\cvxpy\expressions
copying cvxpy\expressions\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\expressions
creating build\lib.win-amd64-cpython-312\cvxpy\interface
copying cvxpy\interface\base_matrix_interface.py -> build\lib.win-amd64-cpython-312\cvxpy\interface
copying cvxpy\interface\matrix_utilities.py -> build\lib.win-amd64-cpython-312\cvxpy\interface
copying cvxpy\interface\scipy_wrapper.py -> build\lib.win-amd64-cpython-312\cvxpy\interface
copying cvxpy\interface\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\interface
creating build\lib.win-amd64-cpython-312\cvxpy\lin_ops
copying cvxpy\lin_ops\canon_backend.py -> build\lib.win-amd64-cpython-312\cvxpy\lin_ops
copying cvxpy\lin_ops\lin_constraints.py -> build\lib.win-amd64-cpython-312\cvxpy\lin_ops
copying cvxpy\lin_ops\lin_op.py -> build\lib.win-amd64-cpython-312\cvxpy\lin_ops
copying cvxpy\lin_ops\lin_utils.py -> build\lib.win-amd64-cpython-312\cvxpy\lin_ops
copying cvxpy\lin_ops\tree_mat.py -> build\lib.win-amd64-cpython-312\cvxpy\lin_ops
copying cvxpy\lin_ops\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\lin_ops
creating build\lib.win-amd64-cpython-312\cvxpy\problems
copying cvxpy\problems\iterative.py -> build\lib.win-amd64-cpython-312\cvxpy\problems
copying cvxpy\problems\objective.py -> build\lib.win-amd64-cpython-312\cvxpy\problems
copying cvxpy\problems\param_prob.py -> build\lib.win-amd64-cpython-312\cvxpy\problems
copying cvxpy\problems\problem.py -> build\lib.win-amd64-cpython-312\cvxpy\problems
copying cvxpy\problems\xpress_problem.py -> build\lib.win-amd64-cpython-312\cvxpy\problems
copying cvxpy\problems\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\problems
creating build\lib.win-amd64-cpython-312\cvxpy\reductions
copying cvxpy\reductions\canonicalization.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions
copying cvxpy\reductions\chain.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions
copying cvxpy\reductions\cvx_attr2constr.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions
copying cvxpy\reductions\eval_params.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions
copying cvxpy\reductions\flip_objective.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions
copying cvxpy\reductions\inverse_data.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions
copying cvxpy\reductions\matrix_stuffing.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions
copying cvxpy\reductions\reduction.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions
copying cvxpy\reductions\solution.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions
copying cvxpy\reductions\utilities.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions
copying cvxpy\reductions\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions
creating build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\base_test.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\ram_limited.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\solver_test_helpers.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_atoms.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_benchmarks.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_complex.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_cone2cone.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_conic_solvers.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_constant.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_constant_atoms.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_constraints.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_convolution.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_copy.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_curvature.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_custom_solver.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_derivative.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_dgp.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_dgp2dcp.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_domain.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_dpp.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_dqcp.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_errors.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_examples.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_expressions.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_expression_methods.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_grad.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_gurobi_write.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_interfaces.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_KKT.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_kron_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_linalg_utils.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_linear_cone.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_lin_ops.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_matrices.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_mip_vars.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_monotonicity.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_nonlinear_atoms.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_objectives.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_param_cone_prog.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_param_quad_prog.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_perspective.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_power_tools.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_problem.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_python_backends.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_qp_solvers.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_quadratic.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_quad_form.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_scalarize.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_semidefinite_vars.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_shape.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_sign.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_suppfunc.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_valinvec2mixedint.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_versioning.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\test_von_neumann_entr.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
copying cvxpy\tests\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\tests
creating build\lib.win-amd64-cpython-312\cvxpy\transforms
copying cvxpy\transforms\indicator.py -> build\lib.win-amd64-cpython-312\cvxpy\transforms
copying cvxpy\transforms\linearize.py -> build\lib.win-amd64-cpython-312\cvxpy\transforms
copying cvxpy\transforms\partial_optimize.py -> build\lib.win-amd64-cpython-312\cvxpy\transforms
copying cvxpy\transforms\scalarize.py -> build\lib.win-amd64-cpython-312\cvxpy\transforms
copying cvxpy\transforms\suppfunc.py -> build\lib.win-amd64-cpython-312\cvxpy\transforms
copying cvxpy\transforms\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\transforms
creating build\lib.win-amd64-cpython-312\cvxpy\utilities
copying cvxpy\utilities\canonical.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
copying cvxpy\utilities\coeff_extractor.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
copying cvxpy\utilities\cvxpy_upgrade.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
copying cvxpy\utilities\debug_tools.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
copying cvxpy\utilities\deterministic.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
copying cvxpy\utilities\grad.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
copying cvxpy\utilities\key_utils.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
copying cvxpy\utilities\linalg.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
copying cvxpy\utilities\performance_utils.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
copying cvxpy\utilities\perspective_utils.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
copying cvxpy\utilities\power_tools.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
copying cvxpy\utilities\replace_quad_forms.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
copying cvxpy\utilities\scopes.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
copying cvxpy\utilities\shape.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
copying cvxpy\utilities\sign.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
copying cvxpy\utilities\versioning.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
copying cvxpy\utilities\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities
creating build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
copying cvxpy\atoms\affine\add_expr.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
copying cvxpy\atoms\affine\affine_atom.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
copying cvxpy\atoms\affine\binary_operators.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
copying cvxpy\atoms\affine\bmat.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
copying cvxpy\atoms\affine\conj.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
copying cvxpy\atoms\affine\conv.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
copying cvxpy\atoms\affine\cumsum.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
copying cvxpy\atoms\affine\diag.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
copying cvxpy\atoms\affine\diff.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
copying cvxpy\atoms\affine\hstack.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
copying cvxpy\atoms\affine\imag.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
copying cvxpy\atoms\affine\index.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
copying cvxpy\atoms\affine\kron.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
copying cvxpy\atoms\affine\partial_trace.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
copying cvxpy\atoms\affine\partial_transpose.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
copying cvxpy\atoms\affine\promote.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
copying cvxpy\atoms\affine\real.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
copying cvxpy\atoms\affine\reshape.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
copying cvxpy\atoms\affine\sum.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
copying cvxpy\atoms\affine\trace.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
copying cvxpy\atoms\affine\transpose.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
copying cvxpy\atoms\affine\unary_operators.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
copying cvxpy\atoms\affine\upper_tri.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
copying cvxpy\atoms\affine\vec.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
copying cvxpy\atoms\affine\vstack.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
copying cvxpy\atoms\affine\wraps.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
copying cvxpy\atoms\affine\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\affine
creating build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
copying cvxpy\atoms\elementwise\abs.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
copying cvxpy\atoms\elementwise\ceil.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
copying cvxpy\atoms\elementwise\elementwise.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
copying cvxpy\atoms\elementwise\entr.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
copying cvxpy\atoms\elementwise\exp.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
copying cvxpy\atoms\elementwise\huber.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
copying cvxpy\atoms\elementwise\inv_pos.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
copying cvxpy\atoms\elementwise\kl_div.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
copying cvxpy\atoms\elementwise\log.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
copying cvxpy\atoms\elementwise\log1p.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
copying cvxpy\atoms\elementwise\loggamma.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
copying cvxpy\atoms\elementwise\logistic.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
copying cvxpy\atoms\elementwise\log_normcdf.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
copying cvxpy\atoms\elementwise\maximum.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
copying cvxpy\atoms\elementwise\minimum.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
copying cvxpy\atoms\elementwise\neg.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
copying cvxpy\atoms\elementwise\pos.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
copying cvxpy\atoms\elementwise\power.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
copying cvxpy\atoms\elementwise\rel_entr.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
copying cvxpy\atoms\elementwise\scalene.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
copying cvxpy\atoms\elementwise\sqrt.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
copying cvxpy\atoms\elementwise\square.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
copying cvxpy\atoms\elementwise\xexp.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
copying cvxpy\atoms\elementwise\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\atoms\elementwise
creating build\lib.win-amd64-cpython-312\cvxpy\cvxcore\python
copying cvxpy\cvxcore\python\canonInterface.py -> build\lib.win-amd64-cpython-312\cvxpy\cvxcore\python
copying cvxpy\cvxcore\python\cvxcore.py -> build\lib.win-amd64-cpython-312\cvxpy\cvxcore\python
copying cvxpy\cvxcore\python\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\cvxcore\python
creating build\lib.win-amd64-cpython-312\cvxpy\expressions\constants
copying cvxpy\expressions\constants\callback_param.py -> build\lib.win-amd64-cpython-312\cvxpy\expressions\constants
copying cvxpy\expressions\constants\constant.py -> build\lib.win-amd64-cpython-312\cvxpy\expressions\constants
copying cvxpy\expressions\constants\parameter.py -> build\lib.win-amd64-cpython-312\cvxpy\expressions\constants
copying cvxpy\expressions\constants\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\expressions\constants
creating build\lib.win-amd64-cpython-312\cvxpy\interface\numpy_interface
copying cvxpy\interface\numpy_interface\matrix_interface.py -> build\lib.win-amd64-cpython-312\cvxpy\interface\numpy_interface
copying cvxpy\interface\numpy_interface\ndarray_interface.py -> build\lib.win-amd64-cpython-312\cvxpy\interface\numpy_interface
copying cvxpy\interface\numpy_interface\sparse_matrix_interface.py -> build\lib.win-amd64-cpython-312\cvxpy\interface\numpy_interface
copying cvxpy\interface\numpy_interface\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\interface\numpy_interface
creating build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real
copying cvxpy\reductions\complex2real\complex2real.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real
copying cvxpy\reductions\complex2real\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real creating build\lib.win-amd64-cpython-312\cvxpy\reductions\cone2cone
copying cvxpy\reductions\cone2cone\affine2direct.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\cone2cone
copying cvxpy\reductions\cone2cone\approximations.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\cone2cone copying cvxpy\reductions\cone2cone\exotic2common.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\cone2cone
copying cvxpy\reductions\cone2cone\soc2psd.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\cone2cone
copying cvxpy\reductions\cone2cone\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\cone2cone
creating build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone
copying cvxpy\reductions\dcp2cone\cone_matrix_stuffing.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone
copying cvxpy\reductions\dcp2cone\dcp2cone.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone
copying cvxpy\reductions\dcp2cone\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone
creating build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp
copying cvxpy\reductions\dgp2dcp\dgp2dcp.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp
copying cvxpy\reductions\dgp2dcp\util.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp
copying cvxpy\reductions\dgp2dcp\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp
creating build\lib.win-amd64-cpython-312\cvxpy\reductions\discrete2mixedint
copying cvxpy\reductions\discrete2mixedint\valinvec2mixedint.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\discrete2mixedint
copying cvxpy\reductions\discrete2mixedint\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\discrete2mixedint
creating build\lib.win-amd64-cpython-312\cvxpy\reductions\dqcp2dcp
copying cvxpy\reductions\dqcp2dcp\dqcp2dcp.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dqcp2dcp
copying cvxpy\reductions\dqcp2dcp\inverse.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dqcp2dcp
copying cvxpy\reductions\dqcp2dcp\sets.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dqcp2dcp
copying cvxpy\reductions\dqcp2dcp\tighten.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dqcp2dcp
copying cvxpy\reductions\dqcp2dcp\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dqcp2dcp
creating build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl
copying cvxpy\reductions\eliminate_pwl\eliminate_pwl.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl
copying cvxpy\reductions\eliminate_pwl\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl
creating build\lib.win-amd64-cpython-312\cvxpy\reductions\qp2quad_form
copying cvxpy\reductions\qp2quad_form\qp2symbolic_qp.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\qp2quad_form
copying cvxpy\reductions\qp2quad_form\qp_matrix_stuffing.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\qp2quad_form
copying cvxpy\reductions\qp2quad_form\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\qp2quad_form creating build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers
copying cvxpy\reductions\solvers\bisection.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers
copying cvxpy\reductions\solvers\compr_matrix.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers
copying cvxpy\reductions\solvers\constant_solver.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers
copying cvxpy\reductions\solvers\defines.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers
copying cvxpy\reductions\solvers\intermediate_chain.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers copying cvxpy\reductions\solvers\kktsolver.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers
copying cvxpy\reductions\solvers\solver.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers
copying cvxpy\reductions\solvers\solving_chain.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers
copying cvxpy\reductions\solvers\utilities.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers
copying cvxpy\reductions\solvers\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers
creating build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real\canonicalizers
copying cvxpy\reductions\complex2real\canonicalizers\abs_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real\canonicalizers
copying cvxpy\reductions\complex2real\canonicalizers\aff_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real\canonicalizers
copying cvxpy\reductions\complex2real\canonicalizers\constant_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real\canonicalizers
copying cvxpy\reductions\complex2real\canonicalizers\equality_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real\canonicalizers
copying cvxpy\reductions\complex2real\canonicalizers\inequality_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real\canonicalizers
copying cvxpy\reductions\complex2real\canonicalizers\matrix_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real\canonicalizers
copying cvxpy\reductions\complex2real\canonicalizers\param_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real\canonicalizers
copying cvxpy\reductions\complex2real\canonicalizers\pnorm_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real\canonicalizers
copying cvxpy\reductions\complex2real\canonicalizers\psd_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real\canonicalizers
copying cvxpy\reductions\complex2real\canonicalizers\soc_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real\canonicalizers
copying cvxpy\reductions\complex2real\canonicalizers\variable_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real\canonicalizers
copying cvxpy\reductions\complex2real\canonicalizers\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\complex2real\canonicalizers
creating build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
copying cvxpy\reductions\dcp2cone\canonicalizers\entr_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
copying cvxpy\reductions\dcp2cone\canonicalizers\exp_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
copying cvxpy\reductions\dcp2cone\canonicalizers\geo_mean_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
copying cvxpy\reductions\dcp2cone\canonicalizers\huber_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
copying cvxpy\reductions\dcp2cone\canonicalizers\indicator_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
copying cvxpy\reductions\dcp2cone\canonicalizers\kl_div_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
copying cvxpy\reductions\dcp2cone\canonicalizers\lambda_max_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
copying cvxpy\reductions\dcp2cone\canonicalizers\lambda_sum_largest_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
copying cvxpy\reductions\dcp2cone\canonicalizers\log1p_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
copying cvxpy\reductions\dcp2cone\canonicalizers\logistic_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
copying cvxpy\reductions\dcp2cone\canonicalizers\log_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
copying cvxpy\reductions\dcp2cone\canonicalizers\log_det_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
copying cvxpy\reductions\dcp2cone\canonicalizers\log_sum_exp_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
copying cvxpy\reductions\dcp2cone\canonicalizers\matrix_frac_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
copying cvxpy\reductions\dcp2cone\canonicalizers\mul_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
copying cvxpy\reductions\dcp2cone\canonicalizers\normNuc_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
copying cvxpy\reductions\dcp2cone\canonicalizers\perspective_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
copying cvxpy\reductions\dcp2cone\canonicalizers\pnorm_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
copying cvxpy\reductions\dcp2cone\canonicalizers\power_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
copying cvxpy\reductions\dcp2cone\canonicalizers\quad_form_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
copying cvxpy\reductions\dcp2cone\canonicalizers\quad_over_lin_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
copying cvxpy\reductions\dcp2cone\canonicalizers\rel_entr_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
copying cvxpy\reductions\dcp2cone\canonicalizers\sigma_max_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
copying cvxpy\reductions\dcp2cone\canonicalizers\suppfunc_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
copying cvxpy\reductions\dcp2cone\canonicalizers\tr_inv_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
copying cvxpy\reductions\dcp2cone\canonicalizers\von_neumann_entr_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
copying cvxpy\reductions\dcp2cone\canonicalizers\xexp_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
copying cvxpy\reductions\dcp2cone\canonicalizers\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dcp2cone\canonicalizers
creating build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
copying cvxpy\reductions\dgp2dcp\canonicalizers\add_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
copying cvxpy\reductions\dgp2dcp\canonicalizers\constant_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
copying cvxpy\reductions\dgp2dcp\canonicalizers\div_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
copying cvxpy\reductions\dgp2dcp\canonicalizers\exp_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
copying cvxpy\reductions\dgp2dcp\canonicalizers\eye_minus_inv_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
copying cvxpy\reductions\dgp2dcp\canonicalizers\finite_set_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
copying cvxpy\reductions\dgp2dcp\canonicalizers\geo_mean_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
copying cvxpy\reductions\dgp2dcp\canonicalizers\gmatmul_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
copying cvxpy\reductions\dgp2dcp\canonicalizers\log_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
copying cvxpy\reductions\dgp2dcp\canonicalizers\mulexpression_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
copying cvxpy\reductions\dgp2dcp\canonicalizers\mul_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
copying cvxpy\reductions\dgp2dcp\canonicalizers\nonpos_constr_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
copying cvxpy\reductions\dgp2dcp\canonicalizers\norm1_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
copying cvxpy\reductions\dgp2dcp\canonicalizers\norm_inf_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
copying cvxpy\reductions\dgp2dcp\canonicalizers\one_minus_pos_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
copying cvxpy\reductions\dgp2dcp\canonicalizers\parameter_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
copying cvxpy\reductions\dgp2dcp\canonicalizers\pf_eigenvalue_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
copying cvxpy\reductions\dgp2dcp\canonicalizers\pnorm_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
copying cvxpy\reductions\dgp2dcp\canonicalizers\power_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
copying cvxpy\reductions\dgp2dcp\canonicalizers\prod_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
copying cvxpy\reductions\dgp2dcp\canonicalizers\quad_form_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
copying cvxpy\reductions\dgp2dcp\canonicalizers\quad_over_lin_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
copying cvxpy\reductions\dgp2dcp\canonicalizers\sum_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
copying cvxpy\reductions\dgp2dcp\canonicalizers\trace_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
copying cvxpy\reductions\dgp2dcp\canonicalizers\xexp_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
copying cvxpy\reductions\dgp2dcp\canonicalizers\zero_constr_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
copying cvxpy\reductions\dgp2dcp\canonicalizers\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\dgp2dcp\canonicalizers
creating build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl\canonicalizers
copying cvxpy\reductions\eliminate_pwl\canonicalizers\abs_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl\canonicalizers
copying cvxpy\reductions\eliminate_pwl\canonicalizers\cummax_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl\canonicalizers
copying cvxpy\reductions\eliminate_pwl\canonicalizers\cumsum_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl\canonicalizers
copying cvxpy\reductions\eliminate_pwl\canonicalizers\dotsort_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl\canonicalizers
copying cvxpy\reductions\eliminate_pwl\canonicalizers\maximum_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl\canonicalizers
copying cvxpy\reductions\eliminate_pwl\canonicalizers\max_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl\canonicalizers
copying cvxpy\reductions\eliminate_pwl\canonicalizers\minimum_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl\canonicalizers
copying cvxpy\reductions\eliminate_pwl\canonicalizers\min_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl\canonicalizers
copying cvxpy\reductions\eliminate_pwl\canonicalizers\norm1_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl\canonicalizers
copying cvxpy\reductions\eliminate_pwl\canonicalizers\norm_inf_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl\canonicalizers
copying cvxpy\reductions\eliminate_pwl\canonicalizers\sum_largest_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl\canonicalizers
copying cvxpy\reductions\eliminate_pwl\canonicalizers\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\eliminate_pwl\canonicalizers
creating build\lib.win-amd64-cpython-312\cvxpy\reductions\qp2quad_form\canonicalizers
copying cvxpy\reductions\qp2quad_form\canonicalizers\huber_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\qp2quad_form\canonicalizers
copying cvxpy\reductions\qp2quad_form\canonicalizers\power_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\qp2quad_form\canonicalizers
copying cvxpy\reductions\qp2quad_form\canonicalizers\quad_form_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\qp2quad_form\canonicalizers
copying cvxpy\reductions\qp2quad_form\canonicalizers\quad_over_lin_canon.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\qp2quad_form\canonicalizers
copying cvxpy\reductions\qp2quad_form\canonicalizers\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\qp2quad_form\canonicalizers
creating build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
copying cvxpy\reductions\solvers\conic_solvers\cbc_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
copying cvxpy\reductions\solvers\conic_solvers\clarabel_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
copying cvxpy\reductions\solvers\conic_solvers\conic_solver.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
copying cvxpy\reductions\solvers\conic_solvers\copt_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
copying cvxpy\reductions\solvers\conic_solvers\cplex_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
copying cvxpy\reductions\solvers\conic_solvers\cvxopt_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
copying cvxpy\reductions\solvers\conic_solvers\diffcp_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
copying cvxpy\reductions\solvers\conic_solvers\ecos_bb_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
copying cvxpy\reductions\solvers\conic_solvers\ecos_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
copying cvxpy\reductions\solvers\conic_solvers\glop_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
copying cvxpy\reductions\solvers\conic_solvers\glpk_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
copying cvxpy\reductions\solvers\conic_solvers\glpk_mi_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
copying cvxpy\reductions\solvers\conic_solvers\gurobi_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
copying cvxpy\reductions\solvers\conic_solvers\mosek_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
copying cvxpy\reductions\solvers\conic_solvers\nag_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
copying cvxpy\reductions\solvers\conic_solvers\pdlp_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
copying cvxpy\reductions\solvers\conic_solvers\scipy_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
copying cvxpy\reductions\solvers\conic_solvers\scip_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
copying cvxpy\reductions\solvers\conic_solvers\scs_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
copying cvxpy\reductions\solvers\conic_solvers\sdpa_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
copying cvxpy\reductions\solvers\conic_solvers\xpress_conif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
copying cvxpy\reductions\solvers\conic_solvers\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\conic_solvers
creating build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\lp_solvers
copying cvxpy\reductions\solvers\lp_solvers\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\lp_solvers
creating build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\qp_solvers
copying cvxpy\reductions\solvers\qp_solvers\copt_qpif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\qp_solvers
copying cvxpy\reductions\solvers\qp_solvers\cplex_qpif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\qp_solvers
copying cvxpy\reductions\solvers\qp_solvers\gurobi_qpif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\qp_solvers
copying cvxpy\reductions\solvers\qp_solvers\osqp_qpif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\qp_solvers
copying cvxpy\reductions\solvers\qp_solvers\piqp_qpif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\qp_solvers
copying cvxpy\reductions\solvers\qp_solvers\proxqp_qpif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\qp_solvers
copying cvxpy\reductions\solvers\qp_solvers\qp_solver.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\qp_solvers
copying cvxpy\reductions\solvers\qp_solvers\xpress_qpif.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\qp_solvers
copying cvxpy\reductions\solvers\qp_solvers\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\reductions\solvers\qp_solvers
creating build\lib.win-amd64-cpython-312\cvxpy\utilities\cpp
copying cvxpy\utilities\cpp\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities\cpp
creating build\lib.win-amd64-cpython-312\cvxpy\utilities\cpp\sparsecholesky
copying cvxpy\utilities\cpp\sparsecholesky\__init__.py -> build\lib.win-amd64-cpython-312\cvxpy\utilities\cpp\sparsecholesky
copying cvxpy\py.typed -> build\lib.win-amd64-cpython-312\cvxpy
running build_ext
building '_cvxcore' extension
error: Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for cvxpy
Building wheel for qdldl (pyproject.toml) ... error
error: subprocess-exited-with-error
× Building wheel for qdldl (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [73 lines of output]
running bdist_wheel
running build
running build_ext
Traceback (most recent call last):
File "<string>", line 81, in build_extensions
File "D:\Applications\WinPython\WPy64-31220\python-3.12.2.amd64\Lib\subprocess.py", line 466, in check_output
return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Applications\WinPython\WPy64-31220\python-3.12.2.amd64\Lib\subprocess.py", line 548, in run
with Popen(*popenargs, **kwargs) as process:
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Applications\WinPython\WPy64-31220\python-3.12.2.amd64\Lib\subprocess.py", line 1026, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "D:\Applications\WinPython\WPy64-31220\python-3.12.2.amd64\Lib\subprocess.py", line 1538, in _execute_child hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [WinError 2] The system cannot find the file specified
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "D:\Applications\WinPython\WPy64-31220\python-3.12.2.amd64\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 353, in <module>
main()
File "D:\Applications\WinPython\WPy64-31220\python-3.12.2.amd64\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 335, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Applications\WinPython\WPy64-31220\python-3.12.2.amd64\Lib\site-packages\pip\_vendor\pyproject_hooks\_in_process\_in_process.py", line 251, in build_wheel
return _build_backend().build_wheel(wheel_directory, config_settings,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\build_meta.py", line 404, in build_wheel
return self._build_with_temp_dir(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\build_meta.py", line 389, in _build_with_temp_dir
self.run_setup()
File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 113, in <module>
File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\__init__.py", line 103, in setup
return distutils.core.setup(**attrs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\_distutils\core.py", line 185, in setup
return run_commands(dist)
^^^^^^^^^^^^^^^^^^
File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\_distutils\core.py", line 201, in run_commands
dist.run_commands()
File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\_distutils\dist.py", line 969, in run_commands
self.run_command(cmd)
File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\dist.py", line 963, in run_command
super().run_command(command)
File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\_distutils\dist.py", line 988, in run_command
cmd_obj.run()
File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\normal\Lib\site-packages\wheel\bdist_wheel.py", line 368, in run
self.run_command("build")
File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\_distutils\cmd.py", line 318, in run_command
self.distribution.run_command(command)
File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\dist.py", line 963, in run_command
super().run_command(command)
File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\_distutils\dist.py", line 988, in run_command
cmd_obj.run()
File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\_distutils\command\build.py", line 131, in run
self.run_command(cmd_name)
File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\_distutils\cmd.py", line 318, in run_command
self.distribution.run_command(command)
File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\dist.py", line 963, in run_command
super().run_command(command)
File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\_distutils\dist.py", line 988, in run_command
cmd_obj.run()
File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\command\build_ext.py", line 89, in run
_build_ext.run(self)
File "D:\Applications\WinPython\WPy64-31220\settings\AppData\Local\Temp\pip-build-env-qc755lnl\overlay\Lib\site-packages\setuptools\_distutils\command\build_ext.py", line 345, in run
self.build_extensions()
File "<string>", line 83, in build_extensions
RuntimeError: CMake must be installed to build qdldl
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for qdldl
Failed to build cvxpy qdldl
ERROR: Could not build wheels for cvxpy, qdldl, which is required to install pyproject.toml-based projects |
Thanks @RoyiAvital. So scs is okay now, but qdldl (dependency of osqp which is a dependency of cvxpy) still has no wheel for Python 3.12. So the next step would be to ask if wheels for 3.12 could be added at https://github.com/osqp/qdldl-python. There is a conda-forge package for qdldl for Python 3.12 so it should be compatible. (Alternatively you could try to set up the build system to build from source by installing cmake). |
@phschiele I noticed that you commented here that cvxpy will release this month with wheels for Python 3.12. I was curious if there was any overlap between the cvxpy and osqp teams to help get 3.12 wheels of qdldl released as well to allow installing cvxpy on 3.12 without building anything locally. |
@wshanks , Even on |
if you are in a hurry, you can grab the .whl from here (minus one patch in waiting) https://github.com/cvxpy/cvxpy/actions/runs/8604826651/job/23580091820
|
@RoyiAvital Strange, it "works for me." You could perhaps open an issue at https://github.com/conda-forge/cvxpy-feedstock/issues with the error. |
We've had working cvxpy builds for 3.12 in conda-forge for a while (including successfully running the whole test suite). If you run into problems, please raise an issue on the feedstock - it's almost certainly a misconfiguration issue, or an unsupported use case (like mixing channels, which is fragile). |
I will try again today. @h-vetinari , Are you on Windows? |
Conda-forge provides cvxpy builds for windows, and I also have a windows machine to test, so I guess that counts as a yes. ;-) |
Hi, I retried now on Windows + Python 3.12 using Thanks for the effort. |
We just released a patch that includes wheels for 3.12: Feel free to reopen if there are any remaining issues that we should take a look at with 3.12. |
I think that leaves qdldl as the only dependency without wheels for Python 3.12. I think it might have less demanding build time dependencies so maybe it is easy to |
qdldl wheels are up. |
@SteveDiamond Looks like your comment has (accidentally) reopened the issue. Closing. |
Describe the bug
Running
pip install cvxpy
fails when using Python 3.12To Reproduce
Output
![Screen Shot 2023-10-23 at 12 09 34](https://private-user-images.githubusercontent.com/13498941/277302792-8dbff6bb-ea62-4d80-a5b2-cf74410e333d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0OTQwNDgsIm5iZiI6MTczOTQ5Mzc0OCwicGF0aCI6Ii8xMzQ5ODk0MS8yNzczMDI3OTItOGRiZmY2YmItZWE2Mi00ZDgwLWE1YjItY2Y3NDQxMGUzMzNkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE0VDAwNDIyOFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWY0YzJjZDVjYmQyMWNkNjIzN2Q2YjgwNDJlZGE5ZjE0NzFhMmI1OTBiZDQ1OWM1MGE3ZmMyNWU5MDY3NDY0ZWYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.GCIT19b9Lyo0Dz_a0VIUgYhzH3Ju7uUoRRWFuVBYf6g)
Version
Additional context
The text was updated successfully, but these errors were encountered: