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.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1a7f782d6cfa7e94b284458aec36017285abe4553321bcc3b6b05108d5ce7836 |
|
MD5 | e0e9d0b6e36e73599f5c8e069f249c5f |
|
BLAKE2b-256 | 62e5c817139ecdf73db4a9dc8798825df5dabcbf12f2b2473ee08a50e55ac6cf |
Close
Hashes for locobuzz_python_orm-1.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2807f2f6e8023e6fa41b7829ceb41a6dd24bcdf024cff8c9f4944772a6c69360 |
|
MD5 | e0fb610c4f6b2e4d47137f409e135be5 |
|
BLAKE2b-256 | a78b2a7a6bce98b3b98bb3d9ba4855cb27cfd1f12de5f53e37d87d75834b10a4 |