A collection of custom data structures and user-friendly functions for mathematical optimization modeling with DOcplex, gurobipy, and Xpress.
- Specialized data structures: For defining index-sets, parameters, and decision variables enabling concise and high-performance algebraic modeling — compatible across different solver APIs.
- Easy access to additional CPLEX functionality: Like tuning tool, runseeds, displaying problem statistics, and displaying solution quality statistics — not directly available in DOcplex.
- Type-complete interface: Enables static type checking and intelligent auto-completion suggestions with modern IDEs — reducing type errors and improving development speed.
- Robust codebase: 100% coverage spanning 2750+ test cases and fully type-checked with mypy under strict mode. Tested with:
- CPLEX versions: 20.1.0, 22.1.0, 22.1.1, 22.1.2
- Gurobi versions: 11.0, 12.0 (most likely works with 10.0 but cannot test with the size-limited license provided with gurobipy distributed via PyPI)
- Xpress versions: 9.4, 9.5, 9.6, 9.7
Dev dependencies can be installed with the pip extras dev.
- Create HTML documentation locally with:
docs/make html. - Run unit tests and functional tests with:
pytest tests. - Run doctests with:
pytest src. - Run static typing tests with:
mypy tests/typing_tests.
opti-extensions is an open-source project developed by Samarth Mistry and released under the Apache 2.0 License. See the LICENSE and NOTICE for more details.