Skip to main content

Python database orm functions for Locobuzz, common code that is required in all projects

Project description

Locobuzz Python ORM

# Database Connection Manager

A Python package for managing database connections in both synchronous and asynchronous contexts using SQLAlchemy. The package provides two main classes: `SyncDatabase` for synchronous operations and `AsyncDatabase` for asynchronous operations with PostgreSQL.

## Features

- Singleton pattern to ensure a single instance of the database connection.
- Support for multiple databases with connection pooling.
- Asynchronous support for improved performance in `AsyncDatabase`.
- Easy switching between different databases.
- Metadata initialization for table management.

## Installation

To install the package, you can use pip:

```bash
pip install locobuzz_python_orm  # Replace with the actual package name

Usage

Synchronous Database Management

To use the SyncDatabase, follow these steps:

from database_helper.database.sync_db import SyncDatabase

# Initialize the SyncDatabase
sync_db = SyncDatabase(connection_string='postgresql://user:password@localhost/dbname')

# Use the SyncDatabase context manager
with sync_db:
    # Execute a query
    results = sync_db.execute_query("SELECT * FROM your_table;")
    print(results)

Asynchronous Database Management

For the AsyncDatabase, you'll use async and await keywords:

import asyncio
from database_helper.database.async_db import AsyncDatabase

async def main():
    # Initialize the AsyncDatabase
    async_db = AsyncDatabase(connection_string='postgresql://user:password@localhost/dbname')

    async with async_db:
        # Execute a query asynchronously
        results = await async_db.execute_query("SELECT * FROM your_table;")
        print(results)

# Run the async main function
asyncio.run(main())

Switching Databases

Both classes support switching databases on the fly:

# For SyncDatabase
sync_db.switch_database('new_dbname')

# For AsyncDatabase
await async_db.switch_database('new_dbname')

Initializing Tables

You can initialize tables metadata using:

# For SyncDatabase
sync_db.initialize_tables(['your_table1', 'your_table2'])

# For AsyncDatabase
await async_db.initialize_tables(['your_table1', 'your_table2'])

Error Handling

Both classes include basic error handling. If an error occurs during database operations, exceptions will be raised. You can implement additional logging as needed.

Dependencies

  • SQLAlchemy
  • Database connectors such as pyodbc, pymysql, psycopg2, aioodbc, aiomysql, asyncpg

Author

Atharva Udavant

GitHub Profile
Email

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

locobuzz_python_orm-1.1.2.tar.gz (8.3 kB view details)

Uploaded Source

Built Distribution

locobuzz_python_orm-1.1.2-py3-none-any.whl (9.9 kB view details)

Uploaded Python 3

File details

Details for the file locobuzz_python_orm-1.1.2.tar.gz.

File metadata

  • Download URL: locobuzz_python_orm-1.1.2.tar.gz
  • Upload date:
  • Size: 8.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.5

File hashes

Hashes for locobuzz_python_orm-1.1.2.tar.gz
Algorithm Hash digest
SHA256 ab93a35c431e0f3f8d2e932b977b904f9537d15dc5de937fbc9dc7e080308705
MD5 29a7fe49d73c1e0918c1fcedfcc9ac10
BLAKE2b-256 29da482ca5ff56685243e3e894bc49ea84b1e3d0104494c7cb7b0d204707b7d8

See more details on using hashes here.

File details

Details for the file locobuzz_python_orm-1.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for locobuzz_python_orm-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b128b59f78a2b23886b670da2d40f4a3d4e2fe1563872d63f8a09e41a9747b73
MD5 f25fe97ef7195c04bbf1f1ea1dba0642
BLAKE2b-256 2cc65122bd7c75150d1f21ab863bb8581e570e6c69ed740c071a2b3680dd1181

See more details on using hashes here.

Supported by

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