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.10.0-py3-none-win_amd64.whl (2.0 MB view details)

Uploaded Python 3 Windows x86-64

adbc_driver_postgresql-0.10.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.6 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ x86-64

adbc_driver_postgresql-0.10.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.4 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARM64

adbc_driver_postgresql-0.10.0-py3-none-macosx_11_0_arm64.whl (2.0 MB view details)

Uploaded Python 3 macOS 11.0+ ARM64

adbc_driver_postgresql-0.10.0-py3-none-macosx_10_9_x86_64.whl (2.2 MB view details)

Uploaded Python 3 macOS 10.9+ x86-64

File details

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

File metadata

File hashes

Hashes for adbc_driver_postgresql-0.10.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 1bea75ced7d0bfa0672ebfc0fd051246d728a3dc77b5d2f8cdd9d4980541b904
MD5 db3ee3ec28e071c3f9644f5446fd41ba
BLAKE2b-256 1cbd1a2a77c1198158e336937e3c61d87f6cb5ea891807bfa12e2f51181d6e8e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for adbc_driver_postgresql-0.10.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 28baf681f539fbaa9f6b192a69025b5b4f218c5172c8fc8e27fd3a4570aeda71
MD5 9632a6c41060d79fb946aac2bae6d2c2
BLAKE2b-256 594750a224d17a6c07fd30ed29a81c78e43920dfc0d1828e5916917d4baa75c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for adbc_driver_postgresql-0.10.0-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 6bcd69ce87186bd827c9f9f459af0523d5cf14a135ea28baf313d5a9c8749fd8
MD5 03a6aeaadfa8535cfd83a878882887ab
BLAKE2b-256 54ee11c635b13fc8a2417bdfede4de789c279455f7edb8b3d2c453d252422a7f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for adbc_driver_postgresql-0.10.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9cc41c581c1c13899ff92c196ce23bc8287cb069524271d60bedeabb824a89b2
MD5 7c0ea96a0d88e52cb4621c5aac2b32e8
BLAKE2b-256 de2740df6210b06a7d493b5ada156a9ff0be79648dce782d7eb6efa6d0c8ef24

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for adbc_driver_postgresql-0.10.0-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 727fc6852bd504deda6a03c6b77aa1a788ba9485012f043fd9b647476f9c0501
MD5 4458fe41f9c37aa939d3ea34901aac16
BLAKE2b-256 e4c2cd74e31f13177fd77bf95ef6784f7fb8152359f92721d6a63d0f1ad18c51

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