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
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 Distribution
Built Distribution
Close
Hashes for locobuzz_python_orm-1.1.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab93a35c431e0f3f8d2e932b977b904f9537d15dc5de937fbc9dc7e080308705 |
|
MD5 | 29a7fe49d73c1e0918c1fcedfcc9ac10 |
|
BLAKE2b-256 | 29da482ca5ff56685243e3e894bc49ea84b1e3d0104494c7cb7b0d204707b7d8 |
Close
Hashes for locobuzz_python_orm-1.1.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b128b59f78a2b23886b670da2d40f4a3d4e2fe1563872d63f8a09e41a9747b73 |
|
MD5 | f25fe97ef7195c04bbf1f1ea1dba0642 |
|
BLAKE2b-256 | 2cc65122bd7c75150d1f21ab863bb8581e570e6c69ed740c071a2b3680dd1181 |