A package for managing PostgreSQL database operations
Project description
pgdbtools 📊
pgdbtools
es un paquete Python diseñado para gestionar operaciones en bases de datos PostgreSQL de manera eficiente, tanto de manera sincrónica como asíncrona. Este paquete es ideal para desarrolladores y equipos que buscan simplificar y optimizar la interacción con bases de datos PostgreSQL en sus proyectos.
Características ✨
- Soporte Sincrónico y Asíncrono: Gestione operaciones de base de datos tanto en modo sincrónico como asíncrono.
- Manejo Eficiente de Conexiones: Utiliza context managers para manejar las conexiones a la base de datos de manera eficiente.
- Facilidad de Configuración: Cargue configuraciones desde un archivo
.env
o proporcione un diccionario personalizado directamente en el código. - Logging Personalizado: Integra un sistema de logging configurable para monitorear y depurar operaciones de base de datos.
- Operaciones CRUD: Facilita la inserción, actualización, eliminación y consulta de registros.
Instalación 🚀
Puedes instalar pgdbtools
desde PyPI utilizando pip:
pip install pgdbtools
Uso Básico 💻
1. Configuración Inicial 🛠️
Puedes configurar la conexión a la base de datos de dos maneras:
Opción 1: Archivo .env
🌐
Crea un archivo .env
en el directorio raíz de tu proyecto con la configuración de tu base de datos:
DB_DATABASE=mydatabase
DB_USER=myuser
DB_PASSWORD=mypassword
DB_HOST=localhost
DB_PORT=5432
LOG_LEVEL=DEBUG
Opción 2: Configuración en el Código 🔧
También puedes pasar la configuración directamente en tu código como un diccionario:
from pgdbtools import PgDbTools
# Configuración personalizada
db_config = {
'dbname': 'mydatabase',
'user': 'myuser',
'password': 'mypassword',
'host': 'localhost',
'port': '5432'
}
# Inicializa la herramienta con la configuración personalizada
db_tool = PgDbTools(db_config=db_config)
2. Ejemplo de Uso Sincrónico 🔄
from pgdbtools import PgDbTools
# Inicializa la herramienta con la configuración predeterminada o personalizada
db_tool = PgDbTools()
# Inserta un registro
db_tool.insert_record("mi_tabla", {"columna1": "valor1", "columna2": "valor2"})
# Consulta registros
records = db_tool.fetch_records("mi_tabla", {"columna1": "valor1"})
print(records)
# Actualiza un registro
db_tool.update_record("mi_tabla", {"columna2": "nuevo_valor"}, {"columna1": "valor1"})
# Elimina un registro
db_tool.delete_record("mi_tabla", {"columna1": "valor1"})
3. Ejemplo de Uso Asíncrono ⚡
import asyncio
from pgdbtools import AsyncPgDbTools
async def main():
# Inicializa la herramienta asíncrona con la configuración predeterminada o personalizada
db_tool = AsyncPgDbTools()
# Inserta un registro
await db_tool.insert_record("mi_tabla", {"columna1": "valor1", "columna2": "valor2"})
# Consulta registros
records = await db_tool.fetch_records("mi_tabla", {"columna1": "valor1"})
print(records)
# Actualiza un registro
await db_tool.update_record("mi_tabla", {"columna2": "nuevo_valor"}, {"columna1": "valor1"})
# Elimina un registro
await db_tool.delete_record("mi_tabla", {"columna1": "valor1"})
# Ejecuta la función principal
asyncio.run(main())
4. Logging Personalizado 📜
El sistema de logging permite personalizar los niveles de log y decidir si se quiere guardar en un archivo o en la consola.
from pgdbtools import log
# Cambia el nivel de logging
log.setLevel("INFO")
# Loggea un mensaje
log.info("Este es un mensaje de información.")
Contribuciones 👥
¡Las contribuciones son bienvenidas! Si deseas contribuir al proyecto, por favor sigue estos pasos:
- Realiza un fork del repositorio.
- Crea una nueva rama (
git checkout -b feature/mi-nueva-funcionalidad
). - Realiza tus cambios y commitea (
git commit -am 'Añadir nueva funcionalidad'
). - Push a la rama (
git push origin feature/mi-nueva-funcionalidad
). - Crea un nuevo Pull Request.
Roadmap 🛤️
- Soporte para operaciones avanzadas de PostgreSQL.
- Mejoras en la documentación con ejemplos más complejos.
- Integración con herramientas de CI/CD.
- Añadir más tests unitarios y de integración.
Licencia 📄
Este proyecto está licenciado bajo la Licencia MIT - ver el archivo LICENSE para más detalles.
¡Gracias por usar pgdbtools
! Si tienes alguna pregunta o sugerencia, no dudes en abrir un issue en el repositorio. 😊
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 Distributions
Built Distribution
File details
Details for the file PgDbToolkit-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: PgDbToolkit-0.1.0-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.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b6b11ee965e31fa48a83fad2ee1f87200a9aad3bd7dfb0474de918c70a7b202 |
|
MD5 | 9243aa69923c899f75fd6555d5148a71 |
|
BLAKE2b-256 | 202cf5032f9117cc61939971b89d4de35d7a837443e14497179cf617de1a8b7e |