Metadata-Version: 2.4
Name: tigrbl_engine_snowflake
Version: 0.1.1.dev3
Summary: Tigrbl engine plugin for Snowflake, auto-registered via entry points.
Author-email: Jacob Stewart <jacob@swarmauri.com>
License: Apache-2.0
Project-URL: Homepage, https://github.com/swarmauri/swarmauri-sdk
Project-URL: Repository, https://github.com/swarmauri/swarmauri-sdk/tree/master/pkgs/experimental/tigrbl_engine_snowflake
Keywords: tigrbl,engine,plugin,snowflake,database,analytics
Classifier: Development Status :: 1 - Planning
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Environment :: Plugins
Classifier: Intended Audience :: Developers
Classifier: Topic :: Database
Classifier: Topic :: Software Development :: Libraries
Requires-Python: <3.13,>=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: SQLAlchemy<3.0,>=2.0
Requires-Dist: snowflake-sqlalchemy<2.0,>=1.5
Requires-Dist: snowflake-connector-python<4.0,>=3.0
Dynamic: license-file

# tigrbl_engine_snowflake

**Tigrbl engine plugin for Snowflake**, auto-registered via the `tigrbl.engine` entry-point group.

## Install

```bash
pip install -e .
```

## Usage (inside Tigrbl)

```python
from tigrbl.engine import Engine
from tigrbl.engine.engine_spec import EngineSpec

# DSN (Snowflake SQLAlchemy URL)
spec = EngineSpec(kind="snowflake", dsn="snowflake://USER:PWD@ACCOUNT/DB/SCHEMA?warehouse=WH&role=ROLE")

# Or provide a mapping; the plugin builds the DSN
spec = EngineSpec(kind="snowflake", mapping={
    "account": "myacct-xy123",
    "user": "USER",
    "pwd": "PWD",
    "db": "DB",
    "schema": "PUBLIC",
    "warehouse": "COMPUTE_WH",
    "role": "SYSADMIN",
    "pool_size": 10,
    "max_overflow": 20
})

engine = Engine(spec)
with engine.session() as s:
    s.execute("SELECT CURRENT_ROLE()").all()
```

## Entry-point

Declared in `pyproject.toml`:

```toml
[project.entry-points."tigrbl.engine"]
snowflake = "tigrbl_engine_snowflake:register"
```
