Metadata-Version: 2.4
Name: sqlalchemy-pytibero
Version: 0.3.0
Summary: Tibero dialect for SQLAlchemy
Author-email: Yeongseon Choe <yeongseon.choe@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/yeongseon/sqlalchemy-pytibero
Project-URL: Repository, https://github.com/yeongseon/sqlalchemy-pytibero
Project-URL: Issues, https://github.com/yeongseon/sqlalchemy-pytibero/issues
Keywords: SQLAlchemy,Tibero,dialect
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
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.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: SQL
Classifier: Topic :: Database
Classifier: Topic :: Database :: Front-Ends
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: sqlalchemy<2.2,>=2.0.23
Provides-Extra: pytibero
Requires-Dist: pytibero; extra == "pytibero"
Provides-Extra: alembic
Requires-Dist: alembic; extra == "alembic"
Provides-Extra: aioodbc
Requires-Dist: aioodbc>=0.5.0; extra == "aioodbc"
Provides-Extra: dev
Requires-Dist: pytest>=7.0; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: ruff==0.15.6; extra == "dev"
Requires-Dist: alembic>=1.10; extra == "dev"
Dynamic: license-file

# sqlalchemy-pytibero

[![PyPI version](https://img.shields.io/pypi/v/sqlalchemy-pytibero)](https://pypi.org/project/sqlalchemy-pytibero)
[![CI](https://github.com/yeongseon/sqlalchemy-pytibero/actions/workflows/ci.yml/badge.svg)](https://github.com/yeongseon/sqlalchemy-pytibero/actions/workflows/ci.yml)
[![license](https://img.shields.io/github/license/yeongseon/sqlalchemy-pytibero)](https://github.com/yeongseon/sqlalchemy-pytibero/blob/main/LICENSE)
[![docs](https://img.shields.io/badge/docs-GitHub%20Pages-blue)](https://yeongseon.github.io/sqlalchemy-pytibero/)

SQLAlchemy 2.0 dialect for the Tibero database, backed by `pytibero`.

## Installation

```bash
pip install sqlalchemy-pytibero
```

With DB-API dependency:

```bash
pip install "sqlalchemy-pytibero[pytibero]"
```

## Quick Start

```python
from sqlalchemy import create_engine, text

engine = create_engine("tibero://tibero:password@localhost:8629/TESTDB")

with engine.connect() as conn:
    value = conn.execute(text("SELECT 1 FROM DUAL")).scalar()
    print(value)
```

## Alembic Support

This dialect includes an Alembic implementation. After installing, Alembic
migrations work out of the box:

```ini
# alembic.ini
sqlalchemy.url = tibero://tibero:password@localhost:8629/TESTDB
```

```bash
alembic upgrade head
```

Note: Tibero DDL is auto-committed, so `transactional_ddl = False`.

## Architecture

```mermaid
flowchart TD
    app["Application"] --> sa["SQLAlchemy Core/ORM"]
    sa --> dialect["TiberoDialect"]
    dialect --> dbapi["pytibero"]
    dbapi --> server["Tibero Server"]
```

## Development

```bash
make lint
make test
```

## License

MIT
