Metadata-Version: 2.4
Name: respondpy
Version: 0.1.1
Summary: The Syndemic Lab's RESPOND Simulation Python Extension Module.
Keywords: simulation,Opioid Use Disorder,Syndemics
Author-Email: Matthew Carroll <Matthew.Carroll@bmc.org>, Dimitri Baptiste <Dimitri.Baptiste@bmc.org>
Maintainer-Email: Syndemics Lab <Benjamin.Linas@bmc.org>
License-Expression: AGPL-3.0-or-later
License-File: LICENSE.txt
Project-URL: Homepage, https://github.com/SyndemicsLab/respond
Project-URL: Issues, https://github.com/SyndemicsLab/respond/issues
Requires-Python: >=3.10
Requires-Dist: numpy
Requires-Dist: polars>=1.37.1
Requires-Dist: pytest-cov>=7.0.0
Description-Content-Type: text/markdown

# RESPONDPY

:snake: Welcome to RESPOND for Python! :snake: This repository acts as a set of python bindings for the Syndemics Lab's RESPOND model. As such, it is simply a set of wrappers and helper functions for ease of use in various lab projects. Our project can be installed from PyPI or built locally.

## RESPOND

RESPOND is a simulation model developed by the Syndemics Lab at Boston Medical Center to study the various cost-effectiveness impacts of different treatment options for substance use disorders (SUD). While originally built to study opioid use disorder (OUD), RESPOND is a Markov model with the ability to scale to encompass various drug use behaviors and treatment approaches or venues. This repository adds bindings and helper functions to easily work with SQLite. The original RESPOND model is written in R and C++ and can be found [on GitHub](https://github.com/SyndemicsLab/respondv1).

## Pybind11

This tool makes use of the popular tool [Pybind11](https://pybind11.readthedocs.io/en/stable/index.html). From here, we expose bindings for users to connect to via Python.

## Building

We make use of [Scikit-build-core](https://scikit-build-core.readthedocs.io/en/latest/index.html) along with CMake to build the library.

```bash
git clone git@github.com:SyndemicsLab/respondpy.git
uv sync
uv build
```

This results in a wheel and `tar.gz` being placed in a `dist/` directory. From here, we use `uv` to include it in other projects. Future work would be to allow for building device independent wheels and publishing to PyPI where we could install anywhere.

## ManyLinux Build

We are currently working on supporting a ManyLinux build of the project. This can be tested via the `cibuildwheel` tool.

```bash
uvx cibuildwheel
```

## Deployment Notes

Currently, we deploy using the following commands:

```bash
uv build
uvx cibuildwheel
```

After building into a folder called `wheelhouse` we remove the `*.whl` file in the `dist/` directory (only leaving the `.tar.gz`) and run the command:

```bash
uv publish --index testpypi dist/* wheelhouse/*
```

To testpypi we use the username `__token__` and our API key generated from our account.
