Skip to main content

No project description provided

Project description

# asyncpgdb

`asyncpgdb` is a Python library that provides an asynchronous database interface built on top of `asyncpg`. One of its unique features is a custom query formatting style that allows you to write parameterized queries using a more readable syntax.

## Installation

You can install `asyncpgdb` using pip:

```bash
pip install asyncpgdb

Features

  • Asynchronous database operations.
  • Connection pooling for efficient resource management.
  • Simplified query execution and result handling.
  • Custom query formatting style for better readability.

Usage

Database Connection

To establish a connection to your PostgreSQL database, create an instance of the Database class:

from asyncpgdb import Database

db = Database(dsn="your_database_dsn_here")
await db.connect()

Executing Queries

You can execute queries using the execute method. The library supports a custom query formatting style that allows you to parameterize your queries using named variables, enclosed in $( ):

query = "SELECT name, age FROM users WHERE name = $(name) AND age > $(age)"
result = await db.execute(query, vars={"name": "John", "age": 30})

# For SELECT queries, you can fetch the results in various formats
rows = await result.fetch_all()

Connection Management

asyncpgdb provides automatic connection management, so you don't need to worry about acquiring and releasing connections manually:

async with db.acquire_connection() as conn:
    # Use the connection for queries within this block
    pass  # Connection is automatically released after this block

Connection Pool

asyncpgdb manages a connection pool by default, so you can specify the minimum and maximum number of connections in the pool when creating a Database instance:

db = Database(dsn="your_database_dsn_here", min_size=2, max_size=10)

Examples

Selecting Data

query = "SELECT name, age FROM users WHERE age > $(age)"
results = await db.execute(query, vars={"age": 30})
users = await results.fetch_all()

Inserting Data

query = "INSERT INTO products (name, price) VALUES ($(name), $(price))"
await db.execute(query, vars={"name": "Widget", "price": 19.99})

Updating Data

query = "UPDATE orders SET status = $(status) WHERE id = $(id)"
await db.execute(query, vars={"status": "shipped", "id": 123})

Documentation

For more details and advanced usage, refer to the documentation.

License

This library is licensed under the MIT License.


Please replace `"your_database_dsn_here"` with your actual database DSN, and ensure that you have the required dependencies installed to use `asyncpgdb`. You can find detailed documentation and usage examples in the official documentation.

Project details


Download files

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

Source Distribution

asyncpgdb-0.0.19.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

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

asyncpgdb-0.0.19-py3-none-any.whl (8.8 kB view details)

Uploaded Python 3

File details

Details for the file asyncpgdb-0.0.19.tar.gz.

File metadata

  • Download URL: asyncpgdb-0.0.19.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.2 CPython/3.9.13 Darwin/23.0.0

File hashes

Hashes for asyncpgdb-0.0.19.tar.gz
Algorithm Hash digest
SHA256 f8d24f746e68c8236d43691b0f4ad4430acd28c272b5b4a0026b1c629c3cb2fe
MD5 d1b6ecb29aef33eac298e0c46e55c8f7
BLAKE2b-256 0c00bb827e4edd8a807aa2f27ccce37d0711fbfcf7ac5219886bdfffcbc125a1

See more details on using hashes here.

File details

Details for the file asyncpgdb-0.0.19-py3-none-any.whl.

File metadata

  • Download URL: asyncpgdb-0.0.19-py3-none-any.whl
  • Upload date:
  • Size: 8.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.2 CPython/3.9.13 Darwin/23.0.0

File hashes

Hashes for asyncpgdb-0.0.19-py3-none-any.whl
Algorithm Hash digest
SHA256 b559012a27536eb441144be73e10d8ee8f1a9924ac51a6c70142f27b83618fe3
MD5 81a682b209c2871721a4cd24f2e60ecb
BLAKE2b-256 db4fefe08c6cdc1638f7a24f39368c34cb0c091cae83c936dad14902cf3edf50

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