Metadata-Version: 2.4
Name: adbc-driver-quack
Version: 0.1.0a1
Summary: An Apache Arrow ADBC driver for DuckDB's Quack remote protocol.
Author-email: GizmoData <support@gizmodata.com>
License-Expression: MIT
Project-URL: homepage, https://github.com/gizmodata/adbc-driver-quack
Project-URL: repository, https://github.com/gizmodata/adbc-driver-quack
Project-URL: issues, https://github.com/gizmodata/adbc-driver-quack/issues
Classifier: Development Status :: 3 - Alpha
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
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: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Classifier: Topic :: Database
Classifier: Topic :: Database :: Database Engines/Servers
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: README.md
Requires-Dist: adbc-driver-manager>=1.0.0
Requires-Dist: importlib-resources>=1.3
Provides-Extra: dbapi
Requires-Dist: pandas; extra == "dbapi"
Requires-Dist: pyarrow>=14.0.1; extra == "dbapi"
Provides-Extra: test
Requires-Dist: pandas; extra == "test"
Requires-Dist: pyarrow>=14.0.1; extra == "test"
Requires-Dist: pytest>=7; extra == "test"
Requires-Dist: duckdb>=1.5.2; extra == "test"
Dynamic: license-file

# adbc-driver-quack

Apache Arrow ADBC driver for [DuckDB's Quack remote protocol](https://duckdb.org/docs/current/quack/overview).

See the main repo at <https://github.com/gizmodata/adbc-driver-quack>
for source, design notes, and the companion JDBC driver.

## Install

```
pip install adbc-driver-quack
```

## Quickstart

```python
import adbc_driver_quack.dbapi
import pyarrow

with adbc_driver_quack.dbapi.connect(
    "quack://127.0.0.1:9494",
    db_kwargs={"adbc.quack.token": "my-token"},
) as conn, conn.cursor() as cur:
    cur.execute("SELECT 42 AS answer")
    table: pyarrow.Table = cur.fetch_arrow_table()
    print(table)
```

Bulk ingest:

```python
import pyarrow as pa
import adbc_driver_quack.dbapi

t = pa.table({"id": [1, 2, 3], "name": ["alice", "bob", "carol"]})
with adbc_driver_quack.dbapi.connect("quack://127.0.0.1:9494") as conn, conn.cursor() as cur:
    cur.adbc_ingest("customers", t, mode="append")
```

License: MIT.
