Metadata-Version: 2.4
Name: argus-node
Version: 0.1.1
Summary: Distributed camera node runtime
Author-email: Morgan Thomas <sc23mt2@leeds.ac.uk>
License: MIT
Requires-Python: >=3.13
Requires-Dist: google-cloud-storage>=3.10.1
Requires-Dist: opencv-python>=4.13.0.92
Requires-Dist: prometheus-client>=0.25.0
Requires-Dist: protobuf>=7.34.1
Requires-Dist: python-dotenv>=1.2.2
Requires-Dist: requests>=2.33.1
Description-Content-Type: text/markdown

# Argus Node

`argus-node` is the camera node runtime for the distributed camera system. It is responsible for
loading camera configuration, running the node loop, collecting frames, processing them through
user-provided logic, and reporting back to the coordinator.

## Requirements

- Python `3.13+`
- `uv` for local development

## Installation

Install from PyPI:

```bash
pip install argus-node
```

For local development:

```bash
uv sync --dev
```

## Package Layout

- `argus/camera.py` - camera capture and frame timing
- `argus/coordinator.py` - coordinator communication
- `argus/node_runtime.py` - node execution lifecycle
- `argus/config.py` - runtime configuration
- `argus/logging_config.py` - logging setup
- `argus/metrics.py` - Prometheus metrics

## Development

Install dependencies and run the test suite from `src/argus`:

```bash
uv sync --locked --dev
uv run pytest
```

Build a wheel locally:

```bash
uv build
```

The build artifacts are written to `src/argus/dist/`.

