Skip to main content

A package for managing PostgreSQL database operations

Project description

PgDbToolkit 📊

Python License PostgreSQL Build

PgDbToolkit 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: Gestiona 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: Carga configuraciones desde un archivo .env o proporciona 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.
  • Gestión de Bases de Datos: Permite crear, eliminar y listar bases de datos.
  • Gestión de Tablas: Facilita la creación, eliminación, modificación y consulta de tablas.
  • Construcción de Queries: Ofrece un método auxiliar para construir queries SQL personalizados.

Instalación 🚀

Puedes instalar PgDbToolkit desde PyPI utilizando pip:

pip install PgDbToolkit

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 pgdbtoolkit import PgDbToolkit

# 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 = PgDbToolkit(db_config=db_config)

2. Ejemplo de Uso Sincrónico 🔄

from pgdbtoolkit import PgDbToolkit

# Inicializa la herramienta con la configuración predeterminada o personalizada
db_tool = PgDbToolkit()

# Crea una nueva base de datos
db_tool.create_database('nueva_base_de_datos')

# Elimina una base de datos
db_tool.delete_database('nueva_base_de_datos')

# Crea una nueva tabla
db_tool.create_table('mi_tabla', {
    'id': 'SERIAL PRIMARY KEY',
    'nombre': 'VARCHAR(100)',
    'edad': 'INTEGER'
})

# Inserta un registro
db_tool.insert_record('mi_tabla', {'nombre': 'John Doe', 'edad': 30})

# Consulta registros
records = db_tool.fetch_records('mi_tabla', {'edad': 30})
print(records)

# Actualiza un registro
db_tool.update_record('mi_tabla', {'edad': 31}, {'nombre': 'John Doe'})

# Elimina un registro
db_tool.delete_record('mi_tabla', {'nombre': 'John Doe'})

3. Ejemplo de Uso Asíncrono ⚡

import asyncio
from pgdbtoolkit import AsyncPgDbToolkit

async def main():
    # Inicializa la herramienta asíncrona con la configuración predeterminada o personalizada
    db_tool = AsyncPgDbToolkit()

    # Crea una nueva base de datos
    await db_tool.create_database('nueva_base_de_datos')

    # Elimina una base de datos
    await db_tool.delete_database('nueva_base_de_datos')

    # Crea una nueva tabla
    await db_tool.create_table('mi_tabla', {
        'id': 'SERIAL PRIMARY KEY',
        'nombre': 'VARCHAR(100)',
        'edad': 'INTEGER'
    })

    # Inserta un registro
    await db_tool.insert_record('mi_tabla', {'nombre': 'John Doe', 'edad': 30})

    # Consulta registros
    records = await db_tool.fetch_records('mi_tabla', {'edad': 30})
    print(records)

    # Actualiza un registro
    await db_tool.update_record('mi_tabla', {'edad': 31}, {'nombre': 'John Doe'})

    # Elimina un registro
    await db_tool.delete_record('mi_tabla', {'nombre': 'John Doe'})

# 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 pgdbtoolkit 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:

  1. Realiza un fork del repositorio.
  2. Crea una nueva rama (git checkout -b feature/mi-nueva-funcionalidad).
  3. Realiza tus cambios y commitea (git commit -am 'Añadir nueva funcionalidad').
  4. Push a la rama (git push origin feature/mi-nueva-funcionalidad).
  5. 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 PgDbToolkit! Si tienes alguna pregunta o sugerencia, no dudes en abrir un issue en el repositorio. 😊

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

pgdbtoolkit-0.1.14.tar.gz (23.4 kB view details)

Uploaded Source

Built Distribution

PgDbToolkit-0.1.14-py3-none-any.whl (23.8 kB view details)

Uploaded Python 3

File details

Details for the file pgdbtoolkit-0.1.14.tar.gz.

File metadata

  • Download URL: pgdbtoolkit-0.1.14.tar.gz
  • Upload date:
  • Size: 23.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.10

File hashes

Hashes for pgdbtoolkit-0.1.14.tar.gz
Algorithm Hash digest
SHA256 474c9d16a1e9333f89b6bf44e600f09b8099aeb8b5ac0ae9a20324f0ec0ab88e
MD5 36d3946b7c940e9c4276319fb9d80a7c
BLAKE2b-256 79b055684f41f8bf8f4f83a5af4969b68c92b0a316dd243ca68e1eaa6183c8c1

See more details on using hashes here.

File details

Details for the file PgDbToolkit-0.1.14-py3-none-any.whl.

File metadata

  • Download URL: PgDbToolkit-0.1.14-py3-none-any.whl
  • Upload date:
  • Size: 23.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.10

File hashes

Hashes for PgDbToolkit-0.1.14-py3-none-any.whl
Algorithm Hash digest
SHA256 ca6a9796b8e55a9e436b386c57fb760071a8bf339294881df9d24f0022639a28
MD5 93bcddcd1ed95c08172a49cba9819ab7
BLAKE2b-256 7c9e2024625e3b015559a250677acad95ebfeb81d05084eb9cce6e34c60ed039

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