Skip to main content

Python interface to multiple optimization solvers

Project description

PyOptInterface (Python Optimization Interface)

PyOptInterface is an open-source Python library to provide a unified API to construct and solve optimization models with various optimizers.

The detailed documentation can be found here.

Key features compared with other modeling interfaces

It is designed as a very thin wrapper of native C API of optimizers and attempts to provide common abstractions of an algebraic modelling environment including model, variable, constraint and expression with the least overhead of performance.

The key features of PyOptInterface include:

  • Very fast speed to construct optimization model (10x faster than Pyomo, comparable with JuMP.jl and some official Python bindings provided by vendors of optimizer)
  • Highly efficient structured automatic differentiation for nonlinear optimization with JIT compilation (faster than other NLP frameworks)
  • Low overhead to modify and re-solve the problem incrementally (including adding/removing variables/constraints, changing objective function, etc.)
  • Unified API to cover common usages, write once and the code works for all optimizers
  • You still have escape hatch to query or modify solver-specific parameter/attribute/information for different optimizers directly like the vendor-specific Python binding of optimizer

Benchmark

The benchmark comparing PyOptInterface with some other modeling interfaces can be found here. PyOptInterface is among the fastest modeling interfaces in terms of model construction time and automatic differentiation of nonlinear optimization problems.

Installation

PyOptInterface is available on PyPI. You can install it via pip:

pip install pyoptinterface

After installation, you can import the package in Python console:

import pyoptinterface as poi

PyOptInterface has no dependencies other than Python itself. However, to use it with a specific optimizer, you need to install the corresponding optimizer manually. The details can be found on the configurations of optimizers.

In order to provide out-of-the-box support for open source optimizers (currently we support HiGHS), PyOptInterface can also be installed with pre-built optimizers. You can install them via pip:

pip install pyoptinterface[highs]

It will install a full-featured binary version of HiGHS optimizer via highsbox, which can be used with PyOptInterface.

What kind of problems can PyOptInterface solve?

It currently supports the following problem types:

  • Linear Programming (LP)
  • Mixed-Integer Linear Programming (MILP)
  • Quadratic Programming (QP)
  • Mixed-Integer Quadratic Programming (MIQP)
  • Quadratically Constrained Quadratic Programming (QCQP)
  • Mixed-Integer Quadratically Constrained Quadratic Programming (MIQCQP)
  • Second-Order Cone Programming (SOCP)
  • Mixed-Integer Second-Order Cone Programming (MISOCP)
  • Exponential Cone Programming (ECP)
  • Mixed-Integer Exponential Cone Programming (MIECP)
  • Nonlinear Programming (NLP)

What optimizers does PyOptInterface support?

It currently supports the following optimizers:

Short Example

import pyoptinterface as poi
from pyoptinterface import highs

model = highs.Model()

x = model.add_variable(lb=0, ub=1, domain=poi.VariableDomain.Continuous, name="x")
y = model.add_variable(lb=0, ub=1, domain=poi.VariableDomain.Integer, name="y")

con = model.add_linear_constraint(x + y >= 1.2, name="con")

obj = 2*x
model.set_objective(obj, poi.ObjectiveSense.Minimize)

model.set_model_attribute(poi.ModelAttribute.Silent, False)
model.optimize()

print(model.get_model_attribute(poi.ModelAttribute.TerminationStatus))
# TerminationStatusCode.OPTIMAL

x_val = model.get_value(x)
# 0.2

y_val = model.get_value(y)
# 1.0

Citation

If you use PyOptInterface in your research, please consider citing the following paper:

@article{yang2024accelerating,
      title={Accelerating Optimal Power Flow with Structure-aware Automatic Differentiation and Code Generation},
      author={Yang, Yue and Lin, Chenhui and Xu, Luo and Yang, Xiaodong and Wu, Wenchuan and Wang, Bin},
      journal={IEEE Transactions on Power Systems},
      year={2024},
      publisher={IEEE}
}

License

PyOptInterface is licensed under MPL-2.0 License.

It uses nanobind, fmtlib and martinus/unordered_dense as dependencies.

The design of PyOptInterface is inspired by JuMP.jl.

Some solver-related code in src folder is adapted from the corresponding solver interface package in JuMP.jl ecosystem, which is licensed under MIT License.

The header files in thirdparty/solvers directory are from the corresponding distribution of optimizers and are licensed under their own licenses.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyoptinterface-0.6.1-cp312-abi3-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.12+Windows x86-64

pyoptinterface-0.6.1-cp312-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.17+ x86-64

pyoptinterface-0.6.1-cp312-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (3.1 MB view details)

Uploaded CPython 3.12+manylinux: glibc 2.17+ ARM64

pyoptinterface-0.6.1-cp312-abi3-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.12+macOS 11.0+ ARM64

pyoptinterface-0.6.1-cp312-abi3-macosx_10_14_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.12+macOS 10.14+ x86-64

pyoptinterface-0.6.1-cp311-cp311-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.11Windows x86-64

pyoptinterface-0.6.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pyoptinterface-0.6.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (3.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

pyoptinterface-0.6.1-cp311-cp311-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyoptinterface-0.6.1-cp311-cp311-macosx_10_14_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.11macOS 10.14+ x86-64

pyoptinterface-0.6.1-cp310-cp310-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.10Windows x86-64

pyoptinterface-0.6.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pyoptinterface-0.6.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (3.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

pyoptinterface-0.6.1-cp310-cp310-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyoptinterface-0.6.1-cp310-cp310-macosx_10_14_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.10macOS 10.14+ x86-64

pyoptinterface-0.6.1-cp39-cp39-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.9Windows x86-64

pyoptinterface-0.6.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

pyoptinterface-0.6.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (3.2 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

pyoptinterface-0.6.1-cp39-cp39-macosx_11_0_arm64.whl (2.4 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

pyoptinterface-0.6.1-cp39-cp39-macosx_10_14_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.9macOS 10.14+ x86-64

File details

Details for the file pyoptinterface-0.6.1-cp312-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyoptinterface-0.6.1-cp312-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 a86d84eeb24ff80131811bd89d13502be328476984b185fad59a576183c53b26
MD5 b351223372427c7a101d060fdb207603
BLAKE2b-256 b7db79a99f6a200e50e8979ccfce4b4f5ac1e75601545e086eeff32e8b23103e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoptinterface-0.6.1-cp312-abi3-win_amd64.whl:

Publisher: wheel.yml on metab0t/PyOptInterface

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyoptinterface-0.6.1-cp312-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pyoptinterface-0.6.1-cp312-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 4591dcaf36ee5391b0941c85bb97f6518012d8fad22727ca5386e8edf2cecb5b
MD5 2a84ea832c9484dc9ee503a4d37b8946
BLAKE2b-256 468fced4950045932de41fcbe55476ad98f27280eef8be26a039da48b04abc5b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoptinterface-0.6.1-cp312-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: wheel.yml on metab0t/PyOptInterface

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyoptinterface-0.6.1-cp312-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for pyoptinterface-0.6.1-cp312-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 05846033342eb686e726fc90f6424683a82a05229698e406fdf3f30a12cd5168
MD5 05dad798e07d081bc9efa6b170fbe4c5
BLAKE2b-256 c140fd54ce13565275543e24f9a6b018d98b21043c3c2503da690799c943395e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoptinterface-0.6.1-cp312-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl:

Publisher: wheel.yml on metab0t/PyOptInterface

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyoptinterface-0.6.1-cp312-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyoptinterface-0.6.1-cp312-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8af32f165fce029bbde582e3a45c977bed2031137aa0074f12bf505d1f770e14
MD5 0314715596f929218afeda5f58e20888
BLAKE2b-256 2afb1638a39521ba724fc072cd54aff8fc6ec9fbd022aa95b20be59c5a50e43d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoptinterface-0.6.1-cp312-abi3-macosx_11_0_arm64.whl:

Publisher: wheel.yml on metab0t/PyOptInterface

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyoptinterface-0.6.1-cp312-abi3-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for pyoptinterface-0.6.1-cp312-abi3-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 f11a30e04b97a126b331e260fe21d4585edae4c92dfa145d4bf3482da3b0fddb
MD5 a01e14c0345a107df0f0ef06c37a5e6d
BLAKE2b-256 f4d0a12a35b52f3db636c72b3d49ff1bfb120d02bcec043170ac4639903918cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoptinterface-0.6.1-cp312-abi3-macosx_10_14_x86_64.whl:

Publisher: wheel.yml on metab0t/PyOptInterface

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyoptinterface-0.6.1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for pyoptinterface-0.6.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 64f42763269efa1d65fe324de549ef65a31e17089dde62b030c0b6a54b259786
MD5 3e6f167c26343cf05a0a6464537a1d16
BLAKE2b-256 42ec108b27297d9c9fb99567503b853ccc09c202b414996e6b4fcdcce9b8370c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoptinterface-0.6.1-cp311-cp311-win_amd64.whl:

Publisher: wheel.yml on metab0t/PyOptInterface

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyoptinterface-0.6.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pyoptinterface-0.6.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 d531816f185e6cbd1979aa516d632092227c26715b680317afdf6f12448d0b37
MD5 ed846c3b96be8c049d9369b9f2349f09
BLAKE2b-256 0dc419de942562f11194811902b50b674ab041d6d5ca52d7dbd3b7213776f02e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoptinterface-0.6.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: wheel.yml on metab0t/PyOptInterface

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyoptinterface-0.6.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for pyoptinterface-0.6.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 b5e3b077bc1b2808500e4b130e0e7e1612aab32fd1c26d6de243fcdf6d7b4a4b
MD5 e89728c92f85e0247de45b2d95190745
BLAKE2b-256 07282e9c76d6b59a7df55b79de4a76f00fbc9dae48bd15bb263418d80cef8f7d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoptinterface-0.6.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl:

Publisher: wheel.yml on metab0t/PyOptInterface

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyoptinterface-0.6.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyoptinterface-0.6.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 25f163c1c0e5f1a6fd996bb38508f166dace59c4d8f1c405baeed385bbb43087
MD5 48b4a70d98ca68598e4937a30e2d45f9
BLAKE2b-256 0f91a1dee92ee03e724df64c67884b6ef63732d6063811ff36d05264a4d9fd7d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoptinterface-0.6.1-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: wheel.yml on metab0t/PyOptInterface

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyoptinterface-0.6.1-cp311-cp311-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for pyoptinterface-0.6.1-cp311-cp311-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 19466a41a19551160cb0c6654e703eafc8e98f3827148b44915d137a33320188
MD5 f98d36a6e7c62b4316861d54c0d54491
BLAKE2b-256 e66e942f397d75f6b9cb48e569471e4264d67990cecb24e824911291cbedd1bc

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoptinterface-0.6.1-cp311-cp311-macosx_10_14_x86_64.whl:

Publisher: wheel.yml on metab0t/PyOptInterface

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyoptinterface-0.6.1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for pyoptinterface-0.6.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c4ef87b4d274e90da678c26d407672f39d8c2c8607a0ceb531a50c01a28f833f
MD5 c49c1c6510b1a493de294d78414c5a83
BLAKE2b-256 b35c20282838470cfaef1ea2c4f3f65e3cd7214c5140d533d63cc2bbcc7c4a99

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoptinterface-0.6.1-cp310-cp310-win_amd64.whl:

Publisher: wheel.yml on metab0t/PyOptInterface

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyoptinterface-0.6.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pyoptinterface-0.6.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b237d60708b1b9b245baba30e16b430e479425f934499eacfa18181dbf01ca6b
MD5 176c5fc2d5fd0ce0c1cee04f11c642ec
BLAKE2b-256 63c8de197555cf3cad6c58d426068ae33e0791f4a262466668cc6d3eda8e1612

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoptinterface-0.6.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: wheel.yml on metab0t/PyOptInterface

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyoptinterface-0.6.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for pyoptinterface-0.6.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 cff882c9c3ea1ad57beeb43530d600afa27d658afbc3146f67389e9ac170eadf
MD5 f11863c951a917d80a7a719fccebafeb
BLAKE2b-256 2adcfe3fea5a4c58c74d06e8f113873a426754706301929bb9c68ba73afc7955

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoptinterface-0.6.1-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl:

Publisher: wheel.yml on metab0t/PyOptInterface

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyoptinterface-0.6.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyoptinterface-0.6.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1df65cae8bb392fae1852d8ca9198702cbb07558900f3e15d00d95be80680161
MD5 dd2b0f4149c48fb983f084bd1fcfb8e1
BLAKE2b-256 7506af09df57b5af42ff9168f9514fbd15f5997cb86dc969a884632401473979

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoptinterface-0.6.1-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: wheel.yml on metab0t/PyOptInterface

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyoptinterface-0.6.1-cp310-cp310-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for pyoptinterface-0.6.1-cp310-cp310-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 8dcf3758a18532316081e896149be858a93ad049cb92c9130438a209cf49f212
MD5 47e19a76843f608fae74e47f7b3aca27
BLAKE2b-256 b22889860cbcdaacfe3c767dc9b3849c433519c8fc7bd3c6d0511ba927663199

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoptinterface-0.6.1-cp310-cp310-macosx_10_14_x86_64.whl:

Publisher: wheel.yml on metab0t/PyOptInterface

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyoptinterface-0.6.1-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for pyoptinterface-0.6.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 80871a0d2e953c4922142b3b0fc7e025fb7ffe98ae757e2ed13edfd8e76b9ced
MD5 1730c56a5cafd8a51fc127eaab1cf5a0
BLAKE2b-256 1f8be4266a05787a5cdb544347ad4a80d59d7909e85d966c54ecfb66e4de8214

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoptinterface-0.6.1-cp39-cp39-win_amd64.whl:

Publisher: wheel.yml on metab0t/PyOptInterface

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyoptinterface-0.6.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for pyoptinterface-0.6.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 8671536f185efbb82c53d50bab87642710a106ea5d0ca9c65e1778ffc8b1a231
MD5 5e40646ced374b6bb75ab2f8e9a3772c
BLAKE2b-256 2dbd5908e20429bee5e8efb06d4b8cfe874cb1dba6adab04462e45a960394ae7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoptinterface-0.6.1-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl:

Publisher: wheel.yml on metab0t/PyOptInterface

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyoptinterface-0.6.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for pyoptinterface-0.6.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 f12fb36d93c84da1f3a84c9a124a07bbdbb7dc4134f374d088cd1477476e8610
MD5 2bee602ce158da310c5292448f15371d
BLAKE2b-256 ddef71b77e55ef29d19486f01f344fe15989b86bf4ad0c362cb5967023aa661a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoptinterface-0.6.1-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl:

Publisher: wheel.yml on metab0t/PyOptInterface

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyoptinterface-0.6.1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyoptinterface-0.6.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 18f7e16373e7003d0f004538a533ee51c43d36410499db12c73b4741d58c54af
MD5 c3c5fdda25f2de59a8ef1e26c2889265
BLAKE2b-256 79a3d0d386295cc1d37e6f16b9664169fd94cf2378f9c214fb20e4124c983ac9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoptinterface-0.6.1-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: wheel.yml on metab0t/PyOptInterface

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyoptinterface-0.6.1-cp39-cp39-macosx_10_14_x86_64.whl.

File metadata

File hashes

Hashes for pyoptinterface-0.6.1-cp39-cp39-macosx_10_14_x86_64.whl
Algorithm Hash digest
SHA256 a498da65fd43bcc62909036efeb35f23608ab8f0a982fa7c93a1f01ad1ad4d8e
MD5 2d992e098b5281f0e3cc21291d02eb86
BLAKE2b-256 7d11e873814e4aab88262a8d975401145ca07cf51fd22fff7d7ae786384f4b19

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyoptinterface-0.6.1-cp39-cp39-macosx_10_14_x86_64.whl:

Publisher: wheel.yml on metab0t/PyOptInterface

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page