Metadata-Version: 2.4
Name: pyoperon
Version: 0.6.0
Summary: Python bindings for the Operon symbolic regression library
Author: Bogdan Burlacu
Author-email: Bogdan Burlacu <bogdan.burlacu@pm.me>
Project-URL: Homepage, https://github.com/heal-research/pyoperon
Project-URL: Bug Tracker, https://github.com/heal-research/pyoperon/issues
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: C++
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Education
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=2.0.2
Requires-Dist: pandas>=2.2.3
Requires-Dist: scikit-learn>=1.6.1
Dynamic: author
Dynamic: license-file
Dynamic: requires-python

# pyoperon

[![License](https://img.shields.io/github/license/heal-research/pyoperon)](https://github.com/heal-research/pyoperon/blob/master/LICENSE)
[![Build-linux](https://github.com/heal-research/pyoperon/actions/workflows/build-linux.yml/badge.svg?branch=main)](https://github.com/heal-research/pyoperon/actions/workflows/build-linux.yml)
[![Build-macos](https://github.com/heal-research/pyoperon/actions/workflows/build-macos.yml/badge.svg?branch=main)](https://github.com/heal-research/pyoperon/actions/workflows/build-linux.yml)
[![Matrix chat](https://matrix.to/img/matrix-badge.svg)](https://matrix.to/#/#operon:matrix.org)

**pyoperon** is the python bindings library of [**Operon**](https://github.com/heal-research/operon), a modern C++ framework for symbolic regression developed by [Heal-Research](https://github.com/heal-research) at the University of Applied Sciences Upper Austria.

A scikit-learn regressor is also available:
```python
from pyoperon.sklearn import SymbolicRegressor
```

The [example](https://github.com/heal-research/pyoperon/tree/main/example) folder contains sample code for using either the Python bindings directly or the **pyoperon.sklearn** module.

# Installation

New releases are published on [github](https://github.com/heal-research/pyoperon/releases/) and on [PyPI](https://pypi.org/project/pyoperon/).

Most of the time `pip install pyoperon` should be enough.

## Building from source

### Conda/Mamba

1. Clone the repository
```
git clone https://github.com/heal-research/pyoperon.git
cd pyoperon
```

2. Install and activate the environment (replace micromamba with your actual program)
```
micromamba env create -f environment.yml
micromamba activate pyoperon
```

3. Install the dependencies
```
export CC=${CONDA_PREFIX}/bin/clang
export CXX=${CONDA_PREFIX}/bin/clang++
python script/dependencies.py
```

4. Install `pyoperon`
```
pip install .
```

### Nix

Use this [environment](https://github.com/foolnotion/poetryenv) created with [poetry2nix](https://github.com/nix-community/poetry2nix)

```
nix develop github:foolnotion/poetryenv --no-write-lock-file
```

This will install operon and dependencies. Modify the flake file if you need additional python libraries (see https://github.com/nix-community/poetry2nix#how-to-guides)


# Contributing

See the [CONTRIBUTING](CONTRIBUTING.md) document.
