pamola-core 1.0.0.dev2__tar.gz → 1.0.0.dev3__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.
Files changed (662) hide show
  1. pamola_core-1.0.0.dev3/PKG-INFO +451 -0
  2. pamola_core-1.0.0.dev3/README.md +385 -0
  3. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/__init__.py +5 -2
  4. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/__init__.py +7 -2
  5. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/base_anonymization_op.py +10 -2
  6. pamola_core-1.0.0.dev3/pamola_core/anonymization/pseudonymization/hash_based_op.py +1198 -0
  7. pamola_core-1.0.0.dev3/pamola_core/anonymization/pseudonymization/mapping_op.py +1262 -0
  8. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/attribute_op_schema_exclude.py +0 -1
  9. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/attribute_op_tooltip.py +8 -0
  10. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/categorical_op_schema_exclude.py +0 -1
  11. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/categorical_op_tooltip.py +8 -0
  12. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/cell_op_schema_exclude.py +0 -1
  13. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/cell_op_tooltip.py +8 -0
  14. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/datetime_op_schema_exclude.py +0 -1
  15. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/datetime_op_tooltip.py +8 -0
  16. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/full_masking_op_schema_exclude.py +0 -1
  17. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/full_masking_op_tooltip.py +8 -0
  18. pamola_core-1.0.0.dev3/pamola_core/anonymization/schemas/hash_based_op_core_schema.py +244 -0
  19. pamola_core-1.0.0.dev3/pamola_core/anonymization/schemas/hash_based_op_schema_exclude.py +51 -0
  20. pamola_core-1.0.0.dev3/pamola_core/anonymization/schemas/hash_based_op_tooltip.py +225 -0
  21. pamola_core-1.0.0.dev3/pamola_core/anonymization/schemas/hash_based_op_ui_schema.py +167 -0
  22. pamola_core-1.0.0.dev3/pamola_core/anonymization/schemas/mapping_op_core_schema.py +255 -0
  23. pamola_core-1.0.0.dev3/pamola_core/anonymization/schemas/mapping_op_schema_exclude.py +51 -0
  24. pamola_core-1.0.0.dev3/pamola_core/anonymization/schemas/mapping_op_tooltip.py +232 -0
  25. pamola_core-1.0.0.dev3/pamola_core/anonymization/schemas/mapping_op_ui_schema.py +168 -0
  26. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/numeric_op_schema_exclude.py +0 -1
  27. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/numeric_op_tooltip.py +8 -0
  28. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/partial_masking_op_schema_exclude.py +0 -1
  29. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/partial_masking_op_tooltip.py +8 -0
  30. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/record_op_schema_exclude.py +0 -1
  31. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/record_op_tooltip.py +8 -0
  32. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/uniform_numeric_op_schema_exclude.py +0 -1
  33. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/uniform_numeric_op_tooltip.py +8 -0
  34. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/uniform_temporal_op_schema_exclude.py +0 -1
  35. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/uniform_temporal_op_tooltip.py +8 -0
  36. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/cli/commands/list_ops.py +7 -7
  37. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/cli/commands/run.py +13 -13
  38. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/cli/commands/schema.py +6 -6
  39. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/cli/commands/validate.py +5 -5
  40. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/cli/main.py +4 -4
  41. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/form_groups.py +49 -0
  42. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/email_op_schema_exclude.py +0 -1
  43. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/email_op_tooltip.py +17 -0
  44. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/name_op_schema_exclude.py +0 -1
  45. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/name_op_tooltip.py +16 -0
  46. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/organization_op_schema_exclude.py +0 -1
  47. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/organization_op_tooltip.py +16 -0
  48. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/phone_op_schema_exclude.py +0 -1
  49. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/phone_op_tooltip.py +16 -0
  50. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/operations/fidelity_ops.py +1 -1
  51. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/operations/privacy_ops.py +1 -1
  52. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/operations/utility_ops.py +1 -1
  53. pamola_core-1.0.0.dev2/pamola_core/metrics/schemas/fidelity_ops_config.py → pamola_core-1.0.0.dev3/pamola_core/metrics/schemas/fidelity_op_core_schema.py +31 -31
  54. pamola_core-1.0.0.dev3/pamola_core/metrics/schemas/fidelity_op_schema_exclude.py +44 -0
  55. pamola_core-1.0.0.dev3/pamola_core/metrics/schemas/fidelity_op_tooltip.py +97 -0
  56. pamola_core-1.0.0.dev3/pamola_core/metrics/schemas/fidelity_op_ui_schema.py +77 -0
  57. pamola_core-1.0.0.dev2/pamola_core/metrics/schemas/privacy_ops_config.py → pamola_core-1.0.0.dev3/pamola_core/metrics/schemas/privacy_op_core_schema.py +33 -21
  58. pamola_core-1.0.0.dev3/pamola_core/metrics/schemas/privacy_op_schema_exclude.py +44 -0
  59. pamola_core-1.0.0.dev3/pamola_core/metrics/schemas/privacy_op_tooltip.py +86 -0
  60. pamola_core-1.0.0.dev3/pamola_core/metrics/schemas/privacy_op_ui_schema.py +69 -0
  61. pamola_core-1.0.0.dev2/pamola_core/metrics/schemas/utility_ops_config.py → pamola_core-1.0.0.dev3/pamola_core/metrics/schemas/utility_op_core_schema.py +41 -20
  62. pamola_core-1.0.0.dev3/pamola_core/metrics/schemas/utility_op_schema_exclude.py +44 -0
  63. pamola_core-1.0.0.dev3/pamola_core/metrics/schemas/utility_op_tooltip.py +98 -0
  64. pamola_core-1.0.0.dev3/pamola_core/metrics/schemas/utility_op_ui_schema.py +77 -0
  65. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/anonymity.py +15 -11
  66. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/attribute.py +38 -33
  67. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/currency.py +36 -29
  68. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/date.py +95 -82
  69. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/email.py +68 -59
  70. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/email_dask.py +70 -59
  71. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/identity.py +53 -46
  72. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/mvf.py +45 -40
  73. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/numeric.py +69 -62
  74. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/phone.py +61 -52
  75. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/text.py +11 -9
  76. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/correlation_utils.py +46 -25
  77. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/anonymity_schema_exclude.py +0 -1
  78. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/anonymity_tooltip.py +9 -1
  79. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/attribute_schema_exclude.py +0 -1
  80. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/attribute_tooltip.py +9 -0
  81. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/categorical_schema_exclude.py +0 -1
  82. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/categorical_tooltip.py +8 -0
  83. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/correlation_matrix_schema_exclude.py +0 -1
  84. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/correlation_matrix_tooltip.py +9 -0
  85. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/correlation_schema_exclude.py +0 -2
  86. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/correlation_tooltip.py +14 -0
  87. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/currency_schema_exclude.py +0 -1
  88. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/currency_tooltip.py +11 -0
  89. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/date_schema_exclude.py +0 -1
  90. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/date_tooltip.py +11 -0
  91. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/email_schema_exclude.py +0 -1
  92. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/email_tooltip.py +9 -0
  93. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/group_schema_exclude.py +0 -1
  94. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/group_tooltip.py +9 -0
  95. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/identity_schema_exclude.py +0 -1
  96. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/identity_tooltip.py +9 -0
  97. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/mvf_schema_exclude.py +0 -1
  98. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/mvf_tooltip.py +9 -0
  99. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/numeric_schema_exclude.py +0 -1
  100. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/numeric_tooltip.py +9 -1
  101. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/phone_schema_exclude.py +0 -1
  102. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/phone_tooltip.py +8 -0
  103. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/text_schema_exclude.py +0 -1
  104. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/text_tooltip.py +8 -0
  105. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/base_transformation_op.py +14 -13
  106. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/field_ops/add_modify_fields.py +1 -0
  107. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/add_modify_fields_schema_exclude.py +0 -1
  108. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/add_modify_fields_tooltip.py +8 -0
  109. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/aggregate_records_op_schema_exclude.py +0 -1
  110. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/aggregate_records_op_tooltip.py +9 -0
  111. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/clean_invalid_values_schema_exclude.py +0 -1
  112. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/clean_invalid_values_tooltip.py +8 -0
  113. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/impute_missing_values_op_schema_exclude.py +0 -1
  114. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/impute_missing_values_op_tooltip.py +8 -0
  115. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/merge_datasets_op_schema_exclude.py +0 -1
  116. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/merge_datasets_op_tooltip.py +9 -0
  117. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/remove_fields_op_tooltip.py +9 -0
  118. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/split_by_id_values_op_schema_exclude.py +0 -1
  119. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/split_by_id_values_op_tooltip.py +9 -0
  120. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/split_fields_op_schema_exclude.py +0 -1
  121. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/split_fields_op_tooltip.py +8 -0
  122. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/op_base.py +5 -2
  123. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/op_config.py +27 -3
  124. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/schemas/base_op_ui_schema.py +4 -1
  125. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/schema_helpers/schema_builder.py +297 -164
  126. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/task_reporting.py +3 -2
  127. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/network_diagram.py +1 -0
  128. pamola_core-1.0.0.dev3/pamola_core.egg-info/PKG-INFO +451 -0
  129. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core.egg-info/SOURCES.txt +20 -6
  130. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pyproject.toml +1 -1
  131. pamola_core-1.0.0.dev2/PKG-INFO +0 -479
  132. pamola_core-1.0.0.dev2/README.md +0 -413
  133. pamola_core-1.0.0.dev2/pamola_core/anonymization/pseudonymization/hash_based_op.py +0 -1136
  134. pamola_core-1.0.0.dev2/pamola_core/anonymization/pseudonymization/mapping_op.py +0 -1315
  135. pamola_core-1.0.0.dev2/pamola_core/metrics/schemas/fidelity_ops_config_exclude.py +0 -20
  136. pamola_core-1.0.0.dev2/pamola_core/metrics/schemas/privacy_ops_config_exclude.py +0 -20
  137. pamola_core-1.0.0.dev2/pamola_core/metrics/schemas/utility_ops_config_exclude.py +0 -20
  138. pamola_core-1.0.0.dev2/pamola_core.egg-info/PKG-INFO +0 -479
  139. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/LICENSE +0 -0
  140. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/MANIFEST.in +0 -0
  141. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/_version.py +0 -0
  142. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/analysis/__init__.py +0 -0
  143. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/analysis/correlation.py +0 -0
  144. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/analysis/dataset_summary.py +0 -0
  145. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/analysis/descriptive_stats.py +0 -0
  146. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/analysis/distribution.py +0 -0
  147. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/analysis/field_analysis.py +0 -0
  148. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/analysis/privacy_risk.py +0 -0
  149. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/__init__.py +0 -0
  150. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/categorical_config.py +0 -0
  151. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/categorical_strategies.py +0 -0
  152. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/category_mapping.py +0 -0
  153. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/category_utils.py +0 -0
  154. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/data_utils.py +0 -0
  155. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/hierarchy_dictionary.py +0 -0
  156. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/mapping_storage.py +0 -0
  157. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/masking_patterns.py +0 -0
  158. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/masking_presets.py +0 -0
  159. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/metric_utils.py +0 -0
  160. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/noise_utils.py +0 -0
  161. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/privacy_metric_utils.py +0 -0
  162. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/processing_utils.py +0 -0
  163. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/pseudonymization_utils.py +0 -0
  164. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/statistical_utils.py +0 -0
  165. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/text_processing_utils.py +0 -0
  166. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/validation/__init__.py +0 -0
  167. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/validation/base.py +0 -0
  168. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/validation/decorators.py +0 -0
  169. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/validation/field_validators.py +0 -0
  170. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/validation/file_validators.py +0 -0
  171. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/validation/strategy_validators.py +0 -0
  172. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/validation/type_validators.py +0 -0
  173. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/validation_utils.py +0 -0
  174. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/visualization_utils.py +0 -0
  175. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/generalization/__init__.py +0 -0
  176. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/generalization/categorical_op.py +0 -0
  177. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/generalization/datetime_op.py +0 -0
  178. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/generalization/numeric_op.py +0 -0
  179. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/masking/__init__.py +0 -0
  180. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/masking/full_masking_op.py +0 -0
  181. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/masking/partial_masking_op.py +0 -0
  182. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/noise/__init__.py +0 -0
  183. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/noise/uniform_numeric_op.py +0 -0
  184. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/noise/uniform_temporal_op.py +0 -0
  185. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/pseudonymization/__init__.py +0 -0
  186. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/__init__.py +0 -0
  187. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/attribute_op_core_schema.py +0 -0
  188. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/attribute_op_ui_schema.py +0 -0
  189. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/categorical_op_core_schema.py +0 -0
  190. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/categorical_op_ui_schema.py +0 -0
  191. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/cell_op_core_schema.py +0 -0
  192. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/cell_op_ui_schema.py +0 -0
  193. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/datetime_op_core_schema.py +0 -0
  194. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/datetime_op_ui_schema.py +0 -0
  195. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/full_masking_op_core_schema.py +0 -0
  196. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/full_masking_op_ui_schema.py +0 -0
  197. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/numeric_op_core_schema.py +0 -0
  198. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/numeric_op_ui_schema.py +0 -0
  199. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/partial_masking_op_core_schema.py +0 -0
  200. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/partial_masking_op_ui_schema.py +0 -0
  201. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/record_op_core_schema.py +0 -0
  202. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/record_op_ui_schema.py +0 -0
  203. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/uniform_numeric_op_core_schema.py +0 -0
  204. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/uniform_numeric_op_ui_schema.py +0 -0
  205. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/uniform_temporal_op_core_schema.py +0 -0
  206. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/uniform_temporal_op_ui_schema.py +0 -0
  207. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/suppression/__init__.py +0 -0
  208. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/suppression/attribute_op.py +0 -0
  209. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/suppression/cell_op.py +0 -0
  210. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/suppression/record_op.py +0 -0
  211. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/attacks/__init__.py +0 -0
  212. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/attacks/attack_metrics.py +0 -0
  213. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/attacks/attacks_test.py +0 -0
  214. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/attacks/attribute_inference.py +0 -0
  215. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/attacks/base.py +0 -0
  216. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/attacks/distance_to_closest_record.py +0 -0
  217. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/attacks/linkage_attack.py +0 -0
  218. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/attacks/membership_inference.py +0 -0
  219. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/attacks/nearest_neighbor_distance_ratio.py +0 -0
  220. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/attacks/preprocess_data.py +0 -0
  221. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/catalogs/__init__.py +0 -0
  222. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/catalogs/catalog_loader.py +0 -0
  223. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/catalogs/operations_catalog.yaml +0 -0
  224. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/cli/__init__.py +0 -0
  225. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/cli/commands/__init__.py +0 -0
  226. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/cli/utils/__init__.py +0 -0
  227. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/cli/utils/exit_codes.py +0 -0
  228. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/__init__.py +0 -0
  229. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/constants.py +0 -0
  230. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/__init__.py +0 -0
  231. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/analysis_mode_enum.py +0 -0
  232. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/custom_components.py +0 -0
  233. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/custom_functions.py +0 -0
  234. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/datetime_generalization.py +0 -0
  235. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/distance_metric_type.py +0 -0
  236. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/encryption_mode.py +0 -0
  237. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/fidelity_metrics.py +0 -0
  238. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/fidelity_metrics_type.py +0 -0
  239. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/language_enum.py +0 -0
  240. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/mask_strategy_enum.py +0 -0
  241. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/model_type.py +0 -0
  242. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/numeric_generalization.py +0 -0
  243. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/privacy_metrics_type.py +0 -0
  244. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/relationship_type.py +0 -0
  245. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/statistical_method.py +0 -0
  246. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/utility_metrics_type.py +0 -0
  247. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/helpers/__init__.py +0 -0
  248. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/helpers/custom_aggregations_helper.py +0 -0
  249. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/helpers/data_helper.py +0 -0
  250. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/helpers/data_profiler.py +0 -0
  251. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/helpers/dataset_helper.py +0 -0
  252. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/helpers/math_helper.py +0 -0
  253. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/logging/__init__.py +0 -0
  254. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/logging/privacy_logging.py +0 -0
  255. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/regex/__init__.py +0 -0
  256. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/regex/patterns.py +0 -0
  257. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/type_aliases.py +0 -0
  258. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/validation/__init__.py +0 -0
  259. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/validation/check_column.py +0 -0
  260. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/configs/__init__.py +0 -0
  261. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/configs/config_variables.py +0 -0
  262. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/configs/field_definitions.py +0 -0
  263. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/configs/settings.py +0 -0
  264. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/crypto/__init__.py +0 -0
  265. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/__init__.py +0 -0
  266. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/base.py +0 -0
  267. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/codes/__init__.py +0 -0
  268. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/codes/metadata.py +0 -0
  269. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/codes/registry.py +0 -0
  270. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/codes/utils.py +0 -0
  271. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/context/__init__.py +0 -0
  272. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/context/recovery_data.yaml +0 -0
  273. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/context/suggestions.py +0 -0
  274. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/error_handler.py +0 -0
  275. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/exceptions/__init__.py +0 -0
  276. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/exceptions/core_domain.py +0 -0
  277. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/exceptions/crypto.py +0 -0
  278. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/exceptions/filesystem.py +0 -0
  279. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/exceptions/nlp.py +0 -0
  280. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/exceptions/resources.py +0 -0
  281. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/exceptions/tasks.py +0 -0
  282. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/exceptions/validation.py +0 -0
  283. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/messages/__init__.py +0 -0
  284. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/messages/registry.py +0 -0
  285. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/messages/utils.py +0 -0
  286. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/__init__.py +0 -0
  287. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/base_generator_op.py +0 -0
  288. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/commons/__init__.py +0 -0
  289. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/commons/base.py +0 -0
  290. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/commons/dict_helpers.py +0 -0
  291. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/commons/mapping_store.py +0 -0
  292. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/commons/metrics.py +0 -0
  293. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/commons/name_utils.py +0 -0
  294. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/commons/prgn.py +0 -0
  295. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/commons/processing_utils.py +0 -0
  296. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/commons/utils.py +0 -0
  297. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/commons/validators.py +0 -0
  298. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/dictionaries/__init__.py +0 -0
  299. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/dictionaries/addresses.py +0 -0
  300. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/dictionaries/domains.py +0 -0
  301. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/dictionaries/names.py +0 -0
  302. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/dictionaries/organizations.py +0 -0
  303. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/dictionaries/phones.py +0 -0
  304. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/generators/__init__.py +0 -0
  305. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/generators/base_generator.py +0 -0
  306. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/generators/email.py +0 -0
  307. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/generators/name.py +0 -0
  308. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/generators/organization.py +0 -0
  309. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/generators/phone.py +0 -0
  310. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/mappers/__init__.py +0 -0
  311. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/mappers/one_to_one.py +0 -0
  312. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/mappers/transitivity_handler.py +0 -0
  313. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/operations/__init__.py +0 -0
  314. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/operations/email_op.py +0 -0
  315. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/operations/name_op.py +0 -0
  316. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/operations/organization_op.py +0 -0
  317. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/operations/phone_op.py +0 -0
  318. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/__init__.py +0 -0
  319. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/email_op_core_schema.py +0 -0
  320. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/email_op_ui_schema.py +0 -0
  321. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/name_op_core_schema.py +0 -0
  322. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/name_op_ui_schema.py +0 -0
  323. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/organization_op_core_schema.py +0 -0
  324. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/organization_op_ui_schema.py +0 -0
  325. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/phone_op_core_schema.py +0 -0
  326. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/phone_op_ui_schema.py +0 -0
  327. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/interface/__init__.py +0 -0
  328. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/io/__init__.py +0 -0
  329. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/io/base.py +0 -0
  330. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/io/config.py +0 -0
  331. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/io/csv.py +0 -0
  332. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/io/excel.py +0 -0
  333. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/io/json.py +0 -0
  334. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/io/parquet.py +0 -0
  335. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/io/paths.py +0 -0
  336. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/__init__.py +0 -0
  337. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/base_metrics_op.py +0 -0
  338. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/commons/__init__.py +0 -0
  339. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/commons/aggregation.py +0 -0
  340. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/commons/normalize.py +0 -0
  341. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/commons/predicted_utility_scoring.py +0 -0
  342. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/commons/preprocessing.py +0 -0
  343. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/commons/quality_scoring.py +0 -0
  344. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/commons/risk_scoring.py +0 -0
  345. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/commons/safe_instantiate.py +0 -0
  346. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/commons/schema_manager.py +0 -0
  347. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/commons/validation.py +0 -0
  348. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/commons/validation_rules.py +0 -0
  349. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/fidelity/__init__.py +0 -0
  350. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/fidelity/distribution/__init__.py +0 -0
  351. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/fidelity/distribution/kl_divergence.py +0 -0
  352. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/fidelity/distribution/ks_test.py +0 -0
  353. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/fidelity/statistical_fidelity.py +0 -0
  354. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/operations/__init__.py +0 -0
  355. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/privacy/__init__.py +0 -0
  356. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/privacy/disclosure_risk.py +0 -0
  357. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/privacy/distance.py +0 -0
  358. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/privacy/identity.py +0 -0
  359. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/privacy/neighbor.py +0 -0
  360. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/quality/__init__.py +0 -0
  361. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/quality/kolmogorov_smirnov_test.py +0 -0
  362. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/quality/kullback_leibler_divergence.py +0 -0
  363. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/quality/pearson_correlation.py +0 -0
  364. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/quality/wasserstein_distance.py +0 -0
  365. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/schemas/__init__.py +0 -0
  366. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/utility/__init__.py +0 -0
  367. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/utility/classification.py +0 -0
  368. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/utility/f1_score.py +0 -0
  369. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/utility/information_loss.py +0 -0
  370. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/utility/ldiversity_loss.py +0 -0
  371. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/utility/mean_squared_error.py +0 -0
  372. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/utility/r2_score.py +0 -0
  373. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/utility/regression.py +0 -0
  374. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/pipeline/__init__.py +0 -0
  375. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/__init__.py +0 -0
  376. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/base.py +0 -0
  377. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/differential_privacy/__init__.py +0 -0
  378. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/differential_privacy/calculation.py +0 -0
  379. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/k_anonymity/__init__.py +0 -0
  380. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/k_anonymity/calculation.py +0 -0
  381. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/k_anonymity/ka_reporting.py +0 -0
  382. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/k_anonymity/ka_visualization.py +0 -0
  383. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/l_diversity/__init__.py +0 -0
  384. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/l_diversity/advanced_visualization.py +0 -0
  385. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/l_diversity/apply_model.py +0 -0
  386. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/l_diversity/attribute_risk.py +0 -0
  387. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/l_diversity/calculation.py +0 -0
  388. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/l_diversity/interpretation.py +0 -0
  389. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/l_diversity/metrics.py +0 -0
  390. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/l_diversity/privacy.py +0 -0
  391. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/l_diversity/report_generators/__init__.py +0 -0
  392. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/l_diversity/report_generators/compliance.py +0 -0
  393. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/l_diversity/report_generators/technical.py +0 -0
  394. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/l_diversity/report_utils/__init__.py +0 -0
  395. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/l_diversity/report_utils/formatters.py +0 -0
  396. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/l_diversity/reporting.py +0 -0
  397. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/l_diversity/visualization.py +0 -0
  398. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/t_closeness/__init__.py +0 -0
  399. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/t_closeness/calculation.py +0 -0
  400. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/__init__.py +0 -0
  401. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/__init__.py +0 -0
  402. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/categorical.py +0 -0
  403. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/correlation.py +0 -0
  404. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/group.py +0 -0
  405. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/longtext.py +0 -0
  406. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/__init__.py +0 -0
  407. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/analysis_utils.py +0 -0
  408. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/anonymity_utils.py +0 -0
  409. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/attribute_utils.py +0 -0
  410. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/categorical_utils.py +0 -0
  411. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/currency_analysis.py +0 -0
  412. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/currency_utils.py +0 -0
  413. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/data_processing.py +0 -0
  414. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/data_types.py +0 -0
  415. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/date_utils.py +0 -0
  416. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/dtype_helpers.py +0 -0
  417. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/email_utils.py +0 -0
  418. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/email_utils_dask.py +0 -0
  419. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/group_utils.py +0 -0
  420. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/helpers.py +0 -0
  421. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/identity_utils.py +0 -0
  422. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/mvf_utils.py +0 -0
  423. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/numeric_utils.py +0 -0
  424. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/phone_utils.py +0 -0
  425. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/report_generation.py +0 -0
  426. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/statistical_analysis.py +0 -0
  427. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/text_utils.py +0 -0
  428. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/__init__.py +0 -0
  429. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/anonymity_core_schema.py +0 -0
  430. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/anonymity_ui_schema.py +0 -0
  431. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/attribute_core_schema.py +0 -0
  432. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/attribute_ui_schema.py +0 -0
  433. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/categorical_core_schema.py +0 -0
  434. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/categorical_ui_schema.py +0 -0
  435. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/correlation_core_schema.py +0 -0
  436. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/correlation_matrix_core_schema.py +0 -0
  437. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/correlation_matrix_ui_schema.py +0 -0
  438. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/correlation_ui_schema.py +0 -0
  439. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/currency_core_schema.py +0 -0
  440. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/currency_ui_schema.py +0 -0
  441. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/date_core_schema.py +0 -0
  442. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/date_ui_schema.py +0 -0
  443. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/email_core_schema.py +0 -0
  444. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/email_ui_schema.py +0 -0
  445. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/group_core_schema.py +0 -0
  446. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/group_ui_schema.py +0 -0
  447. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/identity_core_schema.py +0 -0
  448. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/identity_ui_schema.py +0 -0
  449. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/mvf_core_schema.py +0 -0
  450. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/mvf_ui_schema.py +0 -0
  451. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/numeric_core_schema.py +0 -0
  452. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/numeric_ui_schema.py +0 -0
  453. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/phone_core_schema.py +0 -0
  454. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/phone_ui_schema.py +0 -0
  455. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/text_core_schema.py +0 -0
  456. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/text_ui_schema.py +0 -0
  457. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/resources/entities/dictionary_config.json +0 -0
  458. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/resources/entities/job_en.json +0 -0
  459. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/resources/entities/jobs.json +0 -0
  460. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/resources/entities/organizations.json +0 -0
  461. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/resources/entities/organizations_en.json +0 -0
  462. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/resources/entities/skills.json +0 -0
  463. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/resources/entities/skills_en.json +0 -0
  464. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/resources/entities/transaction.json +0 -0
  465. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/resources/entities/transaction_en.json +0 -0
  466. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/__init__.py +0 -0
  467. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/cleaning/__init__.py +0 -0
  468. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/cleaning/clean_invalid_values.py +0 -0
  469. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/commons/__init__.py +0 -0
  470. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/commons/aggregation_utils.py +0 -0
  471. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/commons/enum.py +0 -0
  472. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/commons/merging_utils.py +0 -0
  473. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/commons/metric_utils.py +0 -0
  474. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/commons/processing_utils.py +0 -0
  475. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/commons/validation_utils.py +0 -0
  476. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/commons/visualization_utils.py +0 -0
  477. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/field_ops/__init__.py +0 -0
  478. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/field_ops/remove_fields.py +0 -0
  479. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/grouping/__init__.py +0 -0
  480. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/grouping/aggregate_records_op.py +0 -0
  481. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/imputation/__init__.py +0 -0
  482. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/imputation/impute_missing_values.py +0 -0
  483. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/merging/__init__.py +0 -0
  484. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/merging/merge_datasets_op.py +0 -0
  485. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/__init__.py +0 -0
  486. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/add_modify_fields_core_schema.py +0 -0
  487. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/add_modify_fields_ui_schema.py +0 -0
  488. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/aggregate_records_op_core_schema.py +0 -0
  489. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/aggregate_records_op_ui_schema.py +0 -0
  490. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/clean_invalid_values_core_schema.py +0 -0
  491. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/clean_invalid_values_ui_schema.py +0 -0
  492. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/impute_missing_values_op_core_schema.py +0 -0
  493. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/impute_missing_values_op_ui_schema.py +0 -0
  494. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/merge_datasets_op_core_schema.py +0 -0
  495. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/merge_datasets_op_ui_schema.py +0 -0
  496. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/remove_fields_op_core_schema.py +0 -0
  497. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/remove_fields_op_schema_exclude.py +0 -0
  498. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/remove_fields_op_ui_schema.py +0 -0
  499. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/split_by_id_values_op_core_schema.py +0 -0
  500. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/split_by_id_values_op_ui_schema.py +0 -0
  501. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/split_fields_op_core_schema.py +0 -0
  502. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/split_fields_op_ui_schema.py +0 -0
  503. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/splitting/__init__.py +0 -0
  504. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/splitting/split_by_id_values_op.py +0 -0
  505. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/splitting/split_fields_op.py +0 -0
  506. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/__init__.py +0 -0
  507. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/base_reporting.py +0 -0
  508. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/cli.py +0 -0
  509. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/crypto.py +0 -0
  510. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/crypto_helpers/__init__.py +0 -0
  511. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/crypto_helpers/audit.py +0 -0
  512. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/crypto_helpers/key_store.py +0 -0
  513. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/crypto_helpers/legacy_migration.py +0 -0
  514. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/crypto_helpers/providers/__init__.py +0 -0
  515. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/crypto_helpers/providers/age_provider.py +0 -0
  516. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/crypto_helpers/providers/none_provider.py +0 -0
  517. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/crypto_helpers/providers/simple_provider.py +0 -0
  518. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/crypto_helpers/pseudonymization.py +0 -0
  519. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/crypto_helpers/register_providers.py +0 -0
  520. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/env.py +0 -0
  521. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/group_processing.py +0 -0
  522. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/helpers.py +0 -0
  523. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io.py +0 -0
  524. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/__init__.py +0 -0
  525. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/crypto_router.py +0 -0
  526. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/crypto_utils.py +0 -0
  527. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/csv_utils.py +0 -0
  528. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/dask_utils.py +0 -0
  529. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/directory_utils.py +0 -0
  530. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/error_utils.py +0 -0
  531. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/file_utils.py +0 -0
  532. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/format_utils.py +0 -0
  533. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/image_utils.py +0 -0
  534. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/json_utils.py +0 -0
  535. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/memory_utils.py +0 -0
  536. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/multi_file_utils.py +0 -0
  537. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/provider_interface.py +0 -0
  538. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/readers.py +0 -0
  539. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/temp_files.py +0 -0
  540. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/logging.py +0 -0
  541. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/__init__.py +0 -0
  542. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/base.py +0 -0
  543. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/cache.py +0 -0
  544. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/category_matching.py +0 -0
  545. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/clustering.py +0 -0
  546. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/compatibility.py +0 -0
  547. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/dataframe_utils.py +0 -0
  548. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/diversity_metrics.py +0 -0
  549. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/entity/__init__.py +0 -0
  550. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/entity/base.py +0 -0
  551. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/entity/dictionary.py +0 -0
  552. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/entity/job.py +0 -0
  553. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/entity/organization.py +0 -0
  554. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/entity/skill.py +0 -0
  555. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/entity/transaction.py +0 -0
  556. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/entity_extraction.py +0 -0
  557. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/language.py +0 -0
  558. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/llm/__init__.py +0 -0
  559. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/llm/client.py +0 -0
  560. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/llm/config.py +0 -0
  561. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/llm/config_helpers.py +0 -0
  562. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/llm/data_contracts.py +0 -0
  563. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/llm/enums.py +0 -0
  564. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/llm/metrics.py +0 -0
  565. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/llm/postprocessing.py +0 -0
  566. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/llm/preprocessing.py +0 -0
  567. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/llm/processing.py +0 -0
  568. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/llm/prompt.py +0 -0
  569. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/llm/service_detector.py +0 -0
  570. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/minhash.py +0 -0
  571. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/model_manager.py +0 -0
  572. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/stopwords.py +0 -0
  573. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/text_transformer.py +0 -0
  574. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/text_utils.py +0 -0
  575. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/tokenization.py +0 -0
  576. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/tokenization_ext.py +0 -0
  577. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/tokenization_helpers.py +0 -0
  578. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/__init__.py +0 -0
  579. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/op_cache.py +0 -0
  580. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/op_data_processing.py +0 -0
  581. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/op_data_reader.py +0 -0
  582. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/op_data_source.py +0 -0
  583. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/op_data_source_helpers.py +0 -0
  584. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/op_data_writer.py +0 -0
  585. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/op_field_utils.py +0 -0
  586. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/op_registry.py +0 -0
  587. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/op_result.py +0 -0
  588. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/op_test_helpers.py +0 -0
  589. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/schemas/__init__.py +0 -0
  590. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/schemas/base_op_core_schema.py +0 -0
  591. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/templates/__init__.py +0 -0
  592. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/templates/operation_skeleton.py +0 -0
  593. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/paths.py +0 -0
  594. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/progress.py +0 -0
  595. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/reporting/__init__.py +0 -0
  596. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/reporting/config.py +0 -0
  597. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/reporting/dependency_graph.py +0 -0
  598. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/reporting/html_formatter.py +0 -0
  599. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/reporting/template_engine.py +0 -0
  600. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/schema_helpers/__init__.py +0 -0
  601. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/schema_helpers/form_builder.py +0 -0
  602. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/schema_helpers/schema_utils.py +0 -0
  603. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/statistical_metrics.py +0 -0
  604. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/__init__.py +0 -0
  605. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/base_task.py +0 -0
  606. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/context_manager.py +0 -0
  607. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/dependency_manager.py +0 -0
  608. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/directory_manager.py +0 -0
  609. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/encryption_manager.py +0 -0
  610. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/execution_log.py +0 -0
  611. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/operation_executor.py +0 -0
  612. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/path_security.py +0 -0
  613. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/progress_manager.py +0 -0
  614. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/project_config_loader.py +0 -0
  615. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/task_config.py +0 -0
  616. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/task_context.py +0 -0
  617. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/task_registry.py +0 -0
  618. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/task_runner.py +0 -0
  619. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/task_utils.py +0 -0
  620. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/templates/__init__.py +0 -0
  621. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/templates/complex_processing_task_template.py +0 -0
  622. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/templates/parallel_task_template.py +0 -0
  623. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/templates/secure_task_template.py +0 -0
  624. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/templates/simple_task_template.py +0 -0
  625. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/templates/task_template_generator.py +0 -0
  626. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/templates/task_with_checkpoint.py +0 -0
  627. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/__init__.py +0 -0
  628. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/bar_plots.py +0 -0
  629. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/base.py +0 -0
  630. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/boxplot.py +0 -0
  631. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/combined_charts.py +0 -0
  632. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/context.py +0 -0
  633. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/cor_matrix.py +0 -0
  634. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/cor_pair.py +0 -0
  635. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/cor_utils.py +0 -0
  636. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/heatmap.py +0 -0
  637. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/histograms.py +0 -0
  638. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/line_plots.py +0 -0
  639. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/pie_charts.py +0 -0
  640. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/registry.py +0 -0
  641. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/scatter_plots.py +0 -0
  642. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/spider_charts.py +0 -0
  643. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/theme.py +0 -0
  644. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/venn_diagram.py +0 -0
  645. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/word_clouds.py +0 -0
  646. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/visualization.py +0 -0
  647. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core.egg-info/dependency_links.txt +0 -0
  648. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core.egg-info/entry_points.txt +0 -0
  649. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core.egg-info/requires.txt +0 -0
  650. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core.egg-info/top_level.txt +0 -0
  651. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/setup.cfg +0 -0
  652. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/tests/anonymization/configs/test_config_attribute_op.json +0 -0
  653. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/tests/anonymization/configs/test_config_base_op.json +0 -0
  654. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/tests/anonymization/configs/test_config_cell_op.json +0 -0
  655. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/tests/anonymization/configs/test_config_datetime_op.json +0 -0
  656. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/tests/anonymization/configs/test_config_hash_based_op.json +0 -0
  657. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/tests/anonymization/configs/test_config_numeric_op.json +0 -0
  658. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/tests/anonymization/configs/test_config_record_op.json +0 -0
  659. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/tests/anonymization/configs/test_config_uniform_numeric_op.json +0 -0
  660. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/tests/anonymization/configs/test_config_uniform_temporal_op.json +0 -0
  661. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/tests/anonymization/configs/test_hierarchy_categorical_op.json +0 -0
  662. {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/tests/test_version.py +0 -0
@@ -0,0 +1,451 @@
1
+ Metadata-Version: 2.4
2
+ Name: pamola-core
3
+ Version: 1.0.0.dev3
4
+ Summary: Pamola Core library for data anonymization, privacy models, metrics, and utilities
5
+ Author-email: Author <author@example.com>
6
+ Maintainer-email: Maintainer <maintainer@example.com>
7
+ License: BSD-3-Clause
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Programming Language :: Python :: 3 :: Only
10
+ Classifier: Programming Language :: Python :: 3.10
11
+ Classifier: Programming Language :: Python :: 3.11
12
+ Classifier: Programming Language :: Python :: 3.12
13
+ Classifier: License :: OSI Approved :: BSD License
14
+ Classifier: Operating System :: OS Independent
15
+ Requires-Python: <3.13,>=3.10
16
+ Description-Content-Type: text/markdown
17
+ License-File: LICENSE
18
+ Requires-Dist: python-decouple==3.8
19
+ Requires-Dist: pydantic[email]==2.12.4
20
+ Requires-Dist: matplotlib==3.8.2
21
+ Requires-Dist: seaborn==0.13.2
22
+ Requires-Dist: pandas==2.2.2
23
+ Requires-Dist: torch==2.8.0
24
+ Requires-Dist: scikit-learn==1.7.2
25
+ Requires-Dist: deepdiff==8.6.1
26
+ Requires-Dist: diff-match-patch==20241021
27
+ Requires-Dist: sdv==1.18.0
28
+ Requires-Dist: faker==33.3.1
29
+ Requires-Dist: scipy==1.15.3
30
+ Requires-Dist: uvicorn[standard]==0.38.0
31
+ Requires-Dist: openpyxl==3.1.5
32
+ Requires-Dist: xlrd==2.0.1
33
+ Requires-Dist: rstr==3.2.2
34
+ Requires-Dist: recordlinkage==0.16
35
+ Requires-Dist: plotly==6.4.0
36
+ Requires-Dist: kaleido==1.2.0
37
+ Requires-Dist: pillow==11.3.0
38
+ Requires-Dist: multidict==6.7.0
39
+ Requires-Dist: bcrypt==4.3.0
40
+ Requires-Dist: wordcloud==1.9.4
41
+ Requires-Dist: langdetect==1.0.9
42
+ Requires-Dist: fasttext-wheel==0.9.2
43
+ Requires-Dist: datasketch==1.7.0
44
+ Requires-Dist: nltk==3.9.2
45
+ Requires-Dist: dask[complete]==2025.11.0
46
+ Requires-Dist: pyarrow==14.0.2
47
+ Requires-Dist: numpy==1.26.4
48
+ Requires-Dist: matplotlib-venn==1.1.2
49
+ Requires-Dist: psutil==5.9.8
50
+ Requires-Dist: ijson==3.4.0.post0
51
+ Requires-Dist: chardet==5.2.0
52
+ Requires-Dist: rapidfuzz==3.14.3
53
+ Requires-Dist: cachetools==6.2.2
54
+ Requires-Dist: faiss-cpu==1.12.0
55
+ Requires-Dist: spacy==3.8.9
56
+ Requires-Dist: phonenumbers==9.0.10
57
+ Requires-Dist: base58==2.1.1
58
+ Requires-Dist: cryptography==46.0.3
59
+ Requires-Dist: PyYAML==6.0.2
60
+ Requires-Dist: typer[all]==0.24.1
61
+ Requires-Dist: jsonschema==4.25.1
62
+ Provides-Extra: test
63
+ Requires-Dist: pytest==8.4.2; extra == "test"
64
+ Requires-Dist: pytest-cov>=7.0; extra == "test"
65
+ Dynamic: license-file
66
+
67
+ # PAMOLA.CORE
68
+
69
+ <p align="center">
70
+ <img src="https://realmdata.io/assets/img/logos/pamola-logo.png" alt="PAMOLA Logo" width="300"/>
71
+ </p>
72
+
73
+ <p align="center">
74
+ <a href="https://github.com/DGT-Network/PAMOLA/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/badge/license-BSD%203--Clause-blue.svg"></a>
75
+ <a href="https://www.python.org/downloads/"><img alt="Python" src="https://img.shields.io/badge/python-3.10--3.12-blue.svg"></a>
76
+ <a href="https://pypi.org/project/pamola-core/"><img alt="PyPI" src="https://img.shields.io/badge/pypi-1.0.0.dev3-orange.svg"></a>
77
+ <img alt="Status" src="https://img.shields.io/badge/status-active%20development-orange.svg">
78
+ </p>
79
+
80
+ ---
81
+
82
+ ## Privacy Engineering for Python. Finally.
83
+
84
+ **PAMOLA.CORE** is the open-source foundation of the PAMOLA platform — a Python library for **privacy-preserving data operations** with reproducible pipelines, structured artifacts, and an audit trail per operation.
85
+
86
+ Developed by **[Realm Inveo Inc.](https://realmdata.io)**
87
+
88
+ ---
89
+
90
+ ## The Problem
91
+
92
+ You need to anonymize sensitive data. You've tried:
93
+
94
+ - **ARX:** Powerful, but Java, GUI-focused, opaque operations.
95
+ - **Faker + Presidio + custom scripts:** Fragmented, no pipeline, no proof.
96
+ - **DP libraries:** Great math, but narrow scope.
97
+
98
+ You're still missing:
99
+
100
+ - Direct operations (mask, generalize, pseudonymize, suppress) — not just "achieve k-anonymity".
101
+ - Risk measurement (privacy/fidelity/utility metrics on real outputs).
102
+ - Reproducibility (config + metrics + artifacts written to disk per task).
103
+
104
+ ---
105
+
106
+ ## The Solution
107
+
108
+ PAMOLA.CORE: operations-first privacy engineering with a per-operation lifecycle (validate → load → process → save → metrics → visualize → cache).
109
+
110
+ ```python
111
+ from pathlib import Path
112
+
113
+ import pandas as pd
114
+
115
+ from pamola_core import HashBasedPseudonymizationOperation, FullMaskingOperation
116
+ from pamola_core.utils.ops.op_data_source import DataSource
117
+ from pamola_core.utils.tasks.task_reporting import TaskReporter
118
+ from pamola_core.utils.progress import HierarchicalProgressTracker
119
+
120
+ df = pd.read_csv("customers.csv")
121
+ data_source = DataSource(dataframes={"main": df})
122
+ task_dir = Path("./anonymize_customers")
123
+ reporter = TaskReporter(task_dir=task_dir, task_name="anonymize")
124
+ tracker = HierarchicalProgressTracker(total=2, description="Anonymize")
125
+
126
+ # 1) Irreversible hash-based pseudonymization of the email column
127
+ HashBasedPseudonymizationOperation(
128
+ field_name="email",
129
+ algorithm="sha3_256",
130
+ salt_config={"source": "parameter", "value": "ab" * 32},
131
+ use_pepper=True,
132
+ ).execute(data_source, task_dir, reporter, tracker)
133
+
134
+ # 2) Mask the phone column entirely
135
+ FullMaskingOperation(
136
+ field_name="phone",
137
+ mask_char="*",
138
+ ).execute(data_source, task_dir, reporter, tracker)
139
+ ```
140
+
141
+ **Output structure (`task_dir/`):**
142
+
143
+ ```
144
+ anonymize_customers/
145
+ ├── config.json # Operation configuration (secrets redacted)
146
+ ├── output/ # Anonymized data (csv/parquet)
147
+ ├── metrics/ # Privacy & quality metrics (JSON)
148
+ ├── visualizations/ # Generated charts (PNG)
149
+ └── logs/ # Per-task execution log
150
+ ```
151
+
152
+ > **Security note (1.0.0.dev3):** `config.json` now redacts sensitive parameters (e.g. AES-256 mapping encryption keys) via `OperationConfig.SENSITIVE_KEYS`. See [CHANGELOG.md](CHANGELOG.md) for the full release notes.
153
+
154
+ ---
155
+
156
+ ## PAMOLA Ecosystem
157
+
158
+ PAMOLA.CORE is part of a comprehensive privacy engineering stack:
159
+
160
+ | Component | Description | Availability |
161
+ |-----------|-------------|--------------|
162
+ | **PAMOLA.CORE** | Anonymization, profiling, transformation, metrics, and shared op framework | **Open Source (this repo)** |
163
+ | **PAMOLA.STUDIO** | Visual environment for data transformation and privacy management | Commercial |
164
+ | **PAMOLA.SYNT** | Synthetic data generation, including formal DP-SGD-based generators | Commercial |
165
+ | **PAMOLA.BEST** | Best-practice policy modules and DP accounting | Commercial |
166
+ | **PAMOLA.TEXT** | Long text and document anonymization (NLP/LLM-based) | Commercial |
167
+ | **PAMOLA.INSIGHT** | Agent modules for LLM integration | Commercial |
168
+
169
+ > **Scope of CORE:** This package provides anonymization and pseudonymization primitives, classical privacy metrics, and reproducibility plumbing. It does **not** implement formal differential-privacy synthetic-data generation — that lives in PAMOLA.SYNT / PAMOLA.BEST.
170
+
171
+ ---
172
+
173
+ ## What's In CORE
174
+
175
+ All classes below are exported from the top-level `pamola_core` package.
176
+
177
+ | Category | Operations |
178
+ |----------|------------|
179
+ | **Anonymization — Masking** | `FullMaskingOperation`, `PartialMaskingOperation` |
180
+ | **Anonymization — Generalization** | `CategoricalGeneralizationOperation`, `NumericGeneralizationOperation`, `DateTimeGeneralizationOperation` |
181
+ | **Anonymization — Suppression** | `AttributeSuppressionOperation`, `CellSuppressionOperation`, `RecordSuppressionOperation` |
182
+ | **Anonymization — Pseudonymization** | `HashBasedPseudonymizationOperation` (SHA3-256/512 + salt + pepper), `ConsistentMappingPseudonymizationOperation` (AES-256-GCM reversible mapping) |
183
+ | **Anonymization — Noise** | `UniformNumericNoiseOperation`, `UniformTemporalNoiseOperation` |
184
+ | **Profiling — Field analyzers** | `CategoricalOperation`, `CorrelationOperation`, `CorrelationMatrixOperation`, `CurrencyOperation`, `DateOperation`, `EmailOperation`, `GroupAnalyzerOperation`, `IdentityAnalysisOperation`, `MVFOperation`, `NumericOperation`, `PhoneOperation`, `TextSemanticCategorizerOperation` |
185
+ | **Profiling — Dataset-level** | `KAnonymityProfilerOperation`, `DataAttributeProfilerOperation` |
186
+ | **Transformation** | `AddOrModifyFieldsOperation`, `RemoveFieldsOperation`, `CleanInvalidValuesOperation`, `ImputeMissingValuesOperation`, `AggregateRecordsOperation`, `MergeDatasetsOperation`, `SplitByIDValuesOperation`, `SplitFieldsOperation` |
187
+ | **Fake Data** | `FakeNameOperation`, `FakeEmailOperation`, `FakePhoneOperation`, `FakeOrganizationOperation` |
188
+ | **Metrics** | `FidelityOperation` (KS, KL-divergence), `PrivacyMetricOperation` (DCR, NNDR, uniqueness, k-anonymity, l-diversity), `UtilityMetricOperation` (classification, regression) |
189
+ | **Analysis helpers** | `analyze_dataset_summary`, `analyze_descriptive_stats`, `analyze_correlation`, `visualize_distribution_df`, `calculate_full_risk` |
190
+
191
+ > **Note on attack simulation:** Internal modules under `pamola_core/attacks/` (linkage, attribute inference, membership inference, DCR/NNDR helpers) are used by `PrivacyMetricOperation`, but there are no public, registered `Attack*Operation` classes in CORE 1.0.0.dev3. Future releases may expose them.
192
+
193
+ ---
194
+
195
+ ## Pseudonymization Spotlight (1.0.0.dev3)
196
+
197
+ The 1.0.0.dev3 release hardened the pseudonymization stack:
198
+
199
+ ```python
200
+ from pamola_core import ConsistentMappingPseudonymizationOperation
201
+
202
+ op = ConsistentMappingPseudonymizationOperation(
203
+ field_name="customer_id",
204
+ mapping_encryption_key="ab" * 32, # 256-bit hex key
205
+ pseudonym_type="uuid", # or "sequential" / "random_string"
206
+ mapping_format="csv", # encrypted at rest with AES-256-GCM
207
+ persist_frequency=1000,
208
+ )
209
+
210
+ # Outputs:
211
+ # - {task_dir}/output/ anonymized data
212
+ # - {task_dir}/output/ encrypted mapping file (re-identification key)
213
+ # - {task_dir}/metrics/ operation metrics
214
+ # - {task_dir}/config.json mapping_encryption_key is replaced with "*REDACTED*"
215
+ ```
216
+
217
+ Highlights:
218
+
219
+ - **AES-256-GCM mapping encryption keys are never persisted to disk.** A new `OperationConfig.SENSITIVE_KEYS` declaration + `to_safe_dict()` redacts secrets before any `save_config()` call.
220
+ - **Hash-based op rejects weak salts** (all-zero or empty) when `use_pepper=False`.
221
+ - **Per-run session id** invalidates stale disk cache when `use_pepper=True`, so previous-run pseudonyms cannot be served back.
222
+ - **Compound identifiers**, **ENRICH/REPLACE modes**, **reverse mapping**, and **Dask pickle safety** are covered by 41 dedicated tests.
223
+
224
+ ---
225
+
226
+ ## Metrics
227
+
228
+ Metric operations write JSON artifacts under `{task_dir}/metrics/`:
229
+
230
+ ```python
231
+ from pamola_core import FidelityOperation, PrivacyMetricOperation
232
+
233
+ FidelityOperation(
234
+ fidelity_metrics=["ks", "kl"],
235
+ columns=["age", "income"],
236
+ ).execute(data_source, task_dir, reporter, tracker)
237
+
238
+ PrivacyMetricOperation(
239
+ privacy_metrics=["dcr", "nndr", "uniqueness"],
240
+ quasi_identifiers=["age", "gender", "zipcode"],
241
+ ).execute(data_source, task_dir, reporter, tracker)
242
+ ```
243
+
244
+ For dataset-level utility scoring (classification / regression downstream models) use `UtilityMetricOperation`.
245
+
246
+ ---
247
+
248
+ ## Installation
249
+
250
+ **From PyPI:**
251
+
252
+ ```bash
253
+ pip install pamola-core==1.0.0.dev3
254
+ ```
255
+
256
+ **From source:**
257
+
258
+ ```bash
259
+ git clone https://github.com/DGT-Network/PAMOLA.git
260
+ cd PAMOLA
261
+ pip install -e .
262
+ ```
263
+
264
+ **Test extras:**
265
+
266
+ ```bash
267
+ pip install -e ".[test]" # adds pytest, pytest-cov
268
+ ```
269
+
270
+ > **Heads-up:** All scientific dependencies (numpy, pandas, scikit-learn, scipy, torch, dask, spacy, sdv, faker, cryptography, etc.) are pinned in the main `[project.dependencies]` table — no separate `[fast]/[ner]/[dp]` extras in this release.
271
+
272
+ ---
273
+
274
+ ## Supported Python Versions
275
+
276
+ PAMOLA.CORE supports Python **3.10, 3.11, and 3.12** (`requires-python = ">=3.10,<3.13"`).
277
+
278
+ | Python Version | Supported |
279
+ |---|---|
280
+ | 3.10 | ✅ |
281
+ | 3.11 | ✅ |
282
+ | 3.12 | ✅ |
283
+ | 3.9 and below | ❌ |
284
+ | 3.13 and above | ❌ (blocked by third-party dependencies) |
285
+
286
+ ---
287
+
288
+ ## Core Dependencies
289
+
290
+ A non-exhaustive view of the heaviest third-party packages (full list in `pyproject.toml`):
291
+
292
+ | Package | Pin | Purpose |
293
+ |---|---|---|
294
+ | **numpy** | `1.26.4` | Numerical computation across metrics, attacks, statistical analysis |
295
+ | **pandas** | `2.2.2` | The DataFrame container for every CORE operation |
296
+ | **scikit-learn** | `1.7.2` | Classification/regression metrics, nearest-neighbor distance, model-based utility |
297
+ | **scipy** | `1.15.3` | Statistical tests (KS, KL divergence) used by `FidelityOperation` |
298
+ | **cryptography** | `46.0.3` | AES-256-GCM mapping encryption for `ConsistentMappingPseudonymizationOperation` |
299
+ | **dask[complete]** | `2025.11.0` | Optional out-of-core / distributed execution path |
300
+ | **pyarrow** | `14.0.2` | Parquet I/O |
301
+ | **typer** | `0.24.1` | CLI entry point |
302
+
303
+ ---
304
+
305
+ ## Versioning
306
+
307
+ PAMOLA.CORE follows [Semantic Versioning](https://semver.org/) and [PEP 440](https://peps.python.org/pep-0440/).
308
+
309
+ ```python
310
+ import pamola_core
311
+ print(pamola_core.__version__) # e.g. "1.0.0.dev3"
312
+ ```
313
+
314
+ | Phase | Version | Branch | Tag | Install |
315
+ |-------|---------|--------|-----|---------|
316
+ | Dev (current) | `1.0.0.dev3` | `develop` | `v1.0.0.dev3` | `pip install pamola-core==1.0.0.dev3` |
317
+ | Stable (planned) | `1.0.0` | `main` | `v1.0.0` | `pip install pamola-core` |
318
+
319
+ - **Source of truth:** `pyproject.toml` → `version`
320
+ - **Changelog:** [CHANGELOG.md](CHANGELOG.md)
321
+ - **CI/CD:** GitHub Actions — lint (ruff), test (3.10/3.11/3.12, pytest), build (sdist+wheel), PyPI publish on tag `v*`
322
+ - **Release rules:** Dev tags (`v*dev*`) must be on `develop`; stable tags on `main`.
323
+
324
+ ---
325
+
326
+ ## CLI
327
+
328
+ The `pamola-core` console script is installed automatically:
329
+
330
+ ```bash
331
+ pamola-core --version
332
+ pamola-core list-ops # discover registered operations
333
+ pamola-core run --task task.json # run a task definition
334
+ pamola-core run --op FullMaskingOperation --config config.json --input data.csv
335
+ pamola-core schema FullMaskingOperation # show parameter schema
336
+ pamola-core validate-config --config config.json # validate a config file
337
+ ```
338
+
339
+ Run `pamola-core --help` for the full command list.
340
+
341
+ ---
342
+
343
+ ## Examples
344
+
345
+ Hands-on notebooks live under [`examples/`](https://github.com/DGT-Network/PAMOLA/tree/main/examples):
346
+
347
+ - `examples/anonymization/pseudonymization/` — simple + advanced for hash-based and consistent-mapping pseudonymization
348
+ - `examples/anonymization/` — masking, generalization, noise, suppression
349
+ - `examples/profiling/` — field-level and dataset-level profilers
350
+ - `examples/transformations/` — merge, split, aggregate, clean, impute
351
+ - `examples/fake_data/` — synthetic identity, email, phone, organization
352
+ - `examples/metrics/` — fidelity, privacy, utility metrics
353
+ - `examples/data_examples/sample.csv` — non-PII synthetic sample used by the notebooks
354
+
355
+ > **No real personal data** is included in this repository. All sample records are artificially generated.
356
+
357
+ ---
358
+
359
+ ## Philosophy
360
+
361
+ - **Operations-first:** Direct transforms with a well-defined 7-step lifecycle, not constraint optimization.
362
+ - **Measure everything:** Privacy, fidelity, and utility metrics persisted as JSON artifacts.
363
+ - **Reproducibility by default:** Each operation writes a `config.json` (with secrets redacted) alongside its output.
364
+ - **Secret hygiene:** `OperationConfig.SENSITIVE_KEYS` provides a single place to declare parameters that must never reach disk.
365
+
366
+ ---
367
+
368
+ ## API Documentation
369
+
370
+ The project uses **Sphinx** to generate API reference documentation from Python docstrings.
371
+
372
+ ```bash
373
+ cd docs
374
+ make html # output: docs/_build/html/index.html
375
+ ```
376
+
377
+ ---
378
+
379
+ ## Documentation
380
+
381
+ | Resource | Link |
382
+ |----------|------|
383
+ | **PET Knowledge Base** | [realmdata.io/kb](https://realmdata.io/kb/index.html) |
384
+ | **Technical Documentation** | [docs/en/index.md](https://github.com/DGT-Network/PAMOLA/blob/main/docs/en/index.md) |
385
+ | **Glossary** | [realmdata.io/glossary](https://realmdata.io/pages/glossary.html) |
386
+ | **Examples** | [`examples/`](https://github.com/DGT-Network/PAMOLA/tree/main/examples) |
387
+ | **Changelog** | [CHANGELOG.md](CHANGELOG.md) |
388
+
389
+ ---
390
+
391
+ ## Use Cases
392
+
393
+ - **Data Engineering:** Prepare privacy-safe datasets for ML training.
394
+ - **Healthcare:** HIPAA-oriented de-identification workflows (Safe Harbor support).
395
+ - **Finance:** Privacy engineering aligned with PCI/GDPR considerations.
396
+ - **Compliance:** Audit-ready evidence with structured per-operation artifacts.
397
+ - **Data Sharing:** Risk-assessed data exchange between organizations.
398
+
399
+ ---
400
+
401
+ ## Regulatory Context
402
+
403
+ PAMOLA.CORE provides technical building blocks for privacy compliance programs:
404
+
405
+ | Regulation | Relevant Capabilities |
406
+ |------------|----------------------|
407
+ | **GDPR** | Pseudonymization (reversible / irreversible), data minimization (Art. 25, 32) |
408
+ | **HIPAA** | Safe Harbor de-identification support |
409
+ | **CCPA/CPRA** | Data suppression, masking, anonymization workflows |
410
+
411
+ > **Important:** PAMOLA.CORE provides technical capabilities only. Legal compliance requires organizational policies, procedures, and legal guidance beyond software tools.
412
+
413
+ ---
414
+
415
+ ## Contributing
416
+
417
+ ```bash
418
+ git clone https://github.com/DGT-Network/PAMOLA.git
419
+ cd PAMOLA
420
+ pip install -e ".[test]"
421
+ pytest tests/ -v
422
+ ```
423
+
424
+ See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
425
+
426
+ ---
427
+
428
+ ## Ownership & Licensing
429
+
430
+ **PAMOLA.CORE** is developed and owned exclusively by **[Realm Inveo Inc.](https://realmdata.io)**
431
+
432
+ This repository is hosted under the DGT-Network GitHub organization, which provides shared development infrastructure for Realm Inveo projects. **DGT-Network does not claim ownership of this intellectual property.** All IP rights belong exclusively to Realm Inveo Inc.
433
+
434
+ **License:** BSD 3-Clause — see [LICENSE](https://github.com/DGT-Network/PAMOLA/blob/main/LICENSE).
435
+
436
+ ---
437
+
438
+ ## Contact
439
+
440
+ | Purpose | Contact |
441
+ |---------|---------|
442
+ | **General inquiries** | [contact@realmdata.io](mailto:contact@realmdata.io) |
443
+ | **Commercial / Sales** | [sales@realmdata.io](mailto:sales@realmdata.io) |
444
+ | **Due diligence / Legal** | [legal@realmdata.io](mailto:legal@realmdata.io) |
445
+ | **Website** | [realmdata.io](https://realmdata.io) |
446
+
447
+ ---
448
+
449
+ <p align="center">
450
+ <sub>Built by <a href="https://realmdata.io">Realm Inveo Inc.</a></sub>
451
+ </p>