Metadata-Version: 2.4
Name: namqr
Version: 0.1.0
Summary: Professional QR Code Toolkit for Developers and Power Users
Project-URL: Homepage, https://github.com/namnn2016-ops/namqr
Project-URL: Issues, https://github.com/namnn2016-ops/namqr/issues
Project-URL: Source, https://github.com/namnn2016-ops/namqr
Author: NamQR contributors
License-Expression: MIT
License-File: LICENSE
Keywords: cli,qr,qrcode,rich,typer
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Utilities
Requires-Python: >=3.11
Requires-Dist: pillow>=10.0
Requires-Dist: qrcode[pil]>=7.4
Requires-Dist: rich>=13.7
Requires-Dist: typer>=0.12
Provides-Extra: dev
Requires-Dist: black>=24.0; extra == 'dev'
Requires-Dist: mypy>=1.8; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.4; extra == 'dev'
Provides-Extra: release
Requires-Dist: build>=1.2; extra == 'release'
Requires-Dist: twine>=5.0; extra == 'release'
Provides-Extra: scan
Requires-Dist: opencv-python>=4.9; extra == 'scan'
Requires-Dist: pyzbar>=0.1.9; extra == 'scan'
Description-Content-Type: text/markdown

# NamQR

Professional QR Code Toolkit for Developers and Power Users.

NamQR is a typed Python CLI for generating, scanning, analyzing, exporting, and
organizing QR codes. The command layer is intentionally thin: business logic
lives in `namqr.core`, while the Typer CLI handles input and presentation.

## Install

```bash
pip install namqr
```

For image and camera scanning extras:

```bash
pip install "namqr[scan]"
```

## Quick Start

```bash
namqr create "https://example.com" --output example.png
namqr create --type wifi --ssid "Office WiFi" --password "correct horse battery staple"
namqr scan example.png
namqr analyze example.png
namqr history list
namqr stats
namqr doctor
```

## Commands

NamQR exposes the project roadmap as first-class commands:

- `create`: generate QR codes from plain text, URLs, WiFi, email, phone, SMS,
  geo, vCard, MeCard, WhatsApp, Telegram, Discord, Zoom, Meet, Teams, crypto,
  UPI, PayPal, calendar, file/folder links, app/social links, and custom data.
- `scan`: decode a single image, multiple images, folders, recursive folders,
  clipboard content, PDFs, GIFs, videos, and camera sources when optional scan
  dependencies are installed.
- `analyze`: inspect decoded content, image dimensions, hash, detected type,
  color hints, quality signals, and duplicate status.
- `export`: convert QR payloads to PNG, SVG, PDF, EPS, ASCII, UTF-8 block text,
  Base64, clipboard text, or ZIP.
- `batch`: generate QR codes from CSV, JSON, TXT, SQLite, Excel, clipboard, or
  folder sources.
- `history`, `favorite`, `stats`, `config`, `doctor`, `plugins`, and
  `template`: manage the local SQLite workspace and automation surface.

Some advanced scanning modes are implemented as optional integrations. When a
dependency or platform feature is unavailable, NamQR reports the exact missing
capability instead of crashing.

## Development

```bash
python -m pip install -e ".[dev,scan]"
ruff check .
black --check .
mypy src
pytest
namqr --help
```

## Release

Always publish to TestPyPI first:

```bash
python -m pip install -U ".[release]"
ruff check .
black --check .
mypy src
pytest
python -m build
twine check dist/*
twine upload --repository testpypi dist/*
```

After installing and checking the TestPyPI build, publish the same artifacts to
PyPI:

```bash
twine upload dist/*
```

## Architecture

- CLI code lives in `src/namqr/cli.py`.
- Core business logic lives under `src/namqr/core`.
- SQLite persistence is isolated in `core/database.py`.
- Payload formatting is centralized in `core/payloads.py`.
- Optional integrations raise friendly `NamQRError` subclasses.

## Status

This repository is scaffolded as a production-oriented foundation for NamQR.
The command surface is complete, typed, and testable; advanced device scanning
and highly custom module rendering are intentionally dependency-backed so the
core remains stable across Windows, Linux, and macOS.
