Metadata-Version: 2.4
Name: humpday
Version: 0.9.0
Summary: Taking the pain out of choosing a Python global optimizer
Project-URL: Homepage, https://github.com/microprediction/humpday
Project-URL: Documentation, https://microprediction.github.io/humpday/
Project-URL: Repository, https://github.com/microprediction/humpday
Project-URL: Bug Tracker, https://github.com/microprediction/humpday/issues
Author-email: microprediction <pcotton@intechinvestments.com>
License-Expression: MIT
License-File: LICENSE
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: <3.15,>=3.9
Requires-Dist: numpy>=1.21.5
Provides-Extra: dev
Requires-Dist: black>=23.0.0; extra == 'dev'
Requires-Dist: build>=0.10.0; extra == 'dev'
Requires-Dist: mypy>=1.0.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
Requires-Dist: pytest>=7.0.0; extra == 'dev'
Requires-Dist: ruff>=0.1.0; extra == 'dev'
Requires-Dist: twine>=4.0.0; extra == 'dev'
Provides-Extra: docs
Requires-Dist: mkdocs-material>=9.0.0; extra == 'docs'
Requires-Dist: mkdocs>=1.5.0; extra == 'docs'
Provides-Extra: experimental
Requires-Dist: bayesian-optimization>=3.0.0; extra == 'experimental'
Requires-Dist: cmaes>=0.10.0; extra == 'experimental'
Requires-Dist: nevergrad>=1.0.0; extra == 'experimental'
Requires-Dist: platypus-opt>=1.0.0; extra == 'experimental'
Provides-Extra: extra
Requires-Dist: optuna>=3.0.0; extra == 'extra'
Provides-Extra: paper
Requires-Dist: jinja2>=3.0.0; extra == 'paper'
Requires-Dist: pandas>=1.3.0; extra == 'paper'
Requires-Dist: seaborn>=0.11.0; extra == 'paper'
Description-Content-Type: text/markdown

# Humpday: Pure Python or Javascript Derivative-Free Optimization

[![CI](https://github.com/microprediction/humpday/workflows/CI/badge.svg)](https://github.com/microprediction/humpday/actions)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Python 3.9+](https://img.shields.io/badge/python-3.9+-blue.svg)](https://www.python.org/downloads/)

**[Documentation & Live Demos](https://humpday.microprediction.org)**

22 derivative-free optimization algorithms in pure Python. No compilation, just numpy.

## Install & Use

```bash
pip install humpday
```

```python
from humpday import minimize

def objective(x):
    return (x[0] - 2)**2 + (x[1] - 3)**2

result = minimize(objective, bounds=[(-5, 5), (-5, 5)], method='DifferentialEvolution')
print(f"Solution: {result.x}")  # [2.0, 3.0]
```

## Algorithms

22 validated optimizers: **[See them in action](https://humpday.microprediction.org)** | **[Source code](humpday/optimizers/optimizers.py)**

Trust region methods, evolutionary algorithms, metaheuristics. 

## Comparison

| Library | Dependencies | Install Size | Global Optimizers | Pure Python |
|---------|--------------|--------------|-------------------|-------------|
| **Humpday** | numpy only | ~1MB | 22 validated | ✅ |
| SciPy | C/Fortran libs | ~50MB | 3 | ❌ |
| Optuna | Many | ~100MB | 100+ | ❌ |
| Nevergrad | Many | ~200MB | 200+ | ❌ |

**Humpday's niche**: When you need optimization that works anywhere Python runs, without dependencies or compilation.

## License

MIT - Use freely in commercial and research projects.
