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 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.
@@ -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
+ ![Tests](https://github.com/inostroza-Daniela/blindata/actions/workflows/tests.yml/badge.svg)
36
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
37
+ [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](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.*
@@ -0,0 +1,139 @@
1
+ # 🛡️ Blindata
2
+
3
+ ![Tests](https://github.com/inostroza-Daniela/blindata/actions/workflows/tests.yml/badge.svg)
4
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](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"]