Metadata-Version: 2.4
Name: ascent-science
Version: 0.9.1
Summary: Core SDK, licensing, models, and plugin discovery for Ascent Science
Author: Ascent Science
License-Expression: LicenseRef-Proprietary
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Typing :: Typed
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Requires-Dist: certifi>=2024.8.30
Provides-Extra: or
Requires-Dist: highspy<2,>=1.12; extra == "or"
Requires-Dist: ortools>=9.11; extra == "or"
Provides-Extra: data
Requires-Dist: openpyxl>=3.1; extra == "data"
Requires-Dist: pandas>=2.2; extra == "data"
Provides-Extra: ml
Requires-Dist: scikit-learn>=1.5; extra == "ml"
Provides-Extra: all
Requires-Dist: highspy<2,>=1.12; extra == "all"
Requires-Dist: openpyxl>=3.1; extra == "all"
Requires-Dist: ortools>=9.11; extra == "all"
Requires-Dist: pandas>=2.2; extra == "all"
Requires-Dist: scikit-learn>=1.5; extra == "all"

# Ascent Science Python SDK

`ascent-science` is the lightweight core SDK. Algorithm implementations are
installed independently and discovered through Python entry points.

```bash
python -m pip install ascent-science==0.9.1
python -m pip install ascent-science-aco==0.1.0
```

```python
import ascent

solver = ascent.combinatorial.ACOOptimizer(ants=30, iterations=100, seed=42)
result = solver.solve_tsp([[0, 2, 3], [2, 0, 1], [3, 1, 0]])
print(result.best_route, result.best_distance)
```

| Distribution | Public Python API |
| --- | --- |
| `ascent-science-aco` | `ascent.combinatorial.ACOOptimizer` |
| `ascent-science-pso` | `ascent.combinatorial.PSOOptimizer` |
| `ascent-science-exact-qubo` | `ascent.qubo.ExactQUBOOptimizer` |
| `ascent-science-cim-simulator` | `ascent.qubo.CIMSimulator` |

Trying to access a missing plugin raises an actionable error containing its
exact `pip install` command. Installing or removing one algorithm does not
change any other algorithm package.
