Metadata-Version: 2.4
Name: spiraldb
Version: 0.16.26
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: Other/Proprietary License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Rust
Classifier: Topic :: Database
Requires-Dist: adbc-driver-manager>=1.1.0
Requires-Dist: pyarrow>=19.0.0
Requires-Dist: tqdm>=4.67.1
Requires-Dist: duckdb ; extra == 'duckdb'
Requires-Dist: harlequin>=2.5.2,<3 ; extra == 'harlequin'
Requires-Dist: harlequin-adbc>=0.1.2,<0.2 ; extra == 'harlequin'
Requires-Dist: notebook>=7 ; extra == 'notebook'
Requires-Dist: pandas ; extra == 'pandas'
Requires-Dist: polars ; extra == 'polars'
Provides-Extra: duckdb
Provides-Extra: harlequin
Provides-Extra: notebook
Provides-Extra: pandas
Provides-Extra: polars
Summary: Python Client for SpiralDB.
Home-Page: https://spiraldb.com
Author-email: SpiralDB <hello@spiraldb.com>
License: Proprietary License
Requires-Python: >=3.11
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM

Python Client for [SpiralDB](https://spiraldb.com).

The wheel also exposes the embedded engine as an ADBC driver without bundling
a second native library:

```python
from spiraldb.adbc import dbapi

with dbapi.connect() as connection:
    with connection.cursor() as cursor:
        cursor.execute("SELECT CAST(? AS BIGINT) + 1 AS value", [41])
        assert cursor.fetchall() == [(42,)]
```

Prepared queries accept positional `?` or contiguous `$1`, `$2`, ...
placeholders and exactly one parameter row per execution.

Launch the Harlequin SQL TUI against the hosted SpiralDB catalog in an isolated
environment with:

```console
uvx --with 'spiraldb[harlequin]' harlequin -a spiraldb
```

No separate authentication step is required. The driver reuses cached Spiral
credentials when available, or opens the system browser for device-code
authentication on first access to the hosted catalog.

Pass `spiral:memory:` as the final argument for an offline, session-local
catalog instead, or select an initial project with a URI such as
`'spiraldb://?project=my-project'`. Browse the legacy Tables Service catalog
with `'spiraldb://?catalog=legacy'`.

