Metadata-Version: 2.4
Name: sqlalchemy-pyaltibase
Version: 0.3.0
Summary: Altibase dialect for SQLAlchemy
Author-email: Yeongseon Choe <yeongseon.choe@gmail.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/yeongseon/sqlalchemy-pyaltibase
Project-URL: Repository, https://github.com/yeongseon/sqlalchemy-pyaltibase
Project-URL: Issues, https://github.com/yeongseon/sqlalchemy-pyaltibase/issues
Keywords: SQLAlchemy,Altibase,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: pyaltibase
Requires-Dist: pyaltibase; extra == "pyaltibase"
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-pyaltibase

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

SQLAlchemy 2.0 dialect for the Altibase database, backed by `pyaltibase`.

## Installation

```bash
pip install sqlalchemy-pyaltibase
```

With DB-API dependency:

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

## Quick Start

```python
from sqlalchemy import create_engine, text

engine = create_engine("altibase://user:password@localhost:20300/mydb")

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 = altibase://user:password@localhost:20300/mydb
```

```bash
alembic upgrade head
```

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

## Architecture

```mermaid
flowchart TD
    app["Application"] --> sa["SQLAlchemy Core/ORM"]
    sa --> dialect["AltibaseDialect"]
    dialect --> dbapi["pyaltibase"]
    dbapi --> server["Altibase Server"]
```

## Development

```bash
make lint
make test
```

## License

MIT
