Skip to main content

A libpq-based ADBC driver for working with PostgreSQL.

Project description

ADBC PostgreSQL Driver for Python

This package contains bindings for the PostgreSQL driver, using the driver manager to provide a DBAPI 2.0/PEP 249-compatible interface on top.

Example

import adbc_driver_postgresql.dbapi

uri = "postgresql://postgres:password@localhost:5432/postgres"
with adbc_driver_postgresql.dbapi.connect(uri) as conn:
    with conn.cursor() as cur:
        cur.execute("SELECT 1")
        print(cur.fetch_arrow_table())

Building

Dependencies: a build of the PostgreSQL driver, and the adbc-driver-manager Python package. Optionally, install PyArrow to use the DBAPI 2.0-compatible interface.

Set the environment variable ADBC_POSTGRESQL_LIBRARY to the path to libadbc_driver_postgresql.{dll,dylib,so} before running pip install.

# If not already installed
pip install -e ../adbc_driver_manager

export ADBC_POSTGRESQL_LIBRARY=/path/to/libadbc_driver_postgresql.so
pip install --no-deps -e .

For users building from the arrow-adbc source repository, you can alternately use CMake to manage library dependencies and set environment variables for you. Assuming you specify -DADBC_DRIVER_POSTGRESQL=ON you can also add -DADBC_BUILD_PYTHON=ON to define a python target.

For example, assuming you run cmake from the project root:

cmake -S c -B build --preset debug -DADBC_BUILD_PYTHON=ON
cmake --build build --target python

will properly build and install the Python library for you.

See CONTRIBUTING.md for details on the general build process.

Testing

A running instance of PostgreSQL is required. For example, using Docker:

$ docker run -it --rm \
    -e POSTGRES_PASSWORD=password \
    -e POSTGRES_DB=tempdb \
    -p 5432:5432 \
    postgres

Then, to run the tests, set the environment variable specifying the PostgreSQL URI before running tests:

$ export ADBC_POSTGRESQL_TEST_URI=postgresql://localhost:5432/postgres?user=postgres&password=password
$ pytest -vvx

See CONTRIBUTING.md for details on the general test process.

Project details


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

adbc_driver_postgresql-0.9.0-py3-none-win_amd64.whl (2.0 MB view details)

Uploaded Python 3 Windows x86-64

adbc_driver_postgresql-0.9.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.4 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ x86-64

adbc_driver_postgresql-0.9.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.1 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARM64

adbc_driver_postgresql-0.9.0-py3-none-macosx_11_0_arm64.whl (1.9 MB view details)

Uploaded Python 3 macOS 11.0+ ARM64

adbc_driver_postgresql-0.9.0-py3-none-macosx_10_9_x86_64.whl (2.1 MB view details)

Uploaded Python 3 macOS 10.9+ x86-64

File details

Details for the file adbc_driver_postgresql-0.9.0-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for adbc_driver_postgresql-0.9.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 79365162970e9d15f43d189ebf25a1bcfac6c492d2957bd722750a0ad3943de6
MD5 ec49a74f383631509ec2ff2c9b4729ee
BLAKE2b-256 d6247ab99d1df0382ba2bb90c8284bb1bdd135a72daf6ef0150aaaa56ba2d07f

See more details on using hashes here.

File details

Details for the file adbc_driver_postgresql-0.9.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for adbc_driver_postgresql-0.9.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d308858dd45cd581d6751a3a824f343ff7abec41d4c1fe60acbabcf5d27ca696
MD5 95dab166036e2916b2de88526b2dee34
BLAKE2b-256 b4d04fe4e90a00fadfa0d6e7cbf23e9e62c453e499fd0fd507e8004557b97b2b

See more details on using hashes here.

File details

Details for the file adbc_driver_postgresql-0.9.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for adbc_driver_postgresql-0.9.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e3b518e4feedcd6ddf47868629d66051e5ceb26aa89167e56ab5a6e07db488e9
MD5 d8089cf7da1ab2cc2bf7740dcf5f8d15
BLAKE2b-256 e15efd45ea69b2a6686e26670520fe56e17451356a364c023337922ec038c047

See more details on using hashes here.

File details

Details for the file adbc_driver_postgresql-0.9.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for adbc_driver_postgresql-0.9.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 070f671b763ab63fa32d26bc9663b9f007de5c9d6b6aa316d80988e089bd325c
MD5 c3a25dde0563fc54586a722740ee66d5
BLAKE2b-256 b2a570fb487f6d103f8d286348b150a8e92469d048047d531314e91ba533fb82

See more details on using hashes here.

File details

Details for the file adbc_driver_postgresql-0.9.0-py3-none-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for adbc_driver_postgresql-0.9.0-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1241c8e2659fe5d5025a3ccda8b68a131badc4bafbed3056c50a5b8d765c0e9c
MD5 13a52a2c533eb632c40a1f16d09f1ced
BLAKE2b-256 378973a493c7923271e345b4f5d5e41ce8c4733bc0693e542fa0f7313f212b18

See more details on using hashes here.

Supported by

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