Metadata-Version: 2.4
Name: HybridSolver
Version: 0.16.0rc3
Summary: This package contains the CLI and API to access the HybridSolver.
Project-URL: Homepage, https://www.quantagonia.com
Author-email: Quantagonia GmbH <support@quantagonia.com>
License: Copyright 2022 Quantagonia GmbH
        
        Redistribution and use in source and binary forms, with or without modification,
        are permitted provided that the following conditions are met:
        
        1. Redistributions of source code must retain the above copyright notice, this
        list of conditions and the following disclaimer.
        
        2. Redistributions in binary form must reproduce the above copyright notice,
        this list of conditions and the following disclaimer in the documentation and/or
        other materials provided with the distribution.
        
        3. Neither the name of the copyright holder nor the names of its contributors
        may be used to endorse or promote products derived from this software without
        specific prior written permission.
        
        THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
        ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
        WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
        DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
        ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
        (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
        LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
        ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
        SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
License-File: LICENSE
Keywords: Linear Programming,Operations Research,Optimization
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python
Classifier: Topic :: Scientific/Engineering :: Mathematics
Requires-Python: <3.13,>=3.8
Requires-Dist: pulp<3.0
Requires-Dist: pyscipopt>=5.5
Requires-Dist: requests
Requires-Dist: rich
Requires-Dist: semantic-version
Requires-Dist: typer
Requires-Dist: urllib3>=1.26
Requires-Dist: yaspin
Provides-Extra: qubo
Requires-Dist: dimod; extra == 'qubo'
Requires-Dist: docplex==2.29.245; extra == 'qubo'
Requires-Dist: dwave-ocean-sdk; extra == 'qubo'
Requires-Dist: numpy<2; extra == 'qubo'
Requires-Dist: pyqubo; extra == 'qubo'
Requires-Dist: qiskit; extra == 'qubo'
Requires-Dist: qiskit-optimization; extra == 'qubo'
Description-Content-Type: text/markdown

# HybridSolver API Client

This package contains the CLI and API to access the HybridSolver.

## Installation

Python >= 3.8 is required. Then, do
```
python -m pip install hybridsolver
```
In order to use the cloud-based HybridSolver, you need to sign up for an API key at https://platform.quantagonia.com and set it system-wide by
```
export QUANTAGONIA_API_KEY=<your API key here>
```

## Features

### CLI

The package installs a `hybridsolver` CLI command for job submission, status checking, and solution retrieval:

```bash
hybridsolver submit problem.mps
hybridsolver status <job-id>
hybridsolver solution <job-id>
```

### Supported Model Formats

- **MPS/LP files** — Submit standard optimization problem files directly
- **PuLP** — Integration with the PuLP modeling library
- **QUBO** — Support via Qiskit, D-Wave Ocean, and pyqubo
- **SCIP** — Integration with PySCIPOpt

### Examples

The `examples/` directory contains 14+ example scripts covering MIP, QUBO, batch solving, and various modeling interfaces. See [Documentation](https://docs.quantagonia.com) for a Quick Start Guide and API reference.

## Development

This project uses [Hatch](https://hatch.pypa.io/) for environment management, testing, and building:

```bash
hatch test                    # run unit tests
hatch fmt --linter --check    # lint check
hatch fmt --formatter --check # format check
hatch build                   # build package
```

## Changelog for Documentation

To include the changelog in the external documentation, please see the add the relevant section in the changelog fragment file in the `changelog.d` directory for the latest changes.

Steps to add a new changelog:
1. Create a new changelog fragment directory `changelog.d` if it doesn't exist.
2. Run `hatch run changelog:create` to create a new changelog fragment file.
3. Add relevant changes (Only include changes that are relevant to the external users) to the new changelog fragment file.
4. Commit the changes and push to the repository.
