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
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab93a35c431e0f3f8d2e932b977b904f9537d15dc5de937fbc9dc7e080308705 |
|
MD5 | 29a7fe49d73c1e0918c1fcedfcc9ac10 |
|
BLAKE2b-256 | 29da482ca5ff56685243e3e894bc49ea84b1e3d0104494c7cb7b0d204707b7d8 |
File details
Details for the file locobuzz_python_orm-1.1.2-py3-none-any.whl
.
File metadata
- Download URL: locobuzz_python_orm-1.1.2-py3-none-any.whl
- Upload date:
- Size: 9.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b128b59f78a2b23886b670da2d40f4a3d4e2fe1563872d63f8a09e41a9747b73 |
|
MD5 | f25fe97ef7195c04bbf1f1ea1dba0642 |
|
BLAKE2b-256 | 2cc65122bd7c75150d1f21ab863bb8581e570e6c69ed740c071a2b3680dd1181 |