Metadata-Version: 2.5
Name: truequery
Version: 0.1.4
Summary: TrueQuery engine: offline, deterministic checks for SQL that silently returns the wrong answer
Project-URL: Homepage, https://github.com/Analytically-ai/truequery
Project-URL: Issues, https://github.com/Analytically-ai/truequery/issues
Author: Analytically.ai
License-Expression: Apache-2.0
License-File: LICENSE
License-File: NOTICE
Keywords: analytics,data-engineering,dbt,lint,sql
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Database
Classifier: Topic :: Software Development :: Quality Assurance
Requires-Python: >=3.11
Requires-Dist: pyyaml==6.0.3
Requires-Dist: sqlglot==30.22.0
Provides-Extra: test
Requires-Dist: duckdb; extra == 'test'
Requires-Dist: pytest; extra == 'test'
Description-Content-Type: text/markdown

# TrueQuery engine

The offline checker behind [TrueQuery](https://github.com/Analytically-ai/truequery).
It installs two commands, `truequery` and its short alias `tq`.

```bash
pip install truequery
uvx truequery detect .
```

It looks for SQL that silently returns the wrong answer: a `NOT IN` that one
NULL empties, a `WHERE` that turns a `LEFT JOIN` into an inner join, a
`COUNT(*)` that counts missing rows, an unguarded `UPDATE` or `DELETE`.
Twenty-five checks ship with the preview, 15 of them on by default, each
promoted only when it proves precise on real projects. Files it can't parse,
can't decode, or that are over the 10 MB limit are listed as not checked,
never as clean.

It runs offline and gives deterministic output, with no LLM and no network
calls: plain code on your machine, in well under a second per file. Text,
JSON and SARIF output; exit codes 0 (clean), 1 (findings), 2 (usage or config
error) and 3 (some files couldn't be checked). See the
[repository README](https://github.com/Analytically-ai/truequery) for the
full guide: the skill, the receipt, hooks, and the standard behind the checks.
