Metadata-Version: 2.3
Name: adbc-poolhouse
Version: 1.0.1
Summary: Connection pooling for ADBC drivers from typed warehouse configs
Author: Anentropic
Author-email: Anentropic <ego@anentropic.com>
Requires-Dist: pydantic-settings>=2.0.0
Requires-Dist: sqlalchemy>=2.0.0
Requires-Dist: adbc-driver-manager>=1.0.0
Requires-Dist: adbc-poolhouse[duckdb] ; extra == 'all'
Requires-Dist: adbc-poolhouse[snowflake] ; extra == 'all'
Requires-Dist: adbc-poolhouse[postgresql] ; extra == 'all'
Requires-Dist: adbc-poolhouse[flightsql] ; extra == 'all'
Requires-Dist: adbc-poolhouse[bigquery] ; extra == 'all'
Requires-Dist: adbc-driver-bigquery>=1.3.0 ; extra == 'bigquery'
Requires-Dist: duckdb>=0.9.1 ; extra == 'duckdb'
Requires-Dist: adbc-driver-flightsql>=1.0.0 ; extra == 'flightsql'
Requires-Dist: adbc-driver-postgresql>=1.0.0 ; extra == 'postgresql'
Requires-Dist: adbc-driver-snowflake>=1.0.0 ; extra == 'snowflake'
Requires-Python: >=3.11
Project-URL: Homepage, https://anentropic.github.io/adbc-poolhouse/
Project-URL: Documentation, https://anentropic.github.io/adbc-poolhouse/
Project-URL: Source, https://github.com/anentropic/adbc-poolhouse
Project-URL: Changelog, https://anentropic.github.io/adbc-poolhouse/changelog/
Provides-Extra: all
Provides-Extra: bigquery
Provides-Extra: duckdb
Provides-Extra: flightsql
Provides-Extra: postgresql
Provides-Extra: snowflake
Description-Content-Type: text/markdown

# adbc-poolhouse

[ [Docs](https://anentropic.github.io/adbc-poolhouse/) ]

Connection pooling for ADBC drivers from typed warehouse configs.

One config in, one pool out — `create_pool(SnowflakeConfig(...))` returns a ready-to-use SQLAlchemy QueuePool.

## Installation

```bash
pip install adbc-poolhouse
```

Driver extras are available for each supported warehouse (DuckDB, Snowflake, BigQuery, PostgreSQL, FlightSQL). See the [documentation](https://anentropic.github.io/adbc-poolhouse/) for the full list.

## Quick example

The example below uses DuckDB — no credentials or running server required.

```python
from adbc_poolhouse import DuckDBConfig, create_pool, close_pool

# File-backed database (connections share the same file)
config = DuckDBConfig(database="/tmp/warehouse.db")
pool = create_pool(config)

with pool.connect() as conn:
    cursor = conn.cursor()
    cursor.execute("SELECT 42 AS answer")
    row = cursor.fetchone()
    print(row)  # (42,)

close_pool(pool)
```

`pool.connect()` checks out a connection from the pool and returns it when the `with` block exits. `close_pool(pool)` drains the pool and closes the underlying ADBC source connection.

## Supported warehouses

- DuckDB
- Snowflake
- BigQuery
- PostgreSQL
- FlightSQL
- Databricks
- Redshift
- Trino
- MSSQL / Azure SQL / Fabric

## Links

- [Documentation](https://anentropic.github.io/adbc-poolhouse/)
- [Changelog](https://anentropic.github.io/adbc-poolhouse/changelog/)
- [Source](https://github.com/anentropic/adbc-poolhouse)
- [PyPI](https://pypi.org/project/adbc-poolhouse/)

## License

MIT
