Metadata-Version: 2.5
Name: qutie-printer
Version: 0.1.0
Summary: Python library and demo CLI for HPRT Qutie BLE label printers
Author: Alexander Baxevanis
License-Expression: MIT
License-File: LICENSE
Keywords: ble,bluetooth,escpos,label-printer,qutie,thermal-printer
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: System :: Hardware :: Hardware Drivers
Requires-Python: >=3.10
Requires-Dist: bleak>=0.22.0
Requires-Dist: pillow>=10.0.0
Description-Content-Type: text/markdown

# qutie-printer

Python library and demo CLI for communicating with HPRT Qutie BLE label printers.

## Features

- Discover nearby BLE printers and filter Qutie devices.
- Query printer info and status.
- Configure concentration, alignment, paper type, and calibration.
- Print prepared raster data.
- Convert normal images to 1bpp raster (with Floyd-Steinberg dithering).
- Demo CLI for testing and reverse engineering workflows.

## Installation

Install from source:

```bash
pip install .
```

For development:

```bash
pip install -e .
```

## Quick Start (Library)

```python
import asyncio

from qutie_printer import Alignment, Concentration, QutiePrinter


async def main() -> None:
    address = "AA:BB:CC:DD:EE:FF"
    printer = QutiePrinter(address, verbose=True)
    await printer.connect()
    try:
        info = await printer.get_info()
        status = await printer.get_status()
        print(info)
        print(status)

        await printer.set_concentration(Concentration.MEDIUM_HIGH)
        await printer.set_alignment(Alignment.CENTER)
        await printer.print_image("label.png")
    finally:
        await printer.disconnect()


asyncio.run(main())
```

## Demo CLI

The package installs a `qutie-demo` command:

```bash
qutie-demo scan
qutie-demo info -a AA:BB:CC:DD:EE:FF
qutie-demo status -a AA:BB:CC:DD:EE:FF
qutie-demo print image.png -a AA:BB:CC:DD:EE:FF
qutie-demo interactive -a AA:BB:CC:DD:EE:FF
```

## Packaging Notes

- Uses a modern `pyproject.toml` build configuration.
- Uses `src/` layout to avoid import-shadow issues.
- Exposes a clean public API through `qutie_printer.__init__`.

## Release Checklist

1. Update version in `pyproject.toml` and `src/qutie_printer/__about__.py`.
2. Build artifacts: `python -m build`.
3. Verify metadata: `python -m twine check dist/*`.
4. Publish: `python -m twine upload dist/*`.

## License

MIT. See `LICENSE`.