Metadata-Version: 2.4
Name: csvqlx
Version: 0.1.0
Summary: Blazing-fast SQL queries on CSV files — C core + Python threads
License: MIT
Project-URL: Homepage, https://github.com/AYMEN-MEGBLI/csvqlx
Project-URL: Repository, https://github.com/AYMEN-MEGBLI/csvqlx
Requires-Python: >=3.9
Description-Content-Type: text/markdown
Provides-Extra: dev
Requires-Dist: black; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: pytest-benchmark; extra == "dev"
Requires-Dist: pytest>=7; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Dynamic: requires-python

# csvqlx

Blazing-fast SQL queries on CSV files — C core + Python threads.

## Installation

```bash
pip install csvqlx
```

## Usage

### CLI

```bash
csvqlx "SELECT * FROM 'data.csv' WHERE amount > 100"
csvqlx --interactive
```

### Python

```python
from csvqlx import query, QueryBuilder

# Simple query
result = query("SELECT * FROM 'sales.csv' WHERE amount > 1000")
for row in result:
    print(row)

# Fluent builder
result = (
    QueryBuilder("sales.csv")
    .select("category", "SUM(amount) AS total")
    .where("amount > 100")
    .group_by("category")
    .order_by("total", desc=True)
    .limit(10)
    .execute()
)

print(result.to_json())
result.to_csv("output.csv")
```

## Supported SQL

- `SELECT` columns or `*`
- `WHERE` with `=`, `!=`, `>`, `>=`, `<`, `<=`, `LIKE`
- `GROUP BY` with `SUM`, `COUNT`, `AVG`, `MIN`, `MAX`
- `ORDER BY` `ASC` / `DESC`
- `LIMIT` / `OFFSET`
