Name | pyntegritydb JSON |
Version |
0.3.0
JSON |
| download |
home_page | None |
Summary | Una biblioteca para medir la calidad de la integridad referencial en bases de datos relacionales. |
upload_time | 2025-08-17 09:00:43 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.12 |
license | MIT License
Copyright (c) 2025 Osvaldo Trujillo
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
|
keywords |
database
integrity
data quality
sql
validator
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# pyntegritydb
[](https://badge.fury.io/py/pyntegritydb)
[](https://opensource.org/licenses/MIT)
[](https://pyntegritydb.readthedocs.io/es/latest/)
[](https://pypi.org/project/pyntegritydb/)
[](https://github.com/osvaldomx/pyntegritydb/actions)
[](https://coveralls.io/github/osvaldomx/pyntegritydb?branch=main)
**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"](https://www2.cs.uh.edu/~ordonez/pdfwww/w-2008-DSS-refint.pdf), 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:
```bash
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](https://pyntegritydb.readthedocs.io/) para más detalles).
En tu proyecto, crea un archivo `config.yml`:
```yaml
# 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.
```bash
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](https://pyntegritydb.readthedocs.io/)**.
---
## Desarrollo
Si quieres contribuir al proyecto, sigue estos pasos:
1. **Clona el repositorio:**
```bash
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:**
```bash
python3 -m venv venv
source venv/bin/activate
```
3. **Instala las dependencias en modo editable:**
```bash
pip install -e ".[dev]"
# (Necesitarás definir los 'dev' extras en pyproject.toml para pytest, etc.)
```
4. **Ejecuta las pruebas:**
```bash
pytest
```
---
## Licencia
Este proyecto está bajo la Licencia MIT. Consulta el archivo `LICENSE` para más detalles.
Raw data
{
"_id": null,
"home_page": null,
"name": "pyntegritydb",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.12",
"maintainer_email": null,
"keywords": "database, integrity, data quality, sql, validator",
"author": null,
"author_email": "Osvaldo Trujillo <osvaldo.trujillo.ingenieria@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/4c/87/a9bafbf021799ff80eb374095b138bbb959f90d819c6de9c3dcd300c66ba/pyntegritydb-0.3.0.tar.gz",
"platform": null,
"description": "# pyntegritydb\n\n[](https://badge.fury.io/py/pyntegritydb)\n[](https://opensource.org/licenses/MIT)\n[](https://pyntegritydb.readthedocs.io/es/latest/)\n[](https://pypi.org/project/pyntegritydb/)\n[](https://github.com/osvaldomx/pyntegritydb/actions)\n[](https://coveralls.io/github/osvaldomx/pyntegritydb?branch=main)\n\n\n**pyntegritydb** es una herramienta de l\u00ednea de comandos para analizar y medir la calidad de la integridad referencial en bases de datos relacionales. Basada en el paper acad\u00e9mico [\"Referential Integrity Quality Metrics\"](https://www2.cs.uh.edu/~ordonez/pdfwww/w-2008-DSS-refint.pdf), la biblioteca te ayuda a diagnosticar r\u00e1pidamente relaciones rotas o \"hu\u00e9rfanas\" en tu esquema.\n\n\n\n---\n## Caracter\u00edsticas Principales\n\n* **An\u00e1lisis Dual**: Mide tanto la **Completitud** (filas hu\u00e9rfanas) como la **Consistencia** (datos desnormalizados incorrectos).\n* **Sistema de Alertas**: Define umbrales de calidad en un archivo `config.yml` y recibe alertas si tus datos no cumplen con los est\u00e1ndares.\n* **Soporte Multi-DB**: Compatible con cualquier base de datos que soporte SQLAlchemy (PostgreSQL, MySQL, SQLite, etc.).\n* **Reportes Flexibles**: Genera reportes en m\u00faltiples formatos: tabla para la consola (`cli`), `json` o `csv`.\n* **Visualizaci\u00f3n de Esquema**: Crea un mapa visual de la salud de tus relaciones con el flag `--visualize`.\n\n---\n## Instalaci\u00f3n\n\nInstala `pyntegritydb` directamente desde PyPI:\n\n```bash\npip install pyntegritydb\n```\n\n---\n## Gu\u00eda de Inicio R\u00e1pido\n\nEjecuta un an\u00e1lisis completo, genera un reporte en JSON y un mapa visual con un solo comando.\n\n### 1. Crea tu Archivo de Configuraci\u00f3n\n\n**Crea un archivo `config.yml`** (ver [Gu\u00eda de Uso Completa](https://pyntegritydb.readthedocs.io/) para m\u00e1s detalles).\n\nEn tu proyecto, crea un archivo `config.yml`:\n\n```yaml\n# config.yml\nthresholds:\n default:\n validity_rate: 0.99 # Al menos 99% de las FKs deben ser v\u00e1lidas\n \n tables:\n orders:\n validity_rate: 1.0 # La tabla 'orders' debe ser perfecta\n\nconsistency_checks:\n orders: \n - on_fk: [\"user_id\"]\n attributes:\n customer_name: name\n```\n\n### 2. Ejecuta el An\u00e1lisis\n\nUsa el comando `pyntegritydb` apuntando a tu base de datos y a tu archivo de configuraci\u00f3n.\n\n```bash\npyntegritydb \"postgresql://user:pass@host/db\" \\\n --config config.yml \\\n --format json \\\n --output-file report.json \\\n --visualize \\\n --output-image schema_health.png\n```\n\nEsto generar\u00e1 dos archivos: `report.json` con los resultados detallados y `schema_health.png` con el mapa visual de tu base de datos.\n\n\n### 3. Interpreta el Reporte\n\n`pyntegritydb` generar\u00e1 un reporte completo en tu consola, mostrando primero las alertas, y luego los an\u00e1lisis detallados.\n\n```\n\ud83d\udea6 Reporte de Alertas \ud83d\udea6\n=========================\n- ALERTA [Completitud]: La tabla 'orders' viola el umbral de 'validity_rate'. Esperado >= 100.00%, Obtenido = 98.50%\n\n### Reporte de Completitud (Filas Hu\u00e9rfanas) ###\n+-----------------+------------------+-----------------+-----------------+-------------+\n| Tabla de Origen | Tabla de Destino | Tasa de Validez | Filas Hu\u00e9rfanas | Total Filas |\n+=================+==================+=================+=================+=============+\n| orders | users | 98.50% | 15 | 1000 |\n+-----------------+------------------+-----------------+-----------------+-------------+\n...\n```\n---\n## Documentaci\u00f3n\n\nPara una gu\u00eda detallada, tutoriales y la referencia completa de la API, visita nuestra documentaci\u00f3n oficial en **[pyntegritydb.readthedocs.io](https://pyntegritydb.readthedocs.io/)**.\n\n---\n## Desarrollo\n\nSi quieres contribuir al proyecto, sigue estos pasos:\n\n1. **Clona el repositorio:**\n ```bash\n git clone [https://github.com/tu_usuario/pyntegritydb.git](https://github.com/tu_usuario/pyntegritydb.git)\n cd pyntegritydb\n ```\n\n2. **Crea y activa un entorno virtual:**\n ```bash\n python3 -m venv venv\n source venv/bin/activate\n ```\n\n3. **Instala las dependencias en modo editable:**\n ```bash\n pip install -e \".[dev]\" \n # (Necesitar\u00e1s definir los 'dev' extras en pyproject.toml para pytest, etc.)\n ```\n4. **Ejecuta las pruebas:**\n ```bash\n pytest\n ```\n\n---\n## Licencia\n\nEste proyecto est\u00e1 bajo la Licencia MIT. Consulta el archivo `LICENSE` para m\u00e1s detalles.\n",
"bugtrack_url": null,
"license": "MIT License\n \n Copyright (c) 2025 Osvaldo Trujillo\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n ",
"summary": "Una biblioteca para medir la calidad de la integridad referencial en bases de datos relacionales.",
"version": "0.3.0",
"project_urls": {
"Changelog": "https://github.com/osvaldomx/pyntegritydb/releases/tag/v0.2.0",
"Homepage": "https://github.com/osvaldomx/pyntegritydb",
"Issues": "https://github.com/osvaldomx/pyntegritydb/issues",
"Repository": "https://github.com/osvaldomx/pyntegritydb"
},
"split_keywords": [
"database",
" integrity",
" data quality",
" sql",
" validator"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "d279045e4a6dd0676dd902c2953e90f6ed18d5ebfc7aa1e9c4b8cbbd3de66d7b",
"md5": "1696c10ca663c8e60efbb5ca59f42cb6",
"sha256": "533cf6896348c14b0180eaf2119b17e03e5504f3f97eb4049cda57b4ff4e6389"
},
"downloads": -1,
"filename": "pyntegritydb-0.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1696c10ca663c8e60efbb5ca59f42cb6",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.12",
"size": 16500,
"upload_time": "2025-08-17T09:00:40",
"upload_time_iso_8601": "2025-08-17T09:00:40.983536Z",
"url": "https://files.pythonhosted.org/packages/d2/79/045e4a6dd0676dd902c2953e90f6ed18d5ebfc7aa1e9c4b8cbbd3de66d7b/pyntegritydb-0.3.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "4c87a9bafbf021799ff80eb374095b138bbb959f90d819c6de9c3dcd300c66ba",
"md5": "cb88ca210ae04c4b6b618a44d29cb4db",
"sha256": "f8a02fc86945ec7f8c56e94ccdbfc7025d1602903b5495276eb39d196852cd03"
},
"downloads": -1,
"filename": "pyntegritydb-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "cb88ca210ae04c4b6b618a44d29cb4db",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12",
"size": 24041,
"upload_time": "2025-08-17T09:00:43",
"upload_time_iso_8601": "2025-08-17T09:00:43.382350Z",
"url": "https://files.pythonhosted.org/packages/4c/87/a9bafbf021799ff80eb374095b138bbb959f90d819c6de9c3dcd300c66ba/pyntegritydb-0.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-17 09:00:43",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "osvaldomx",
"github_project": "pyntegritydb",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "pyntegritydb"
}