gooddata-pipelines 1.72.1.dev1__tar.gz → 1.72.1.dev2__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.
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/PKG-INFO +2 -2
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/pyproject.toml +2 -2
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/ldm_extension/input_processor.py +16 -1
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/ldm_extension/ldm_extension_manager.py +26 -6
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/test_ldm_extension/test_input_processor.py +18 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/.gitignore +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/LICENSE.txt +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/Makefile +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/README.md +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/__init__.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/_version.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/api/__init__.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/api/gooddata_api.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/api/gooddata_api_wrapper.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/backup_and_restore/__init__.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/backup_and_restore/backup_input_processor.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/backup_and_restore/backup_manager.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/backup_and_restore/base_manager.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/backup_and_restore/constants.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/backup_and_restore/csv_reader.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/backup_and_restore/models/__init__.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/backup_and_restore/models/input_type.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/backup_and_restore/models/storage.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/backup_and_restore/models/workspace_response.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/backup_and_restore/restore_manager.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/backup_and_restore/storage/__init__.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/backup_and_restore/storage/azure_storage.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/backup_and_restore/storage/base_storage.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/backup_and_restore/storage/local_storage.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/backup_and_restore/storage/s3_storage.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/ldm_extension/__init__.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/ldm_extension/input_validator.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/ldm_extension/models/__init__.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/ldm_extension/models/aliases.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/ldm_extension/models/analytical_object.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/ldm_extension/models/custom_data_object.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/logger/__init__.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/logger/logger.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/provisioning/__init__.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/provisioning/assets/wdf_setting.json +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/provisioning/entities/__init__.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/provisioning/entities/user_data_filters/__init__.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/provisioning/entities/user_data_filters/models/__init__.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/provisioning/entities/user_data_filters/models/udf_models.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/provisioning/entities/user_data_filters/user_data_filters.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/provisioning/entities/users/__init__.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/provisioning/entities/users/models/__init__.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/provisioning/entities/users/models/permissions.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/provisioning/entities/users/models/user_groups.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/provisioning/entities/users/models/users.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/provisioning/entities/users/permissions.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/provisioning/entities/users/user_groups.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/provisioning/entities/users/users.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/provisioning/entities/workspaces/__init__.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/provisioning/entities/workspaces/models.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/provisioning/entities/workspaces/workspace.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/provisioning/entities/workspaces/workspace_data_filters.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/provisioning/entities/workspaces/workspace_data_parser.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/provisioning/entities/workspaces/workspace_data_validator.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/provisioning/generic/__init__.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/provisioning/generic/config.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/provisioning/generic/provision.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/provisioning/provisioning.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/provisioning/utils/__init__.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/provisioning/utils/context_objects.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/provisioning/utils/exceptions.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/provisioning/utils/utils.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/py.typed +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/utils/__init__.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/utils/decorators.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/utils/file_utils.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/utils/rate_limiter.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/__init__.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/backup_and_restore/__init__.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/backup_and_restore/test_backup.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/backup_and_restore/test_backup_input_processor.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/backup_and_restore/test_restore.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/conftest.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/__init__.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/backup/__init__.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/backup/test_conf.yaml +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/backup/test_exports/services/wsid1/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid1/analytics_model/analytical_dashboard_extensions/.gitkeep +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/backup/test_exports/services/wsid1/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid1/analytics_model/analytical_dashboards/.gitkeep +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/backup/test_exports/services/wsid1/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid1/analytics_model/dashboard_plugins/.gitkeep +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/backup/test_exports/services/wsid1/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid1/analytics_model/filter_contexts/.gitkeep +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/backup/test_exports/services/wsid1/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid1/analytics_model/metrics/.gitkeep +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/backup/test_exports/services/wsid1/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid1/analytics_model/visualization_objects/.gitkeep +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/backup/test_exports/services/wsid1/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid1/ldm/datasets/test.yaml +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/backup/test_exports/services/wsid1/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid1/ldm/date_instances/testinstance.yaml +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/backup/test_exports/services/wsid2/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid2/analytics_model/analytical_dashboard_extensions/.gitkeep +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/backup/test_exports/services/wsid2/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid2/analytics_model/analytical_dashboards/id.yaml +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/backup/test_exports/services/wsid2/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid2/analytics_model/dashboard_plugins/.gitkeep +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/backup/test_exports/services/wsid2/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid2/analytics_model/filter_contexts/id.yaml +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/backup/test_exports/services/wsid2/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid2/analytics_model/metrics/.gitkeep +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/backup/test_exports/services/wsid2/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid2/analytics_model/visualization_objects/test.yaml +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/backup/test_exports/services/wsid2/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid2/ldm/datasets/.gitkeep +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/backup/test_exports/services/wsid2/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid2/ldm/date_instances/.gitkeep +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/backup/test_exports/services/wsid3/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid3/analytics_model/analytical_dashboard_extensions/.gitkeep +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/backup/test_exports/services/wsid3/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid3/analytics_model/analytical_dashboards/.gitkeep +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/backup/test_exports/services/wsid3/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid3/analytics_model/dashboard_plugins/.gitkeep +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/backup/test_exports/services/wsid3/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid3/analytics_model/filter_contexts/.gitkeep +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/backup/test_exports/services/wsid3/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid3/analytics_model/metrics/.gitkeep +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/backup/test_exports/services/wsid3/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid3/analytics_model/visualization_objects/.gitkeep +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/backup/test_exports/services/wsid3/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid3/ldm/datasets/.gitkeep +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/backup/test_exports/services/wsid3/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid3/ldm/date_instances/.gitkeep +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/backup/test_exports/services/wsid3/20230713-132759-1_3_1_dev5/gooddata_layouts/services/workspaces/wsid3/user_data_filters/.gitkeep +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/backup/test_local_conf.yaml +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/custom_fields/response_get_all_dashboards.json +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/custom_fields/response_get_all_metrics.json +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/custom_fields/response_get_all_visualizations.json +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/mock_responses.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/profiles.yaml +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/provisioning/entities/permissions/existing_upstream_permissions.json +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/provisioning/entities/permissions/permissions_expected_full_load.json +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/provisioning/entities/permissions/permissions_expected_incremental_load.json +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/provisioning/entities/permissions/permissions_input_full_load.json +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/provisioning/entities/permissions/permissions_input_incremental_load.json +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/provisioning/entities/users/existing_upstream_users.json +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/provisioning/entities/users/profile_response_content.json +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/provisioning/entities/users/users_expected_full_load.json +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/provisioning/entities/users/users_expected_incremental_load.json +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/provisioning/entities/users/users_input_full_load.json +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/provisioning/entities/users/users_input_full_load_modifies_protected_user.json +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/provisioning/entities/users/users_input_incremental_load.json +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/provisioning/entities/users/users_input_incremental_load_deletes_protected_user.json +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/provisioning/entities/users/users_input_incremental_load_modifies_protected_user.json +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/restore/test_conf.yaml +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/restore/test_udf_root/filter1.yaml +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/restore/test_udf_root/filter2.yaml +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/restore/test_udf_root/user_data_filters/filter1.yaml +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/restore/test_udf_root/user_data_filters/filter2.yaml +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/panther/__init__.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/panther/test_api_wrapper.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/panther/test_sdk_wrapper.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/provisioning/__init__.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/provisioning/entities/__init__.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/provisioning/entities/users/__init__.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/provisioning/entities/users/test_permissions.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/provisioning/entities/users/test_user_groups.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/provisioning/entities/users/test_users.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/provisioning/entities/workspaces/__init__.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/provisioning/entities/workspaces/test_provisioning.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/provisioning/entities/workspaces/test_workspace.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/provisioning/entities/workspaces/test_workspace_data_filters.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/provisioning/entities/workspaces/test_workspace_data_parser.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/provisioning/entities/workspaces/test_workspace_data_validator.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/provisioning/test_provisioning.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/test_ldm_extension/__init__.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/test_ldm_extension/conftest.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/test_ldm_extension/test_input_validator.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/test_ldm_extension/test_ldm_extension_manager.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/test_ldm_extension/test_merge_ldm.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/test_ldm_extension/test_models/__init__.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/test_ldm_extension/test_models/test_analytical_object.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/test_ldm_extension/test_models/test_custom_data_object.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/utils/test_decorators.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/utils/test_rate_limiter.py +0 -0
- {gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tox.ini +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: gooddata-pipelines
|
|
3
|
-
Version: 1.72.1.
|
|
3
|
+
Version: 1.72.1.dev2
|
|
4
4
|
Summary: GoodData Cloud lifecycle automation pipelines
|
|
5
5
|
Author-email: GoodData <support@gooddata.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -10,7 +10,7 @@ Requires-Dist: azure-identity<2.0.0,>=1.15.0
|
|
|
10
10
|
Requires-Dist: azure-storage-blob<13.0.0,>=12.19.0
|
|
11
11
|
Requires-Dist: boto3-stubs<2.0.0,>=1.39.3
|
|
12
12
|
Requires-Dist: boto3<2.0.0,>=1.39.3
|
|
13
|
-
Requires-Dist: gooddata-sdk~=1.72.1.
|
|
13
|
+
Requires-Dist: gooddata-sdk~=1.72.1.dev2
|
|
14
14
|
Requires-Dist: pydantic<3.0.0,>=2.9.2
|
|
15
15
|
Requires-Dist: requests<3.0.0,>=2.32.3
|
|
16
16
|
Requires-Dist: types-pyyaml<7.0.0,>=6.0.12.20250326
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# (C) 2025 GoodData Corporation
|
|
2
2
|
[project]
|
|
3
3
|
name = "gooddata-pipelines"
|
|
4
|
-
version = "1.72.1.
|
|
4
|
+
version = "1.72.1.dev2"
|
|
5
5
|
description = "GoodData Cloud lifecycle automation pipelines"
|
|
6
6
|
authors = [{ name = "GoodData", email = "support@gooddata.com" }]
|
|
7
7
|
license = "MIT"
|
|
@@ -11,7 +11,7 @@ dependencies = [
|
|
|
11
11
|
"pydantic (>=2.9.2,<3.0.0)",
|
|
12
12
|
"requests (>=2.32.3,<3.0.0)",
|
|
13
13
|
"types-requests (>1.0.0,<3.0.0)",
|
|
14
|
-
"gooddata-sdk~=1.72.1.
|
|
14
|
+
"gooddata-sdk~=1.72.1.dev2",
|
|
15
15
|
"boto3 (>=1.39.3,<2.0.0)",
|
|
16
16
|
"boto3-stubs (>=1.39.3,<2.0.0)",
|
|
17
17
|
"azure-storage-blob (>=12.19.0,<13.0.0)",
|
|
@@ -82,6 +82,21 @@ class LdmExtensionDataProcessor:
|
|
|
82
82
|
"FISCAL_YEAR",
|
|
83
83
|
]
|
|
84
84
|
|
|
85
|
+
# newly added granularities gated behind `enableSecondGranularities` feature flag
|
|
86
|
+
_SECOND_DATE_GRANULARITIES: list[str] = [
|
|
87
|
+
"SECOND",
|
|
88
|
+
"SECOND_OF_MINUTE",
|
|
89
|
+
"SECOND_OF_DAY",
|
|
90
|
+
"MINUTE_OF_DAY",
|
|
91
|
+
]
|
|
92
|
+
|
|
93
|
+
def __init__(self, enable_second_granularities: bool = False):
|
|
94
|
+
self._date_granularities = (
|
|
95
|
+
self.DATE_GRANULARITIES + self._SECOND_DATE_GRANULARITIES
|
|
96
|
+
if enable_second_granularities
|
|
97
|
+
else self.DATE_GRANULARITIES
|
|
98
|
+
)
|
|
99
|
+
|
|
85
100
|
@staticmethod
|
|
86
101
|
def _attribute_from_field(
|
|
87
102
|
dataset_name: str,
|
|
@@ -127,7 +142,7 @@ class LdmExtensionDataProcessor:
|
|
|
127
142
|
title_base="",
|
|
128
143
|
title_pattern="%titleBase - %granularityTitle",
|
|
129
144
|
),
|
|
130
|
-
granularities=self.
|
|
145
|
+
granularities=self._date_granularities,
|
|
131
146
|
description=custom_field.description,
|
|
132
147
|
tags=_effective_field_tags(dataset_name, custom_field),
|
|
133
148
|
)
|
|
@@ -33,27 +33,47 @@ from gooddata_pipelines.logger.logger import LogObserver
|
|
|
33
33
|
|
|
34
34
|
|
|
35
35
|
class LdmExtensionManager:
|
|
36
|
-
"""Manager for creating custom datasets and fields in GoodData workspaces.
|
|
36
|
+
"""Manager for creating custom datasets and fields in GoodData workspaces.
|
|
37
|
+
|
|
38
|
+
Args:
|
|
39
|
+
enable_second_granularities (bool): Whether to create date datasets
|
|
40
|
+
with second-based granularities.
|
|
41
|
+
"""
|
|
37
42
|
|
|
38
43
|
INDENT = " " * 2
|
|
39
44
|
|
|
40
45
|
@classmethod
|
|
41
|
-
def create(
|
|
42
|
-
|
|
46
|
+
def create(
|
|
47
|
+
cls, host: str, token: str, enable_second_granularities: bool = False
|
|
48
|
+
) -> "LdmExtensionManager":
|
|
49
|
+
return cls(
|
|
50
|
+
host=host,
|
|
51
|
+
token=token,
|
|
52
|
+
enable_second_granularities=enable_second_granularities,
|
|
53
|
+
)
|
|
43
54
|
|
|
44
55
|
@classmethod
|
|
45
56
|
def create_from_profile(
|
|
46
57
|
cls,
|
|
47
58
|
profile: str = "default",
|
|
48
59
|
profiles_path: Path = PROFILES_FILE_PATH,
|
|
60
|
+
enable_second_granularities: bool = False,
|
|
49
61
|
) -> "LdmExtensionManager":
|
|
50
62
|
"""Creates a provisioner instance using a GoodData profile file."""
|
|
51
63
|
content = profile_content(profile, profiles_path)
|
|
52
|
-
return cls(
|
|
64
|
+
return cls(
|
|
65
|
+
host=content["host"],
|
|
66
|
+
token=content["token"],
|
|
67
|
+
enable_second_granularities=enable_second_granularities,
|
|
68
|
+
)
|
|
53
69
|
|
|
54
|
-
def __init__(
|
|
70
|
+
def __init__(
|
|
71
|
+
self, host: str, token: str, enable_second_granularities: bool = False
|
|
72
|
+
):
|
|
55
73
|
self._validator = LdmExtensionDataValidator()
|
|
56
|
-
self._processor = LdmExtensionDataProcessor(
|
|
74
|
+
self._processor = LdmExtensionDataProcessor(
|
|
75
|
+
enable_second_granularities=enable_second_granularities
|
|
76
|
+
)
|
|
57
77
|
self._sdk = GoodDataSdk.create(host_=host, token_=token)
|
|
58
78
|
self._api = GoodDataApi(host=host, token=token)
|
|
59
79
|
self.logger = LogObserver()
|
|
@@ -61,6 +61,24 @@ def test_date_from_field(mock_custom_field_date):
|
|
|
61
61
|
assert date_ds.tags == ["dataset_name"]
|
|
62
62
|
|
|
63
63
|
|
|
64
|
+
def test_date_from_field_second_granularities_disabled(
|
|
65
|
+
mock_custom_field_date,
|
|
66
|
+
):
|
|
67
|
+
processor = LdmExtensionDataProcessor()
|
|
68
|
+
date_ds = processor._date_from_field("dataset_name", mock_custom_field_date)
|
|
69
|
+
assert not set(date_ds.granularities) & set(
|
|
70
|
+
processor._SECOND_DATE_GRANULARITIES
|
|
71
|
+
)
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
def test_date_from_field_second_granularities_enabled(mock_custom_field_date):
|
|
75
|
+
processor = LdmExtensionDataProcessor(enable_second_granularities=True)
|
|
76
|
+
date_ds = processor._date_from_field("dataset_name", mock_custom_field_date)
|
|
77
|
+
assert set(date_ds.granularities) == set(
|
|
78
|
+
processor.DATE_GRANULARITIES + processor._SECOND_DATE_GRANULARITIES
|
|
79
|
+
)
|
|
80
|
+
|
|
81
|
+
|
|
64
82
|
def test_date_ref_from_field(mock_custom_field_date):
|
|
65
83
|
ref = LdmExtensionDataProcessor._date_ref_from_field(mock_custom_field_date)
|
|
66
84
|
assert ref.identifier.id == "date1"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/__init__.py
RENAMED
|
File without changes
|
{gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/_version.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/src/gooddata_pipelines/py.typed
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/backup/__init__.py
RENAMED
|
File without changes
|
{gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/backup/test_conf.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/mock_responses.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/data/restore/test_conf.yaml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/panther/test_api_wrapper.py
RENAMED
|
File without changes
|
{gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/panther/test_sdk_wrapper.py
RENAMED
|
File without changes
|
{gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/provisioning/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/utils/test_decorators.py
RENAMED
|
File without changes
|
{gooddata_pipelines-1.72.1.dev1 → gooddata_pipelines-1.72.1.dev2}/tests/utils/test_rate_limiter.py
RENAMED
|
File without changes
|
|
File without changes
|