Metadata-Version: 2.4
Name: forge-mvc-qrcode
Version: 1.0.0rc2
Summary: Forge QR Code — génération de QR Codes (PNG/SVG) depuis du texte ou une URL, avec une réponse HTTP servable depuis un contrôleur Forge.
Author: Roger Lequette
License-Expression: LicenseRef-Forge-Proprietary
Project-URL: Homepage, https://github.com/caucrogeGit/Forge
Project-URL: Repository, https://github.com/caucrogeGit/Forge
Project-URL: Documentation, https://forgemvc.com/docs/forge/
Keywords: python,mvc,forge,qrcode,qr,png,svg
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Python: >=3.12
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: forge-mvc<2,>=1.0.0rc2
Requires-Dist: segno<2,>=1.6
Dynamic: license-file

# forge-mvc-qrcode

Opt-in Forge de génération de QR Codes.

Produire un QR Code PNG ou SVG depuis du texte ou une URL, et le servir via une
réponse HTTP utilisable dans un contrôleur Forge.

Le cœur de Forge ignore tout des QR Codes.
Ce paquet fournit l'API.
L'application décide de ce qu'elle encode.

## Installation

```bash
pip install --pre forge-mvc-qrcode
```

Dépendances : `forge-mvc` (cœur) et `segno` (génération pur Python, sans Pillow).

## Génération PNG et SVG

```python
from forge_mvc_qrcode import QrCode

qr = QrCode.from_text("https://forgemvc.com")

png_bytes = qr.to_png()   # octets PNG
svg_text = qr.to_svg()    # document SVG (texte)
```

Un texte vide lève `QrCodeError`.

## Réponse HTTP depuis un contrôleur

```python
from forge_mvc_qrcode import QrCodeResponse

def qrcode(request):
    return QrCodeResponse.from_text("https://forgemvc.com")
```

La réponse est un PNG par défaut (`Content-Type: image/png`).
Passer `fmt="svg"` pour un SVG (`Content-Type: image/svg+xml`).

## Limites de ce socle

Ce paquet ne fait que générer et servir un QR Code.
Pas de commande CLI, pas de stockage, pas de scanner, pas de PDF, pas de logique
métier (badge, ticket, inventaire). Ces usages restent à la charge de
l'application ou de tickets ultérieurs.
