Metadata-Version: 2.4
Name: mocksql
Version: 0.2.0
Summary: SQL unit test data generator for Analytics Engineers — SQLGlot extracts constraints, LLM generates fixtures, DuckDB validates with automatic retry on empty results
License: MIT
Keywords: sql,testing,analytics,bigquery,duckdb,langgraph
Author: Adel Skhiri
Author-email: skhiriadel92@gmail.com
Requires-Python: >=3.11,<3.14
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.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: Testing
Provides-Extra: all
Provides-Extra: bigquery
Provides-Extra: snowflake
Provides-Extra: trino
Requires-Dist: bcrypt (>=5.0.0,<6.0.0)
Requires-Dist: duckdb (>=1.5.4,<2.0.0)
Requires-Dist: faker (>=40.23.0,<41.0.0)
Requires-Dist: fastapi (>=0.138.0,<1.0.0)
Requires-Dist: google-cloud-bigquery (>=3.42.0,<4.0.0) ; extra == "bigquery" or extra == "all"
Requires-Dist: langchain (>=1.3.10,<2.0.0)
Requires-Dist: langchain-classic (==1.0.8)
Requires-Dist: langchain-google-genai (>=4.2.5,<5.0.0)
Requires-Dist: langgraph (>=1.2.6,<2.0.0)
Requires-Dist: pandas (>=3.0.3,<4.0.0)
Requires-Dist: pydantic (>=2.13.4,<3.0.0)
Requires-Dist: python-dotenv (>=1.2.2,<2.0.0)
Requires-Dist: pyyaml (>=6.0.3)
Requires-Dist: snowflake-connector-python (>=4.6.0,<5.0.0) ; extra == "snowflake" or extra == "all"
Requires-Dist: sqlglot[c] (>=30.11.0,<31.0.0)
Requires-Dist: trino (>=0.330,<0.331) ; extra == "trino" or extra == "all"
Requires-Dist: typer[all] (>=0.26.7,<0.27.0)
Requires-Dist: uvicorn (>=0.49.0,<0.50.0)
Project-URL: Homepage, https://github.com/skadel/mocksql
Project-URL: Repository, https://github.com/skadel/mocksql
Description-Content-Type: text/markdown

# MockSQL — Backend

> Pour l'installation, la configuration GCP et le CLI, voir le [README racine](../README.md).

**FastAPI · LangGraph · Python 3.12**

---

## Développement local

```bash
python -m venv .venv
source .venv/bin/activate   # Windows : .\.venv\Scripts\activate
pip install poetry && poetry install --all-extras

cp .env.example .env        # compléter les variables (voir README racine §3)
uvicorn server:app --port 8080 --reload
```

> Les connecteurs sources (BigQuery, Snowflake) sont des **extras** optionnels, exclus de l'install de base pour l'alléger. `poetry install` seul n'installe que le cœur (génération + DuckDB) ; ajoutez `--all-extras` (ou `--extras "bigquery snowflake"`) pour travailler sur le profiling/import.

---

## Commandes

```bash
make style    # ruff check + ruff format --check + vulture (code mort)
make format   # auto-format + auto-fix ruff
make test     # pytest
make check    # style + test
```

Type checking :

```bash
poetry run mypy build_query/ app/
```

---

## Packaging

MockSQL produit deux wheels :

| Wheel | Contenu |
|-------|---------|
| `mocksql-*.whl` | CLI + LangGraph core (sans UI) |
| `mocksql_ui-*.whl` | Serveur web + assets React bundlés |

```bash
make build-cli   # CLI uniquement
make build-ui    # CLI + UI (Node.js 18+ requis pour le build React)
```

Les wheels sont générés dans `dist/`.

---

## Licence

Propriétaire — © 2025 Adel Skhiri. Contact : [skhiriadel92@gmail.com](mailto:skhiriadel92@gmail.com)

