Metadata-Version: 2.1
Name: pylace
Version: 0.1.0a1
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Programming Language :: Rust
Classifier: Topic :: Scientific/Engineering
Requires-Dist: numpy ~= 1.21
Requires-Dist: pandas ~= 1.3
Requires-Dist: polars ~= 0.16.13
Requires-Dist: scipy ~= 1.7
Requires-Dist: plotly ~= 5.13.1
Requires-Dist: tqdm ~= 4.64.1
License-File: LICENSE
Summary: A probabalistic programming ML tool for science
Author-email: Baxter Eaves <bax@redpoll.ai>, Michael Schmidt <schmidt@redpoll.ai>
Maintainer-email: Baxter Eaves <bax@redpoll.ai>, Michael Schmidt <schmidt@redpoll.ai>, Ken Swanson <ken.swanson@redpoll.ai>
License: SSPL-1.0
Requires-Python: >=3.8
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
Project-URL: Repository, https://github.com/promised-ai/lace

# pylace

Python bindings to lace

## Install

### Install lates from PyPI
```console
$ python3 -m pip install pylace
```

### Install latest from GitHub
Building from source requires the Rust compiler (git it [here](https://rustup.rs/)).

```console
$ python3 -m pip install git+https://git@github.com/promised-ai/lace.git#egg=pylace&subdirectory=pylace
```

## Use

Note that the engine currently only supports loading from an existing metadata
file. The following lace functions are supported:

- rowsim
- depprob
- predict
- logp
- simulate
- append_rows
- update

```python
import lace

# The required files can be found here: https://github.com/promised-ai/lace/tree/master/pylace/lace/resources/datasets/satellites
engine = lace.Engine(data_source="data.csv", codebook="codebook.yaml")

# Train the model for 10_000 steps
engine.update(10_000)

# Predict the orbit's class based on the orbit's period.
engine.predict('Class_of_Orbit', given={'Period_minutes': 1436.0})
# ('GEO', 0.13583714831550336)
```

