Metadata-Version: 2.4
Name: lr-qrm
Version: 0.1.0
Summary: CLI client for interacting with Qestit QRM data from LumenRadio tooling.
Author-email: Jonas Estberger <jonas.estberger@lumenradio.com>
License: MIT License
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: requests>=2.32
Requires-Dist: typer>=0.12
Requires-Dist: rich>=13.7
Requires-Dist: pydantic>=2.8
Provides-Extra: dev
Requires-Dist: build>=1.2.1; extra == "dev"
Requires-Dist: twine>=5.1.1; extra == "dev"
Requires-Dist: wheel; extra == "dev"
Requires-Dist: pytest>=8.4.2; extra == "dev"
Requires-Dist: black>=25.9.0; extra == "dev"
Requires-Dist: pytest-html; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Dynamic: license-file

# QRM

CLI + Python client for interacting with the Qestit QRM.

## Install

```bash
pip install lr-qrm
```

## Quick start

### Login

Interactive login (prompts for username/password):

```bash
qrm login
```

Non-interactive (for CI/CD):

```bash
export QRM_USERNAME="<insert username>"
export QRM_PASSWORD="<insert password>"
qrm login --ci
```

By default, this stores session details at:

```
~/.config/qrm/login.json
```

### Commands


Get test results for a serial number.

```bash
qrm get-test-results P00Y00000001
```


#### JSON output

Most commands support a JSON output mode.


```bash
$ qrm get-test-results P00Y00000001 --format json
```

## Programmatic use

```python
from qrm import QrmClient, load_config

client = QrmClient(load_config())
results = client.get_test_results("P00Y00000001")
```


## FAQ

- **Where is the config kept?**
  `~/.config/qrm/login.json` (override with `QRM_CONFIG`)

- **How do I run non-interactively?**
  Make sure to give all required arguments. Also pass `--ci` to stop output of sensitive information such as username or passwords.
