Skip to main content

pyntegritydb

PyPI version License: MIT Documentation Status Python versions Build Status Coverage Status

pyntegritydb es una herramienta de línea de comandos para analizar y medir la calidad de la integridad referencial en bases de datos relacionales. Basada en el paper académico "Referential Integrity Quality Metrics", la biblioteca te ayuda a diagnosticar rápidamente relaciones rotas o "huérfanas" en tu esquema.


Características Principales

  • Análisis Dual: Mide tanto la Completitud (filas huérfanas) como la Consistencia (datos desnormalizados incorrectos).
  • Sistema de Alertas: Define umbrales de calidad en un archivo config.yml y recibe alertas si tus datos no cumplen con los estándares.
  • Soporte Multi-DB: Compatible con cualquier base de datos que soporte SQLAlchemy (PostgreSQL, MySQL, SQLite, etc.).
  • Reportes Flexibles: Genera reportes en múltiples formatos: tabla para la consola (cli), json o csv.
  • Visualización de Esquema: Crea un mapa visual de la salud de tus relaciones con el flag --visualize.

Instalación

Instala pyntegritydb directamente desde PyPI:

pip install pyntegritydb

Guía de Inicio Rápido

Ejecuta un análisis completo, genera un reporte en JSON y un mapa visual con un solo comando.

1. Crea tu Archivo de Configuración

Crea un archivo config.yml (ver Guía de Uso Completa para más detalles).

En tu proyecto, crea un archivo config.yml:

# config.yml
thresholds:
  default:
    validity_rate: 0.99 # Al menos 99% de las FKs deben ser válidas
    
  tables:
    orders:
      validity_rate: 1.0 # La tabla 'orders' debe ser perfecta

consistency_checks:
  orders: 
    - on_fk: ["user_id"]
      attributes:
        customer_name: name

2. Ejecuta el Análisis

Usa el comando pyntegritydb apuntando a tu base de datos y a tu archivo de configuración.

pyntegritydb "postgresql://user:pass@host/db" \
      --config config.yml \
      --format json \
      --output-file report.json \
      --visualize \
      --output-image schema_health.png

Esto generará dos archivos: report.json con los resultados detallados y schema_health.png con el mapa visual de tu base de datos.

3. Interpreta el Reporte

pyntegritydb generará un reporte completo en tu consola, mostrando primero las alertas, y luego los análisis detallados.

🚦 Reporte de Alertas 🚦
=========================
- ALERTA [Completitud]: La tabla 'orders' viola el umbral de 'validity_rate'. Esperado >= 100.00%, Obtenido = 98.50%

### Reporte de Completitud (Filas Huérfanas) ###
+-----------------+------------------+-----------------+-----------------+-------------+
| Tabla de Origen | Tabla de Destino | Tasa de Validez | Filas Huérfanas | Total Filas |
+=================+==================+=================+=================+=============+
| orders          | users            | 98.50%          | 15              | 1000        |
+-----------------+------------------+-----------------+-----------------+-------------+
...

Documentación

Para una guía detallada, tutoriales y la referencia completa de la API, visita nuestra documentación oficial en pyntegritydb.readthedocs.io.


Desarrollo

Si quieres contribuir al proyecto, sigue estos pasos:

  1. Clona el repositorio:

    git clone [https://github.com/tu_usuario/pyntegritydb.git](https://github.com/tu_usuario/pyntegritydb.git)
    cd pyntegritydb
    
  2. Crea y activa un entorno virtual:

    python3 -m venv venv
    source venv/bin/activate
    
  3. Instala las dependencias en modo editable:

    pip install -e ".[dev]" 
    # (Necesitarás definir los 'dev' extras en pyproject.toml para pytest, etc.)
    
  4. Ejecuta las pruebas:

    pytest
    

Licencia

Este proyecto está bajo la Licencia MIT. Consulta el archivo LICENSE para más detalles.

Release files for pyntegritydb 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyntegritydb 0.3.0
File Size Uploaded
pyntegritydb-0.3.0.tar.gz 24.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyntegritydb 0.3.0
File Interpreter ABI Platform
pyntegritydb-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 40.5 kB

Release files / pyntegritydb-0.3.0.tar.gz

Download URL pyntegritydb-0.3.0.tar.gz
Size 24.0 kB
Tags Source
SHA-256 checksum
How to use checksums
f8a02fc86945ec7f8c56e94ccdbfc7025d1602903b5495276eb39d196852cd03
BLAKE2b-256 checksum
How to use checksums
4c87a9bafbf021799ff80eb374095b138bbb959f90d819c6de9c3dcd300c66ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release files / pyntegritydb-0.3.0-py3-none-any.whl

Download URL pyntegritydb-0.3.0-py3-none-any.whl
Size 16.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
533cf6896348c14b0180eaf2119b17e03e5504f3f97eb4049cda57b4ff4e6389
BLAKE2b-256 checksum
How to use checksums
d279045e4a6dd0676dd902c2953e90f6ed18d5ebfc7aa1e9c4b8cbbd3de66d7b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.9

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page