Metadata-Version: 2.4
Name: benchmarkhar
Version: 0.1.1
Summary: Benchmark framework for Human Activity Recognition (HAR) with classical, deep learning, and external model adapters.
License: MIT
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.21.0
Requires-Dist: pandas>=1.3.0
Requires-Dist: scipy>=1.7.0
Requires-Dist: scikit-learn>=1.0.0
Requires-Dist: joblib>=1.1.0
Requires-Dist: PyYAML>=6.0
Requires-Dist: tqdm>=4.60.0
Requires-Dist: psutil>=5.8.0
Provides-Extra: deep-learning
Requires-Dist: torch>=1.10.0; extra == "deep-learning"
Requires-Dist: tensorflow>=2.8.0; extra == "deep-learning"
Requires-Dist: keras>=3.0.0; extra == "deep-learning"
Requires-Dist: einops>=0.3.0; extra == "deep-learning"
Requires-Dist: h5py>=3.0.0; extra == "deep-learning"
Provides-Extra: visualization
Requires-Dist: matplotlib>=3.5.0; extra == "visualization"
Requires-Dist: seaborn>=0.11.0; extra == "visualization"
Provides-Extra: biopm
Provides-Extra: tinyhar
Provides-Extra: dev
Requires-Dist: pytest>=8.0.0; extra == "dev"
Requires-Dist: ruff>=0.5.0; extra == "dev"
Requires-Dist: build>=1.0.0; extra == "dev"
Provides-Extra: all
Requires-Dist: torch>=1.10.0; extra == "all"
Requires-Dist: tensorflow>=2.8.0; extra == "all"
Requires-Dist: keras>=3.0.0; extra == "all"
Requires-Dist: einops>=0.3.0; extra == "all"
Requires-Dist: h5py>=3.0.0; extra == "all"
Requires-Dist: matplotlib>=3.5.0; extra == "all"
Requires-Dist: seaborn>=0.11.0; extra == "all"
Requires-Dist: pytest>=8.0.0; extra == "all"
Requires-Dist: ruff>=0.5.0; extra == "all"
Requires-Dist: build>=1.0.0; extra == "all"
Dynamic: license-file

# BenchmarkHAR

BenchmarkHAR is a reusable Human Activity Recognition benchmarking framework for classical machine learning, deep learning, and external model adapters.

## Installation

Install the core package:

```bash
pip install benchmarkhar
```

Install deep learning support:

```bash
pip install "benchmarkhar[deep-learning]"
```

Install BioPM support:

```bash
pip install "benchmarkhar[biopm]"
```

Install TinyHAR support:

```bash
pip install "benchmarkhar[tinyhar]"
```

Install everything:

```bash
pip install "benchmarkhar[all]"
```

Users do not need to clone external repositories, set `PYTHONPATH`, or copy source files manually. The package exposes the required public modules directly after installation.

## Model registry

```python
from benchmarkhar.models import MODEL_REGISTRY
print(sorted(MODEL_REGISTRY))
```

This includes the supported BenchmarkHAR models such as `random_forest`, `logistic_regression`, `cnn`, `lstm`, `dnn`, `rnn`, `deepconv_lstm`, `astar_har`, `tinyhar`, and `biopm`.

## Custom models and datasets

You can create your own model locally without modifying the BenchmarkHAR source tree by implementing a class that follows the same `BaseHARModel` interface and registering it with your own application code. Similarly, dataset/configuration files can live in your local working directory or a project-specific config folder; BenchmarkHAR does not require repository-local paths after installation.

## Development

To build a wheel locally:

```bash
python -m build
```

Then test the wheel in a clean virtual environment:

```bash
python3 -m venv /tmp/test-benchmarkhar-wheel
source /tmp/test-benchmarkhar-wheel/bin/activate
pip install dist/benchmarkhar-*.whl
python -c "from benchmarkhar.models import MODEL_REGISTRY; print(sorted(MODEL_REGISTRY))"
```
