blindata 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- blindata-0.1.0/LICENSE +21 -0
- blindata-0.1.0/PKG-INFO +171 -0
- blindata-0.1.0/README.md +139 -0
- blindata-0.1.0/blindata/__init__.py +25 -0
- blindata-0.1.0/blindata/core.py +498 -0
- blindata-0.1.0/blindata/protector.py +188 -0
- blindata-0.1.0/blindata/scanner.py +467 -0
- blindata-0.1.0/blindata.egg-info/PKG-INFO +171 -0
- blindata-0.1.0/blindata.egg-info/SOURCES.txt +13 -0
- blindata-0.1.0/blindata.egg-info/dependency_links.txt +1 -0
- blindata-0.1.0/blindata.egg-info/requires.txt +5 -0
- blindata-0.1.0/blindata.egg-info/top_level.txt +1 -0
- blindata-0.1.0/pyproject.toml +56 -0
- blindata-0.1.0/setup.cfg +4 -0
- blindata-0.1.0/tests/test_pytest.py +380 -0
blindata-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Daniela Inostroza — Blindata
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
blindata-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: blindata
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Compliance Toolkit para Data Analysts — Ley 21.719, Chile. Blindaje para tus datos.
|
|
5
|
+
Author-email: Daniela Inostroza <contacto@blindata.cl>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://blindata.cl
|
|
8
|
+
Project-URL: Repository, https://github.com/inostroza-Daniela/blindata
|
|
9
|
+
Project-URL: Documentation, https://github.com/inostroza-Daniela/blindata#readme
|
|
10
|
+
Project-URL: Issues, https://github.com/inostroza-Daniela/blindata/issues
|
|
11
|
+
Keywords: datos-personales,compliance,ley-21719,chile,anonimización,privacidad,APDP,PII,RUT,data-analyst,pandas,proteccion-datos,blindata
|
|
12
|
+
Classifier: Development Status :: 3 - Alpha
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: Intended Audience :: Science/Research
|
|
15
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
16
|
+
Classifier: Natural Language :: Spanish
|
|
17
|
+
Classifier: Operating System :: OS Independent
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Topic :: Security
|
|
23
|
+
Classifier: Topic :: Scientific/Engineering :: Information Analysis
|
|
24
|
+
Requires-Python: >=3.10
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
License-File: LICENSE
|
|
27
|
+
Requires-Dist: pandas<3.0,>=2.0
|
|
28
|
+
Provides-Extra: dev
|
|
29
|
+
Requires-Dist: pytest<9.0,>=7.0; extra == "dev"
|
|
30
|
+
Requires-Dist: pytest-cov<7.0,>=4.0; extra == "dev"
|
|
31
|
+
Dynamic: license-file
|
|
32
|
+
|
|
33
|
+
# 🛡️ Blindata
|
|
34
|
+
|
|
35
|
+

|
|
36
|
+
[](https://www.python.org/downloads/)
|
|
37
|
+
[](https://opensource.org/licenses/MIT)
|
|
38
|
+
|
|
39
|
+
**Blindaje para tus datos — Compliance Toolkit para Data Analysts, Data Scientists y ML Engineers en Chile**
|
|
40
|
+
|
|
41
|
+
Blindata es una librería Python que detecta **datos personales chilenos** en tus DataFrames y los enmascara, para que puedas trabajar con datasets respetando la **Ley 21.719** de Protección de Datos Personales.
|
|
42
|
+
|
|
43
|
+
```python
|
|
44
|
+
from blindata import Blindata
|
|
45
|
+
|
|
46
|
+
bd = Blindata()
|
|
47
|
+
bd.scan(df).mostrar()
|
|
48
|
+
df_seguro = bd.proteger(df)
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
Columna Tipo detectado Sensibilidad Tasa
|
|
53
|
+
─────────────────────────────────────────────────────────────────────
|
|
54
|
+
rut_paciente RUT (Rol Único Tributario) 🔴 Personal 100%
|
|
55
|
+
email Correo electrónico 🟡 Contacto 100%
|
|
56
|
+
telefono Teléfono celular chileno 🟡 Contacto 100%
|
|
57
|
+
edad — 🟢 Sin riesgo
|
|
58
|
+
|
|
59
|
+
⚠️ Se detectaron 3 columna(s) con datos personales.
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## ¿Por qué Blindata?
|
|
65
|
+
|
|
66
|
+
La **Ley 21.719** entra en vigencia el **1 de diciembre de 2026**. Aplica a toda organización que trate datos personales de residentes en Chile. Multas de hasta **20.000 UTM**.
|
|
67
|
+
|
|
68
|
+
Las herramientas existentes (Microsoft Presidio, DataFog, pii-anonymizer) están diseñadas para inglés y GDPR/HIPAA. No reconocen RUT, FONASA, AFP, ISAPRE ni Clave Única.
|
|
69
|
+
|
|
70
|
+
**Blindata** llena ese vacío. Blindaje para tus datos.
|
|
71
|
+
|
|
72
|
+
### Marco regulatorio que cubre Blindata
|
|
73
|
+
|
|
74
|
+
- **Ley 21.719** — Protección de Datos Personales (vigente diciembre 2026). Clasificación, reportes APDP, DPIA.
|
|
75
|
+
- **Ley 21.663** — Marco de Ciberseguridad (vigente marzo 2025). Complementaria para operadores de importancia vital y sus proveedores.
|
|
76
|
+
- **Ley 20.584** — Derechos del Paciente. Protección de datos clínicos y de salud.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Community (este paquete, gratis)
|
|
81
|
+
|
|
82
|
+
✅ Validador RUT con algoritmo Módulo 11 (algoritmo oficial SII).
|
|
83
|
+
✅ **3 detectores regex**: RUT, email, teléfono celular chileno.
|
|
84
|
+
✅ Enmascaramiento (`12.345.678-5 → **.***.678-5`).
|
|
85
|
+
✅ Sanitización contra **CSV injection** (formula injection).
|
|
86
|
+
|
|
87
|
+
## Pro ([blindata.cl](https://blindata.cl))
|
|
88
|
+
|
|
89
|
+
🔒 **12 tipos de PII chileno**: agrega nombres de personas, datos de salud, comunas/direcciones, patentes vehiculares, AFP/previsional, ISAPRE, datos bancarios, Clave Única e identificadores SII/tributarios.
|
|
90
|
+
🔒 **Clasificación legal sectorial** (Ley 21.719, Ley 21.663, Ley 20.584) con elevación de riesgo por sector (salud, banca, gobierno, educación, retail).
|
|
91
|
+
🔒 **Pseudonimización y anonimización** con múltiples métodos según nivel de sensibilidad.
|
|
92
|
+
🔒 **Reporte PDF de cumplimiento APDP** (Art. 14 quinquies).
|
|
93
|
+
🔒 Dashboard web con historial, multi-usuario e integraciones.
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Planes
|
|
98
|
+
|
|
99
|
+
| | Community | Starter | Professional | Business | Enterprise |
|
|
100
|
+
|---|---|---|---|---|---|
|
|
101
|
+
| **Precio** | **Gratis** | $59 USD/mes | $149 USD/mes | $349 USD/mes | [Conversemos](mailto:contacto@blindata.cl?subject=Cotización%20Enterprise%20Blindata) |
|
|
102
|
+
| **Detectores** | 3 | 12 | 12 | 12 | 12 + custom |
|
|
103
|
+
| **Datasets/mes** | Ilimitados | 10 | 35 | 150 | A medida |
|
|
104
|
+
| **Filas por dataset** | Sin límite | 10.000 | 50.000 | 250.000 | A medida |
|
|
105
|
+
| **Reportes PDF/mes** | — | 5 | 20 | 80 | A medida |
|
|
106
|
+
| **Clasificación sectorial** | — | 1 sector | Todos | Todos | A medida |
|
|
107
|
+
|
|
108
|
+
Community es gratis para siempre. No es un trial. Sin tarjeta de crédito.
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## Instalación
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
pip install blindata
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Requiere Python 3.10+.
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Uso
|
|
123
|
+
|
|
124
|
+
```python
|
|
125
|
+
import pandas as pd
|
|
126
|
+
from blindata import Blindata
|
|
127
|
+
|
|
128
|
+
df = pd.read_csv("mi_dataset.csv")
|
|
129
|
+
|
|
130
|
+
bd = Blindata()
|
|
131
|
+
resultado = bd.scan(df)
|
|
132
|
+
resultado.mostrar()
|
|
133
|
+
|
|
134
|
+
# Enmascarar columnas detectadas
|
|
135
|
+
df_seguro = bd.proteger(df)
|
|
136
|
+
df_seguro.to_csv("dataset_seguro.csv", index=False)
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Roadmap
|
|
142
|
+
|
|
143
|
+
| Feature | Estado |
|
|
144
|
+
|---------|--------|
|
|
145
|
+
| Community: scan + enmascaramiento | ✅ v0.1.0 |
|
|
146
|
+
| Tests pytest + CI GitHub Actions | ✅ v0.1.0 |
|
|
147
|
+
| `SECURITY.md` con política de divulgación | ✅ v0.1.0 |
|
|
148
|
+
| Auditoría de seguridad (14 vulnerabilidades corregidas) | ✅ v0.1.0 |
|
|
149
|
+
| Pro: 12 detectores + clasificación + PDF | 🚧 En desarrollo |
|
|
150
|
+
| Dashboard web (React) | 🚧 En desarrollo |
|
|
151
|
+
| Soporte multi-ley (21.719, 21.663, 20.584) | 🚧 En desarrollo |
|
|
152
|
+
| Internacionalización (Colombia, Perú, México) | 🔮 |
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Contribuir
|
|
157
|
+
|
|
158
|
+
Ver [CONTRIBUTING.md](CONTRIBUTING.md). Para vulnerabilidades de seguridad, ver [SECURITY.md](SECURITY.md).
|
|
159
|
+
|
|
160
|
+
## Licencia
|
|
161
|
+
|
|
162
|
+
[MIT](LICENSE). El paquete propietario `blindata-pro` (closed source) tiene licencia comercial y se distribuye solo con el SaaS.
|
|
163
|
+
|
|
164
|
+
## Autora
|
|
165
|
+
|
|
166
|
+
**Daniela Inostroza** — Noesis SpA
|
|
167
|
+
[blindata.cl](https://blindata.cl)
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
*Una línea de código entre tu análisis y una multa.*
|
blindata-0.1.0/README.md
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# 🛡️ Blindata
|
|
2
|
+
|
|
3
|
+

|
|
4
|
+
[](https://www.python.org/downloads/)
|
|
5
|
+
[](https://opensource.org/licenses/MIT)
|
|
6
|
+
|
|
7
|
+
**Blindaje para tus datos — Compliance Toolkit para Data Analysts, Data Scientists y ML Engineers en Chile**
|
|
8
|
+
|
|
9
|
+
Blindata es una librería Python que detecta **datos personales chilenos** en tus DataFrames y los enmascara, para que puedas trabajar con datasets respetando la **Ley 21.719** de Protección de Datos Personales.
|
|
10
|
+
|
|
11
|
+
```python
|
|
12
|
+
from blindata import Blindata
|
|
13
|
+
|
|
14
|
+
bd = Blindata()
|
|
15
|
+
bd.scan(df).mostrar()
|
|
16
|
+
df_seguro = bd.proteger(df)
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
Columna Tipo detectado Sensibilidad Tasa
|
|
21
|
+
─────────────────────────────────────────────────────────────────────
|
|
22
|
+
rut_paciente RUT (Rol Único Tributario) 🔴 Personal 100%
|
|
23
|
+
email Correo electrónico 🟡 Contacto 100%
|
|
24
|
+
telefono Teléfono celular chileno 🟡 Contacto 100%
|
|
25
|
+
edad — 🟢 Sin riesgo
|
|
26
|
+
|
|
27
|
+
⚠️ Se detectaron 3 columna(s) con datos personales.
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## ¿Por qué Blindata?
|
|
33
|
+
|
|
34
|
+
La **Ley 21.719** entra en vigencia el **1 de diciembre de 2026**. Aplica a toda organización que trate datos personales de residentes en Chile. Multas de hasta **20.000 UTM**.
|
|
35
|
+
|
|
36
|
+
Las herramientas existentes (Microsoft Presidio, DataFog, pii-anonymizer) están diseñadas para inglés y GDPR/HIPAA. No reconocen RUT, FONASA, AFP, ISAPRE ni Clave Única.
|
|
37
|
+
|
|
38
|
+
**Blindata** llena ese vacío. Blindaje para tus datos.
|
|
39
|
+
|
|
40
|
+
### Marco regulatorio que cubre Blindata
|
|
41
|
+
|
|
42
|
+
- **Ley 21.719** — Protección de Datos Personales (vigente diciembre 2026). Clasificación, reportes APDP, DPIA.
|
|
43
|
+
- **Ley 21.663** — Marco de Ciberseguridad (vigente marzo 2025). Complementaria para operadores de importancia vital y sus proveedores.
|
|
44
|
+
- **Ley 20.584** — Derechos del Paciente. Protección de datos clínicos y de salud.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Community (este paquete, gratis)
|
|
49
|
+
|
|
50
|
+
✅ Validador RUT con algoritmo Módulo 11 (algoritmo oficial SII).
|
|
51
|
+
✅ **3 detectores regex**: RUT, email, teléfono celular chileno.
|
|
52
|
+
✅ Enmascaramiento (`12.345.678-5 → **.***.678-5`).
|
|
53
|
+
✅ Sanitización contra **CSV injection** (formula injection).
|
|
54
|
+
|
|
55
|
+
## Pro ([blindata.cl](https://blindata.cl))
|
|
56
|
+
|
|
57
|
+
🔒 **12 tipos de PII chileno**: agrega nombres de personas, datos de salud, comunas/direcciones, patentes vehiculares, AFP/previsional, ISAPRE, datos bancarios, Clave Única e identificadores SII/tributarios.
|
|
58
|
+
🔒 **Clasificación legal sectorial** (Ley 21.719, Ley 21.663, Ley 20.584) con elevación de riesgo por sector (salud, banca, gobierno, educación, retail).
|
|
59
|
+
🔒 **Pseudonimización y anonimización** con múltiples métodos según nivel de sensibilidad.
|
|
60
|
+
🔒 **Reporte PDF de cumplimiento APDP** (Art. 14 quinquies).
|
|
61
|
+
🔒 Dashboard web con historial, multi-usuario e integraciones.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Planes
|
|
66
|
+
|
|
67
|
+
| | Community | Starter | Professional | Business | Enterprise |
|
|
68
|
+
|---|---|---|---|---|---|
|
|
69
|
+
| **Precio** | **Gratis** | $59 USD/mes | $149 USD/mes | $349 USD/mes | [Conversemos](mailto:contacto@blindata.cl?subject=Cotización%20Enterprise%20Blindata) |
|
|
70
|
+
| **Detectores** | 3 | 12 | 12 | 12 | 12 + custom |
|
|
71
|
+
| **Datasets/mes** | Ilimitados | 10 | 35 | 150 | A medida |
|
|
72
|
+
| **Filas por dataset** | Sin límite | 10.000 | 50.000 | 250.000 | A medida |
|
|
73
|
+
| **Reportes PDF/mes** | — | 5 | 20 | 80 | A medida |
|
|
74
|
+
| **Clasificación sectorial** | — | 1 sector | Todos | Todos | A medida |
|
|
75
|
+
|
|
76
|
+
Community es gratis para siempre. No es un trial. Sin tarjeta de crédito.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Instalación
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
pip install blindata
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
Requiere Python 3.10+.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Uso
|
|
91
|
+
|
|
92
|
+
```python
|
|
93
|
+
import pandas as pd
|
|
94
|
+
from blindata import Blindata
|
|
95
|
+
|
|
96
|
+
df = pd.read_csv("mi_dataset.csv")
|
|
97
|
+
|
|
98
|
+
bd = Blindata()
|
|
99
|
+
resultado = bd.scan(df)
|
|
100
|
+
resultado.mostrar()
|
|
101
|
+
|
|
102
|
+
# Enmascarar columnas detectadas
|
|
103
|
+
df_seguro = bd.proteger(df)
|
|
104
|
+
df_seguro.to_csv("dataset_seguro.csv", index=False)
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Roadmap
|
|
110
|
+
|
|
111
|
+
| Feature | Estado |
|
|
112
|
+
|---------|--------|
|
|
113
|
+
| Community: scan + enmascaramiento | ✅ v0.1.0 |
|
|
114
|
+
| Tests pytest + CI GitHub Actions | ✅ v0.1.0 |
|
|
115
|
+
| `SECURITY.md` con política de divulgación | ✅ v0.1.0 |
|
|
116
|
+
| Auditoría de seguridad (14 vulnerabilidades corregidas) | ✅ v0.1.0 |
|
|
117
|
+
| Pro: 12 detectores + clasificación + PDF | 🚧 En desarrollo |
|
|
118
|
+
| Dashboard web (React) | 🚧 En desarrollo |
|
|
119
|
+
| Soporte multi-ley (21.719, 21.663, 20.584) | 🚧 En desarrollo |
|
|
120
|
+
| Internacionalización (Colombia, Perú, México) | 🔮 |
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Contribuir
|
|
125
|
+
|
|
126
|
+
Ver [CONTRIBUTING.md](CONTRIBUTING.md). Para vulnerabilidades de seguridad, ver [SECURITY.md](SECURITY.md).
|
|
127
|
+
|
|
128
|
+
## Licencia
|
|
129
|
+
|
|
130
|
+
[MIT](LICENSE). El paquete propietario `blindata-pro` (closed source) tiene licencia comercial y se distribuye solo con el SaaS.
|
|
131
|
+
|
|
132
|
+
## Autora
|
|
133
|
+
|
|
134
|
+
**Daniela Inostroza** — Noesis SpA
|
|
135
|
+
[blindata.cl](https://blindata.cl)
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
*Una línea de código entre tu análisis y una multa.*
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Blindata — Compliance Toolkit para Data Analysts en Chile
|
|
3
|
+
==========================================================
|
|
4
|
+
Una línea de código entre tu análisis y una multa.
|
|
5
|
+
|
|
6
|
+
Uso rápido:
|
|
7
|
+
>>> from blindata import Blindata
|
|
8
|
+
>>> bd = Blindata(sector="salud")
|
|
9
|
+
>>> resultado = bd.scan(df)
|
|
10
|
+
>>> resultado.mostrar()
|
|
11
|
+
|
|
12
|
+
Con protección y reporte:
|
|
13
|
+
>>> df_seguro = bd.proteger(df)
|
|
14
|
+
>>> bd.reporte_pdf("cumplimiento.pdf", responsable="Mi Empresa SpA")
|
|
15
|
+
|
|
16
|
+
Autora: Daniela Inostroza
|
|
17
|
+
Web: blindata.cl
|
|
18
|
+
"""
|
|
19
|
+
|
|
20
|
+
__version__ = "0.1.0"
|
|
21
|
+
__author__ = "Daniela Inostroza"
|
|
22
|
+
|
|
23
|
+
from blindata.core import Blindata
|
|
24
|
+
|
|
25
|
+
__all__ = ["Blindata"]
|