Skip to main content

Databend Driver Python Binding

Project description

databend-driver

Build

cd bindings/python
maturin develop

Usage

Blocking

from databend_driver import BlockingDatabendClient

client = BlockingDatabendClient('databend+http://root:root@localhost:8000/?sslmode=disable')
conn = client.get_conn()
conn.exec(
    """
    CREATE TABLE test (
        i64 Int64,
        u64 UInt64,
        f64 Float64,
        s   String,
        s2  String,
        d   Date,
        t   DateTime
    )
    """
)
rows = conn.query_iter("SELECT * FROM test")
for row in rows:
    print(row.values())

Asyncio

import asyncio
from databend_driver import AsyncDatabendClient

async def main():
    client = AsyncDatabendClient('databend+http://root:root@localhost:8000/?sslmode=disable')
    conn = await client.get_conn()
    await conn.exec(
        """
        CREATE TABLE test (
            i64 Int64,
            u64 UInt64,
            f64 Float64,
            s   String,
            s2  String,
            d   Date,
            t   DateTime
        )
        """
    )
    rows = await conn.query_iter("SELECT * FROM test")
    async for row in rows:
        print(row.values())

asyncio.run(main())

APIs

AsyncDatabendClient

class AsyncDatabendClient:
    def __init__(self, dsn: str): ...
    async def get_conn(self) -> AsyncDatabendConnection: ...

AsyncDatabendConnection

class AsyncDatabendConnection:
    async def info(self) -> ConnectionInfo: ...
    async def version(self) -> str: ...
    async def exec(self, sql: str) -> int: ...
    async def query_row(self, sql: str) -> Row: ...
    async def query_iter(self, sql: str) -> RowIterator: ...
    async def stream_load(self, sql: str, data: list[list[str]]) -> ServerStats: ...

BlockingDatabendClient

class BlockingDatabendClient:
    def __init__(self, dsn: str): ...
    def get_conn(self) -> BlockingDatabendConnection: ...

BlockingDatabendConnection

class BlockingDatabendConnection:
    def info(self) -> ConnectionInfo: ...
    def version(self) -> str: ...
    def exec(self, sql: str) -> int: ...
    def query_row(self, sql: str) -> Row: ...
    def query_iter(self, sql: str) -> RowIterator: ...
    def stream_load(self, sql: str, data: list[list[str]]) -> ServerStats: ...

Row

class Row:
    def values(self) -> tuple: ...

RowIterator

class RowIterator:
    def schema(self) -> Schema: ...

    def __iter__(self) -> RowIterator: ...
    def __next__(self) -> Row: ...

    def __aiter__(self) -> RowIterator: ...
    async def __anext__(self) -> Row: ...

Field

class Field:
    @property
    def name(self) -> str: ...
    @property
    def data_type(self) -> str: ...

Schema

class Schema:
    def fields(self) -> list[Field]: ...

ServerStats

class ServerStats:
    @property
    def total_rows(self) -> int: ...
    @property
    def total_bytes(self) -> int: ...
    @property
    def read_rows(self) -> int: ...
    @property
    def read_bytes(self) -> int: ...
    @property
    def write_rows(self) -> int: ...
    @property
    def write_bytes(self) -> int: ...
    @property
    def running_time_ms(self) -> float: ...

ConnectionInfo

class ConnectionInfo:
    @property
    def handler(self) -> str: ...
    @property
    def host(self) -> str: ...
    @property
    def port(self) -> int: ...
    @property
    def user(self) -> str: ...
    @property
    def database(self) -> str | None: ...
    @property
    def warehouse(self) -> str | None: ...

Development

cd tests
make up
cd bindings/python
pipenv install --dev
pipenv run maturin develop
pipenv run behave tests/*

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

databend_driver-0.12.3-cp37-abi3-win_amd64.whl (4.5 MB view details)

Uploaded CPython 3.7+Windows x86-64

databend_driver-0.12.3-cp37-abi3-manylinux_2_31_x86_64.whl (4.5 MB view details)

Uploaded CPython 3.7+manylinux: glibc 2.31+ x86-64

databend_driver-0.12.3-cp37-abi3-macosx_11_0_arm64.whl (4.1 MB view details)

Uploaded CPython 3.7+macOS 11.0+ ARM64

databend_driver-0.12.3-cp37-abi3-macosx_10_12_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.7+macOS 10.12+ x86-64

File details

Details for the file databend_driver-0.12.3-cp37-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for databend_driver-0.12.3-cp37-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 7721ddb4721da899afc614c145ceecd79c90a31984d97b7195c1df6eb46ea5b7
MD5 75989bed24ff2e7a669a9a31c65ac6d4
BLAKE2b-256 d5164b505d390b6eecf97fe8e6ebda9b37133bfc09985ccc1139b4f023ac037f

See more details on using hashes here.

File details

Details for the file databend_driver-0.12.3-cp37-abi3-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for databend_driver-0.12.3-cp37-abi3-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 d25f457aa119d97b5135bf05311db6cf625680766dd5fe12034c0b8c483238e1
MD5 2170eb378fc60d57d6a36048260f88f9
BLAKE2b-256 e27356481a716cb680d30e687ab5756d3c2e253fcf40ac4b839aac6f33155b64

See more details on using hashes here.

File details

Details for the file databend_driver-0.12.3-cp37-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for databend_driver-0.12.3-cp37-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 46c9e78454fc45c54ca325cee1427ae52f560150466e13a2c69054647a881d44
MD5 21194e2424a125afe18768a94d4fe05e
BLAKE2b-256 4b3dae6abfdd6954075941233058d2a61e74e558668aa6147f8b6ff7fae2ed4b

See more details on using hashes here.

File details

Details for the file databend_driver-0.12.3-cp37-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for databend_driver-0.12.3-cp37-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a575d8f452fa1c7ac6b2f96c3dec86880fc9359eb75a1a4bdbc5ffefb0460b7d
MD5 97178149d990900ce9a091ff43cbd66e
BLAKE2b-256 762af0ecc638523cef5daf1ac0cb139bcb462aa022c6fe54114db9baf39f6e99

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page