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.
- pamola_core-1.0.0.dev3/PKG-INFO +451 -0
- pamola_core-1.0.0.dev3/README.md +385 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/__init__.py +5 -2
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/__init__.py +7 -2
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/base_anonymization_op.py +10 -2
- pamola_core-1.0.0.dev3/pamola_core/anonymization/pseudonymization/hash_based_op.py +1198 -0
- pamola_core-1.0.0.dev3/pamola_core/anonymization/pseudonymization/mapping_op.py +1262 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/attribute_op_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/attribute_op_tooltip.py +8 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/categorical_op_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/categorical_op_tooltip.py +8 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/cell_op_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/cell_op_tooltip.py +8 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/datetime_op_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/datetime_op_tooltip.py +8 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/full_masking_op_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/full_masking_op_tooltip.py +8 -0
- pamola_core-1.0.0.dev3/pamola_core/anonymization/schemas/hash_based_op_core_schema.py +244 -0
- pamola_core-1.0.0.dev3/pamola_core/anonymization/schemas/hash_based_op_schema_exclude.py +51 -0
- pamola_core-1.0.0.dev3/pamola_core/anonymization/schemas/hash_based_op_tooltip.py +225 -0
- pamola_core-1.0.0.dev3/pamola_core/anonymization/schemas/hash_based_op_ui_schema.py +167 -0
- pamola_core-1.0.0.dev3/pamola_core/anonymization/schemas/mapping_op_core_schema.py +255 -0
- pamola_core-1.0.0.dev3/pamola_core/anonymization/schemas/mapping_op_schema_exclude.py +51 -0
- pamola_core-1.0.0.dev3/pamola_core/anonymization/schemas/mapping_op_tooltip.py +232 -0
- pamola_core-1.0.0.dev3/pamola_core/anonymization/schemas/mapping_op_ui_schema.py +168 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/numeric_op_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/numeric_op_tooltip.py +8 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/partial_masking_op_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/partial_masking_op_tooltip.py +8 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/record_op_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/record_op_tooltip.py +8 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/uniform_numeric_op_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/uniform_numeric_op_tooltip.py +8 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/uniform_temporal_op_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/uniform_temporal_op_tooltip.py +8 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/cli/commands/list_ops.py +7 -7
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/cli/commands/run.py +13 -13
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/cli/commands/schema.py +6 -6
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/cli/commands/validate.py +5 -5
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/cli/main.py +4 -4
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/form_groups.py +49 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/email_op_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/email_op_tooltip.py +17 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/name_op_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/name_op_tooltip.py +16 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/organization_op_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/organization_op_tooltip.py +16 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/phone_op_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/phone_op_tooltip.py +16 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/operations/fidelity_ops.py +1 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/operations/privacy_ops.py +1 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/operations/utility_ops.py +1 -1
- 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
- pamola_core-1.0.0.dev3/pamola_core/metrics/schemas/fidelity_op_schema_exclude.py +44 -0
- pamola_core-1.0.0.dev3/pamola_core/metrics/schemas/fidelity_op_tooltip.py +97 -0
- pamola_core-1.0.0.dev3/pamola_core/metrics/schemas/fidelity_op_ui_schema.py +77 -0
- 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
- pamola_core-1.0.0.dev3/pamola_core/metrics/schemas/privacy_op_schema_exclude.py +44 -0
- pamola_core-1.0.0.dev3/pamola_core/metrics/schemas/privacy_op_tooltip.py +86 -0
- pamola_core-1.0.0.dev3/pamola_core/metrics/schemas/privacy_op_ui_schema.py +69 -0
- 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
- pamola_core-1.0.0.dev3/pamola_core/metrics/schemas/utility_op_schema_exclude.py +44 -0
- pamola_core-1.0.0.dev3/pamola_core/metrics/schemas/utility_op_tooltip.py +98 -0
- pamola_core-1.0.0.dev3/pamola_core/metrics/schemas/utility_op_ui_schema.py +77 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/anonymity.py +15 -11
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/attribute.py +38 -33
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/currency.py +36 -29
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/date.py +95 -82
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/email.py +68 -59
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/email_dask.py +70 -59
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/identity.py +53 -46
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/mvf.py +45 -40
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/numeric.py +69 -62
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/phone.py +61 -52
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/text.py +11 -9
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/correlation_utils.py +46 -25
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/anonymity_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/anonymity_tooltip.py +9 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/attribute_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/attribute_tooltip.py +9 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/categorical_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/categorical_tooltip.py +8 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/correlation_matrix_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/correlation_matrix_tooltip.py +9 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/correlation_schema_exclude.py +0 -2
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/correlation_tooltip.py +14 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/currency_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/currency_tooltip.py +11 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/date_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/date_tooltip.py +11 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/email_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/email_tooltip.py +9 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/group_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/group_tooltip.py +9 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/identity_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/identity_tooltip.py +9 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/mvf_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/mvf_tooltip.py +9 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/numeric_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/numeric_tooltip.py +9 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/phone_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/phone_tooltip.py +8 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/text_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/text_tooltip.py +8 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/base_transformation_op.py +14 -13
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/field_ops/add_modify_fields.py +1 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/add_modify_fields_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/add_modify_fields_tooltip.py +8 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/aggregate_records_op_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/aggregate_records_op_tooltip.py +9 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/clean_invalid_values_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/clean_invalid_values_tooltip.py +8 -0
- {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
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/impute_missing_values_op_tooltip.py +8 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/merge_datasets_op_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/merge_datasets_op_tooltip.py +9 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/remove_fields_op_tooltip.py +9 -0
- {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
- {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
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/split_fields_op_schema_exclude.py +0 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/split_fields_op_tooltip.py +8 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/op_base.py +5 -2
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/op_config.py +27 -3
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/schemas/base_op_ui_schema.py +4 -1
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/schema_helpers/schema_builder.py +297 -164
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/task_reporting.py +3 -2
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/network_diagram.py +1 -0
- pamola_core-1.0.0.dev3/pamola_core.egg-info/PKG-INFO +451 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core.egg-info/SOURCES.txt +20 -6
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pyproject.toml +1 -1
- pamola_core-1.0.0.dev2/PKG-INFO +0 -479
- pamola_core-1.0.0.dev2/README.md +0 -413
- pamola_core-1.0.0.dev2/pamola_core/anonymization/pseudonymization/hash_based_op.py +0 -1136
- pamola_core-1.0.0.dev2/pamola_core/anonymization/pseudonymization/mapping_op.py +0 -1315
- pamola_core-1.0.0.dev2/pamola_core/metrics/schemas/fidelity_ops_config_exclude.py +0 -20
- pamola_core-1.0.0.dev2/pamola_core/metrics/schemas/privacy_ops_config_exclude.py +0 -20
- pamola_core-1.0.0.dev2/pamola_core/metrics/schemas/utility_ops_config_exclude.py +0 -20
- pamola_core-1.0.0.dev2/pamola_core.egg-info/PKG-INFO +0 -479
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/LICENSE +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/MANIFEST.in +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/_version.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/analysis/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/analysis/correlation.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/analysis/dataset_summary.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/analysis/descriptive_stats.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/analysis/distribution.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/analysis/field_analysis.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/analysis/privacy_risk.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/categorical_config.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/categorical_strategies.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/category_mapping.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/category_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/data_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/hierarchy_dictionary.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/mapping_storage.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/masking_patterns.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/masking_presets.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/metric_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/noise_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/privacy_metric_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/processing_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/pseudonymization_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/statistical_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/text_processing_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/validation/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/validation/base.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/validation/decorators.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/validation/field_validators.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/validation/file_validators.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/validation/strategy_validators.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/validation/type_validators.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/validation_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/commons/visualization_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/generalization/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/generalization/categorical_op.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/generalization/datetime_op.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/generalization/numeric_op.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/masking/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/masking/full_masking_op.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/masking/partial_masking_op.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/noise/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/noise/uniform_numeric_op.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/noise/uniform_temporal_op.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/pseudonymization/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/attribute_op_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/attribute_op_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/categorical_op_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/categorical_op_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/cell_op_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/cell_op_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/datetime_op_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/datetime_op_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/full_masking_op_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/full_masking_op_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/numeric_op_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/numeric_op_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/partial_masking_op_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/partial_masking_op_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/record_op_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/record_op_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/uniform_numeric_op_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/uniform_numeric_op_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/uniform_temporal_op_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/schemas/uniform_temporal_op_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/suppression/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/suppression/attribute_op.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/suppression/cell_op.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/anonymization/suppression/record_op.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/attacks/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/attacks/attack_metrics.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/attacks/attacks_test.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/attacks/attribute_inference.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/attacks/base.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/attacks/distance_to_closest_record.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/attacks/linkage_attack.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/attacks/membership_inference.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/attacks/nearest_neighbor_distance_ratio.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/attacks/preprocess_data.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/catalogs/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/catalogs/catalog_loader.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/catalogs/operations_catalog.yaml +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/cli/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/cli/commands/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/cli/utils/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/cli/utils/exit_codes.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/constants.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/analysis_mode_enum.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/custom_components.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/custom_functions.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/datetime_generalization.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/distance_metric_type.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/encryption_mode.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/fidelity_metrics.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/fidelity_metrics_type.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/language_enum.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/mask_strategy_enum.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/model_type.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/numeric_generalization.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/privacy_metrics_type.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/relationship_type.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/statistical_method.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/enum/utility_metrics_type.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/helpers/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/helpers/custom_aggregations_helper.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/helpers/data_helper.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/helpers/data_profiler.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/helpers/dataset_helper.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/helpers/math_helper.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/logging/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/logging/privacy_logging.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/regex/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/regex/patterns.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/type_aliases.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/validation/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/common/validation/check_column.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/configs/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/configs/config_variables.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/configs/field_definitions.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/configs/settings.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/crypto/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/base.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/codes/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/codes/metadata.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/codes/registry.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/codes/utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/context/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/context/recovery_data.yaml +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/context/suggestions.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/error_handler.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/exceptions/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/exceptions/core_domain.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/exceptions/crypto.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/exceptions/filesystem.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/exceptions/nlp.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/exceptions/resources.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/exceptions/tasks.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/exceptions/validation.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/messages/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/messages/registry.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/errors/messages/utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/base_generator_op.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/commons/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/commons/base.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/commons/dict_helpers.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/commons/mapping_store.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/commons/metrics.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/commons/name_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/commons/prgn.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/commons/processing_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/commons/utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/commons/validators.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/dictionaries/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/dictionaries/addresses.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/dictionaries/domains.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/dictionaries/names.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/dictionaries/organizations.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/dictionaries/phones.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/generators/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/generators/base_generator.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/generators/email.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/generators/name.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/generators/organization.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/generators/phone.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/mappers/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/mappers/one_to_one.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/mappers/transitivity_handler.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/operations/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/operations/email_op.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/operations/name_op.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/operations/organization_op.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/operations/phone_op.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/email_op_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/email_op_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/name_op_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/name_op_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/organization_op_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/organization_op_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/phone_op_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/fake_data/schemas/phone_op_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/interface/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/io/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/io/base.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/io/config.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/io/csv.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/io/excel.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/io/json.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/io/parquet.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/io/paths.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/base_metrics_op.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/commons/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/commons/aggregation.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/commons/normalize.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/commons/predicted_utility_scoring.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/commons/preprocessing.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/commons/quality_scoring.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/commons/risk_scoring.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/commons/safe_instantiate.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/commons/schema_manager.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/commons/validation.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/commons/validation_rules.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/fidelity/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/fidelity/distribution/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/fidelity/distribution/kl_divergence.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/fidelity/distribution/ks_test.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/fidelity/statistical_fidelity.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/operations/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/privacy/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/privacy/disclosure_risk.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/privacy/distance.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/privacy/identity.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/privacy/neighbor.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/quality/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/quality/kolmogorov_smirnov_test.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/quality/kullback_leibler_divergence.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/quality/pearson_correlation.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/quality/wasserstein_distance.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/schemas/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/utility/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/utility/classification.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/utility/f1_score.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/utility/information_loss.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/utility/ldiversity_loss.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/utility/mean_squared_error.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/utility/r2_score.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/metrics/utility/regression.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/pipeline/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/base.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/differential_privacy/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/differential_privacy/calculation.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/k_anonymity/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/k_anonymity/calculation.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/k_anonymity/ka_reporting.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/k_anonymity/ka_visualization.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/l_diversity/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/l_diversity/advanced_visualization.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/l_diversity/apply_model.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/l_diversity/attribute_risk.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/l_diversity/calculation.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/l_diversity/interpretation.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/l_diversity/metrics.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/l_diversity/privacy.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/l_diversity/report_generators/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/l_diversity/report_generators/compliance.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/l_diversity/report_generators/technical.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/l_diversity/report_utils/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/l_diversity/report_utils/formatters.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/l_diversity/reporting.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/l_diversity/visualization.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/t_closeness/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/privacy_models/t_closeness/calculation.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/categorical.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/correlation.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/group.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/analyzers/longtext.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/analysis_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/anonymity_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/attribute_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/categorical_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/currency_analysis.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/currency_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/data_processing.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/data_types.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/date_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/dtype_helpers.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/email_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/email_utils_dask.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/group_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/helpers.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/identity_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/mvf_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/numeric_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/phone_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/report_generation.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/statistical_analysis.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/commons/text_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/anonymity_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/anonymity_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/attribute_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/attribute_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/categorical_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/categorical_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/correlation_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/correlation_matrix_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/correlation_matrix_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/correlation_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/currency_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/currency_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/date_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/date_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/email_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/email_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/group_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/group_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/identity_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/identity_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/mvf_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/mvf_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/numeric_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/numeric_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/phone_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/phone_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/text_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/profiling/schemas/text_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/resources/entities/dictionary_config.json +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/resources/entities/job_en.json +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/resources/entities/jobs.json +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/resources/entities/organizations.json +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/resources/entities/organizations_en.json +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/resources/entities/skills.json +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/resources/entities/skills_en.json +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/resources/entities/transaction.json +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/resources/entities/transaction_en.json +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/cleaning/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/cleaning/clean_invalid_values.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/commons/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/commons/aggregation_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/commons/enum.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/commons/merging_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/commons/metric_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/commons/processing_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/commons/validation_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/commons/visualization_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/field_ops/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/field_ops/remove_fields.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/grouping/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/grouping/aggregate_records_op.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/imputation/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/imputation/impute_missing_values.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/merging/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/merging/merge_datasets_op.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/add_modify_fields_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/add_modify_fields_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/aggregate_records_op_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/aggregate_records_op_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/clean_invalid_values_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/clean_invalid_values_ui_schema.py +0 -0
- {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
- {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
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/merge_datasets_op_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/merge_datasets_op_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/remove_fields_op_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/remove_fields_op_schema_exclude.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/remove_fields_op_ui_schema.py +0 -0
- {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
- {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
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/split_fields_op_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/schemas/split_fields_op_ui_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/splitting/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/splitting/split_by_id_values_op.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/transformations/splitting/split_fields_op.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/base_reporting.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/cli.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/crypto.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/crypto_helpers/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/crypto_helpers/audit.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/crypto_helpers/key_store.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/crypto_helpers/legacy_migration.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/crypto_helpers/providers/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/crypto_helpers/providers/age_provider.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/crypto_helpers/providers/none_provider.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/crypto_helpers/providers/simple_provider.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/crypto_helpers/pseudonymization.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/crypto_helpers/register_providers.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/env.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/group_processing.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/helpers.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/crypto_router.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/crypto_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/csv_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/dask_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/directory_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/error_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/file_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/format_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/image_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/json_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/memory_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/multi_file_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/provider_interface.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/readers.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/io_helpers/temp_files.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/logging.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/base.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/cache.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/category_matching.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/clustering.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/compatibility.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/dataframe_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/diversity_metrics.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/entity/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/entity/base.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/entity/dictionary.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/entity/job.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/entity/organization.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/entity/skill.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/entity/transaction.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/entity_extraction.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/language.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/llm/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/llm/client.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/llm/config.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/llm/config_helpers.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/llm/data_contracts.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/llm/enums.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/llm/metrics.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/llm/postprocessing.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/llm/preprocessing.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/llm/processing.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/llm/prompt.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/llm/service_detector.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/minhash.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/model_manager.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/stopwords.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/text_transformer.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/text_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/tokenization.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/tokenization_ext.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/nlp/tokenization_helpers.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/op_cache.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/op_data_processing.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/op_data_reader.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/op_data_source.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/op_data_source_helpers.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/op_data_writer.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/op_field_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/op_registry.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/op_result.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/op_test_helpers.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/schemas/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/schemas/base_op_core_schema.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/templates/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/ops/templates/operation_skeleton.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/paths.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/progress.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/reporting/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/reporting/config.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/reporting/dependency_graph.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/reporting/html_formatter.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/reporting/template_engine.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/schema_helpers/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/schema_helpers/form_builder.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/schema_helpers/schema_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/statistical_metrics.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/base_task.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/context_manager.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/dependency_manager.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/directory_manager.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/encryption_manager.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/execution_log.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/operation_executor.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/path_security.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/progress_manager.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/project_config_loader.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/task_config.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/task_context.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/task_registry.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/task_runner.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/task_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/templates/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/templates/complex_processing_task_template.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/templates/parallel_task_template.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/templates/secure_task_template.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/templates/simple_task_template.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/templates/task_template_generator.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/tasks/templates/task_with_checkpoint.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/__init__.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/bar_plots.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/base.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/boxplot.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/combined_charts.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/context.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/cor_matrix.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/cor_pair.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/cor_utils.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/heatmap.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/histograms.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/line_plots.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/pie_charts.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/registry.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/scatter_plots.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/spider_charts.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/theme.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/venn_diagram.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/vis_helpers/word_clouds.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core/utils/visualization.py +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core.egg-info/dependency_links.txt +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core.egg-info/entry_points.txt +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core.egg-info/requires.txt +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/pamola_core.egg-info/top_level.txt +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/setup.cfg +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/tests/anonymization/configs/test_config_attribute_op.json +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/tests/anonymization/configs/test_config_base_op.json +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/tests/anonymization/configs/test_config_cell_op.json +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/tests/anonymization/configs/test_config_datetime_op.json +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/tests/anonymization/configs/test_config_hash_based_op.json +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/tests/anonymization/configs/test_config_numeric_op.json +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/tests/anonymization/configs/test_config_record_op.json +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/tests/anonymization/configs/test_config_uniform_numeric_op.json +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/tests/anonymization/configs/test_config_uniform_temporal_op.json +0 -0
- {pamola_core-1.0.0.dev2 → pamola_core-1.0.0.dev3}/tests/anonymization/configs/test_hierarchy_categorical_op.json +0 -0
- {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>
|