gooddata-sdk 1.32.3.dev2__tar.gz → 1.33.1.dev1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. {gooddata_sdk-1.32.3.dev2/gooddata_sdk.egg-info → gooddata_sdk-1.33.1.dev1}/PKG-INFO +5 -4
  2. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/README.md +1 -1
  3. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/data_source/declarative_model/data_source.py +16 -1
  4. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/data_source/service.py +16 -2
  5. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/entity.py +28 -0
  6. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/parameter.py +4 -0
  7. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1/gooddata_sdk.egg-info}/PKG-INFO +5 -4
  8. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk.egg-info/requires.txt +1 -1
  9. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/setup.py +4 -3
  10. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/LICENSE.txt +0 -0
  11. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/MANIFEST.in +0 -0
  12. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/bin/gdc +0 -0
  13. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/__init__.py +0 -0
  14. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/_version.py +0 -0
  15. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/__init__.py +0 -0
  16. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/base.py +0 -0
  17. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/catalog_service_base.py +0 -0
  18. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/data_source/__init__.py +0 -0
  19. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/data_source/action_model/__init__.py +0 -0
  20. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/data_source/action_model/requests/__init__.py +0 -0
  21. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/data_source/action_model/requests/ldm_request.py +0 -0
  22. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/data_source/action_model/requests/scan_model_request.py +0 -0
  23. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/data_source/action_model/requests/scan_sql_request.py +0 -0
  24. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/data_source/action_model/responses/__init__.py +0 -0
  25. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/data_source/action_model/responses/scan_sql_response.py +0 -0
  26. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/data_source/action_model/sql_column.py +0 -0
  27. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/data_source/declarative_model/__init__.py +0 -0
  28. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/data_source/declarative_model/physical_model/__init__.py +0 -0
  29. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/data_source/declarative_model/physical_model/column.py +0 -0
  30. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/data_source/declarative_model/physical_model/pdm.py +0 -0
  31. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/data_source/declarative_model/physical_model/table.py +0 -0
  32. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/data_source/entity_model/__init__.py +0 -0
  33. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/data_source/entity_model/content_objects/__init__.py +0 -0
  34. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/data_source/entity_model/data_source.py +0 -0
  35. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/data_source/validation/__init__.py +0 -0
  36. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/data_source/validation/data_source.py +0 -0
  37. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/depends_on.py +0 -0
  38. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/export/__init__.py +0 -0
  39. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/export/request.py +0 -0
  40. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/export/service.py +0 -0
  41. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/filter_by.py +0 -0
  42. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/identifier.py +0 -0
  43. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/organization/__init__.py +0 -0
  44. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/organization/entity_model/__init__.py +0 -0
  45. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/organization/entity_model/directive.py +0 -0
  46. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/organization/entity_model/identity_provider.py +0 -0
  47. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/organization/entity_model/jwk.py +0 -0
  48. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/organization/entity_model/organization.py +0 -0
  49. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/organization/entity_model/setting.py +0 -0
  50. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/organization/layout/__init__.py +0 -0
  51. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/organization/layout/identity_provider.py +0 -0
  52. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/organization/layout/notification_channel.py +0 -0
  53. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/organization/service.py +0 -0
  54. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/permission/__init__.py +0 -0
  55. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/permission/declarative_model/__init__.py +0 -0
  56. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/permission/declarative_model/dashboard_assignees.py +0 -0
  57. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/permission/declarative_model/dashboard_permissions.py +0 -0
  58. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/permission/declarative_model/manage_dashboard_permissions.py +0 -0
  59. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/permission/declarative_model/permission.py +0 -0
  60. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/permission/service.py +0 -0
  61. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/rule.py +0 -0
  62. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/setting.py +0 -0
  63. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/types.py +0 -0
  64. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/user/__init__.py +0 -0
  65. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/user/declarative_model/__init__.py +0 -0
  66. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/user/declarative_model/user.py +0 -0
  67. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/user/declarative_model/user_and_user_groups.py +0 -0
  68. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/user/declarative_model/user_group.py +0 -0
  69. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/user/entity_model/__init__.py +0 -0
  70. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/user/entity_model/api_token.py +0 -0
  71. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/user/entity_model/user.py +0 -0
  72. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/user/entity_model/user_group.py +0 -0
  73. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/user/management_model/__init__.py +0 -0
  74. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/user/management_model/management.py +0 -0
  75. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/user/service.py +0 -0
  76. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/validate_by_item.py +0 -0
  77. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/__init__.py +0 -0
  78. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/content_service.py +0 -0
  79. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/declarative_model/__init__.py +0 -0
  80. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/declarative_model/workspace/__init__.py +0 -0
  81. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/declarative_model/workspace/analytics_model/__init__.py +0 -0
  82. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/declarative_model/workspace/analytics_model/analytics_model.py +0 -0
  83. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/declarative_model/workspace/analytics_model/base.py +0 -0
  84. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/declarative_model/workspace/analytics_model/export_definition.py +0 -0
  85. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/declarative_model/workspace/automation.py +0 -0
  86. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/__init__.py +0 -0
  87. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/data_filter_references.py +0 -0
  88. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/dataset/__init__.py +0 -0
  89. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/dataset/dataset.py +0 -0
  90. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/dataset_extensions/__init__.py +0 -0
  91. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/dataset_extensions/dataset_extension.py +0 -0
  92. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/date_dataset/__init__.py +0 -0
  93. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/date_dataset/date_dataset.py +0 -0
  94. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/ldm.py +0 -0
  95. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/declarative_model/workspace/workspace.py +0 -0
  96. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/entity_model/__init__.py +0 -0
  97. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/entity_model/content_objects/__init__.py +0 -0
  98. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/entity_model/content_objects/dataset.py +0 -0
  99. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/entity_model/content_objects/metric.py +0 -0
  100. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/entity_model/content_objects/workspace_setting.py +0 -0
  101. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/entity_model/filter_view.py +0 -0
  102. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/entity_model/graph_objects/__init__.py +0 -0
  103. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/entity_model/graph_objects/graph.py +0 -0
  104. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/entity_model/user_data_filter.py +0 -0
  105. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/entity_model/workspace.py +0 -0
  106. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/model_container.py +0 -0
  107. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/catalog/workspace/service.py +0 -0
  108. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/cli/__init__.py +0 -0
  109. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/cli/clone.py +0 -0
  110. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/cli/constants.py +0 -0
  111. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/cli/deploy.py +0 -0
  112. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/cli/gdc_core.py +0 -0
  113. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/cli/package.json +0 -0
  114. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/cli/utils.py +0 -0
  115. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/client.py +0 -0
  116. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/compute/__init__.py +0 -0
  117. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/compute/compute_to_sdk_converter.py +0 -0
  118. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/compute/model/__init__.py +0 -0
  119. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/compute/model/attribute.py +0 -0
  120. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/compute/model/base.py +0 -0
  121. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/compute/model/execution.py +0 -0
  122. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/compute/model/filter.py +0 -0
  123. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/compute/model/metric.py +0 -0
  124. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/compute/service.py +0 -0
  125. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/config.py +0 -0
  126. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/py.typed +0 -0
  127. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/sdk.py +0 -0
  128. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/support.py +0 -0
  129. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/table.py +0 -0
  130. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/type_converter.py +0 -0
  131. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/utils.py +0 -0
  132. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk/visualization.py +0 -0
  133. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk.egg-info/SOURCES.txt +0 -0
  134. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk.egg-info/dependency_links.txt +0 -0
  135. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/gooddata_sdk.egg-info/top_level.txt +0 -0
  136. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/setup.cfg +0 -0
  137. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/tests/test_client.py +0 -0
  138. {gooddata_sdk-1.32.3.dev2 → gooddata_sdk-1.33.1.dev1}/tests/test_type_converter.py +0 -0
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: gooddata-sdk
3
- Version: 1.32.3.dev2
3
+ Version: 1.33.1.dev1
4
4
  Summary: GoodData Cloud Python SDK
5
5
  Author: GoodData
6
6
  Author-email: support@gooddata.com
7
7
  License: MIT
8
- Project-URL: Documentation, https://www.gooddata.com/docs/python-sdk/1.32.3.dev2
8
+ Project-URL: Documentation, https://www.gooddata.com/docs/python-sdk/1.33.1.dev1
9
9
  Project-URL: Source, https://github.com/gooddata/gooddata-python-sdk
10
10
  Keywords: gooddata,sdk,api,analytics,headless,business,intelligence,headless-bi,cloud,native,semantic,layer,sql,metrics
11
11
  Classifier: Development Status :: 5 - Production/Stable
@@ -15,6 +15,7 @@ Classifier: Programming Language :: Python :: 3.9
15
15
  Classifier: Programming Language :: Python :: 3.10
16
16
  Classifier: Programming Language :: Python :: 3.11
17
17
  Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
18
19
  Classifier: Topic :: Database
19
20
  Classifier: Topic :: Scientific/Engineering
20
21
  Classifier: Topic :: Software Development
@@ -22,7 +23,7 @@ Classifier: Typing :: Typed
22
23
  Requires-Python: >=3.9.0
23
24
  Description-Content-Type: text/markdown
24
25
  License-File: LICENSE.txt
25
- Requires-Dist: gooddata-api-client~=1.32.3.dev2
26
+ Requires-Dist: gooddata-api-client~=1.33.1.dev1
26
27
  Requires-Dist: python-dateutil>=2.5.3
27
28
  Requires-Dist: pyyaml>=5.1
28
29
  Requires-Dist: attrs<=24.2.0,>=21.4.0
@@ -46,7 +47,7 @@ At the moment the SDK provides services to inspect and interact with the Semanti
46
47
  * Compute Service
47
48
  * Table Service
48
49
 
49
- See [DOCUMENTATION](https://www.gooddata.com/docs/python-sdk/1.32.3.dev2) for more details.
50
+ See [DOCUMENTATION](https://www.gooddata.com/docs/python-sdk/1.33.1.dev1) for more details.
50
51
 
51
52
  ## Requirements
52
53
 
@@ -13,7 +13,7 @@ At the moment the SDK provides services to inspect and interact with the Semanti
13
13
  * Compute Service
14
14
  * Table Service
15
15
 
16
- See [DOCUMENTATION](https://www.gooddata.com/docs/python-sdk/1.32.3.dev2) for more details.
16
+ See [DOCUMENTATION](https://www.gooddata.com/docs/python-sdk/1.33.1.dev1) for more details.
17
17
 
18
18
  ## Requirements
19
19
 
@@ -12,12 +12,13 @@ from gooddata_api_client.model.declarative_data_sources import DeclarativeDataSo
12
12
  from gooddata_api_client.model.test_definition_request import TestDefinitionRequest
13
13
 
14
14
  from gooddata_sdk.catalog.base import Base, value_in_allowed
15
- from gooddata_sdk.catalog.entity import TokenCredentialsFromFile
15
+ from gooddata_sdk.catalog.entity import ClientSecretCredentialsFromFile, TokenCredentialsFromFile
16
16
  from gooddata_sdk.catalog.parameter import CatalogParameter
17
17
  from gooddata_sdk.catalog.permission.declarative_model.permission import CatalogDeclarativeDataSourcePermission
18
18
  from gooddata_sdk.utils import create_directory, get_ds_credentials, read_layout_from_file, write_layout_to_file
19
19
 
20
20
  BIGQUERY_TYPE = "BIGQUERY"
21
+ DATABRICKS_TYPE = "DATABRICKS"
21
22
  LAYOUT_DATA_SOURCES_DIR = "data_sources"
22
23
 
23
24
 
@@ -33,6 +34,15 @@ class CatalogDeclarativeDataSources(Base):
33
34
  if data_source.type == BIGQUERY_TYPE:
34
35
  token = TokenCredentialsFromFile.token_from_file(credentials[data_source.id])
35
36
  data_sources.append(data_source.to_api(token=token))
37
+ elif data_source.type == DATABRICKS_TYPE:
38
+ if data_source.client_id is not None:
39
+ client_secret = ClientSecretCredentialsFromFile.client_secret_from_file(
40
+ credentials[data_source.id]
41
+ )
42
+ data_sources.append(data_source.to_api(client_secret=client_secret))
43
+ else:
44
+ token = TokenCredentialsFromFile.token_from_file(credentials[data_source.id])
45
+ data_sources.append(data_source.to_api(token=token))
36
46
  else:
37
47
  data_sources.append(data_source.to_api(password=credentials[data_source.id]))
38
48
  else:
@@ -125,8 +135,13 @@ class CatalogDeclarativeDataSource(Base):
125
135
  kwargs["private_key"] = private_key
126
136
  if private_key_passphrase is not None:
127
137
  kwargs["private_key_passphrase"] = private_key
138
+ if self.client_id is not None:
139
+ kwargs["client_id"] = self.client_id
128
140
  if client_secret is not None:
129
141
  kwargs["client_secret"] = client_secret
142
+ if self.parameters is not None:
143
+ kwargs["parameters"] = [param.to_data_source_parameter() for param in self.parameters]
144
+
130
145
  return TestDefinitionRequest(type=self.type, url=self.url, **kwargs)
131
146
 
132
147
  @staticmethod
@@ -17,6 +17,7 @@ from gooddata_sdk.catalog.data_source.action_model.requests.scan_sql_request imp
17
17
  from gooddata_sdk.catalog.data_source.action_model.responses.scan_sql_response import ScanSqlResponse
18
18
  from gooddata_sdk.catalog.data_source.declarative_model.data_source import (
19
19
  BIGQUERY_TYPE,
20
+ DATABRICKS_TYPE,
20
21
  CatalogDeclarativeDataSource,
21
22
  CatalogDeclarativeDataSources,
22
23
  )
@@ -25,7 +26,7 @@ from gooddata_sdk.catalog.data_source.declarative_model.physical_model.pdm impor
25
26
  CatalogScanResultPdm,
26
27
  )
27
28
  from gooddata_sdk.catalog.data_source.entity_model.data_source import CatalogDataSource
28
- from gooddata_sdk.catalog.entity import TokenCredentialsFromFile
29
+ from gooddata_sdk.catalog.entity import ClientSecretCredentialsFromFile, TokenCredentialsFromFile
29
30
  from gooddata_sdk.catalog.workspace.declarative_model.workspace.logical_model.ldm import CatalogDeclarativeModel
30
31
  from gooddata_sdk.client import GoodDataApiClient
31
32
  from gooddata_sdk.utils import get_ds_credentials, load_all_entities_dict, read_layout_from_file
@@ -474,6 +475,19 @@ class CatalogDataSourceService(CatalogServiceBase):
474
475
  response = self._actions_api.test_data_source_definition(
475
476
  declarative_data_source.to_test_request(token=token)
476
477
  )
478
+ elif declarative_data_source.type == DATABRICKS_TYPE:
479
+ if declarative_data_source.client_id is not None:
480
+ client_secret = ClientSecretCredentialsFromFile.client_secret_from_file(
481
+ credentials[declarative_data_source.id]
482
+ )
483
+ response = self._actions_api.test_data_source_definition(
484
+ declarative_data_source.to_test_request(client_secret=client_secret)
485
+ )
486
+ else:
487
+ token = TokenCredentialsFromFile.token_from_file(credentials[declarative_data_source.id])
488
+ response = self._actions_api.test_data_source_definition(
489
+ declarative_data_source.to_test_request(token=token)
490
+ )
477
491
  else:
478
492
  response = self._actions_api.test_data_source_definition(
479
493
  declarative_data_source.to_test_request(password=credentials[declarative_data_source.id])
@@ -528,6 +542,6 @@ class CatalogDataSourceService(CatalogServiceBase):
528
542
  if data.get("data_sources") is None:
529
543
  raise ValueError("The file has a wrong structure. There should be a root key 'data_sources'.")
530
544
  if len(data["data_sources"]) == 0:
531
- raise ValueError("There are no pairs of data source id and token.")
545
+ raise ValueError("There are no pairs of data source id and credentials.")
532
546
  credentials = data["data_sources"]
533
547
  return credentials
@@ -274,3 +274,31 @@ class ClientSecretCredentials(Credentials):
274
274
  # You have to fill it to keep it or update it
275
275
  client_secret="",
276
276
  )
277
+
278
+
279
+ @attr.s(auto_attribs=True, kw_only=True)
280
+ class ClientSecretCredentialsFromFile(Credentials):
281
+ file_path: Path
282
+ client_secret: str = attr.field(init=False, repr=lambda value: "***")
283
+
284
+ def __attrs_post_init__(self) -> None:
285
+ self.client_secret = self.client_secret_from_file(self.file_path)
286
+
287
+ def to_api_args(self) -> dict[str, Any]:
288
+ return {
289
+ self.CLIENT_SECRET: self.client_secret,
290
+ }
291
+
292
+ @classmethod
293
+ def is_part_of_api(cls, entity: dict[str, Any]) -> bool:
294
+ return cls.CLIENT_SECRET in entity
295
+
296
+ @classmethod
297
+ def from_api(cls, entity: dict[str, Any]) -> ClientSecretCredentialsFromFile:
298
+ # Credentials are not returned for security reasons
299
+ raise NotImplementedError
300
+
301
+ @staticmethod
302
+ def client_secret_from_file(file_path: Union[str, Path]) -> str:
303
+ with open(file_path, "rb") as fp:
304
+ return base64.b64encode(fp.read()).decode("utf-8")
@@ -1,5 +1,6 @@
1
1
  # (C) 2022 GoodData Corporation
2
2
  import attr
3
+ from gooddata_api_client.model.data_source_parameter import DataSourceParameter
3
4
  from gooddata_api_client.model.parameter import Parameter
4
5
 
5
6
  from gooddata_sdk.catalog.base import Base
@@ -13,3 +14,6 @@ class CatalogParameter(Base):
13
14
  @staticmethod
14
15
  def client_class() -> type[Parameter]:
15
16
  return Parameter
17
+
18
+ def to_data_source_parameter(self) -> DataSourceParameter:
19
+ return DataSourceParameter(name=self.name, value=self.value)
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: gooddata-sdk
3
- Version: 1.32.3.dev2
3
+ Version: 1.33.1.dev1
4
4
  Summary: GoodData Cloud Python SDK
5
5
  Author: GoodData
6
6
  Author-email: support@gooddata.com
7
7
  License: MIT
8
- Project-URL: Documentation, https://www.gooddata.com/docs/python-sdk/1.32.3.dev2
8
+ Project-URL: Documentation, https://www.gooddata.com/docs/python-sdk/1.33.1.dev1
9
9
  Project-URL: Source, https://github.com/gooddata/gooddata-python-sdk
10
10
  Keywords: gooddata,sdk,api,analytics,headless,business,intelligence,headless-bi,cloud,native,semantic,layer,sql,metrics
11
11
  Classifier: Development Status :: 5 - Production/Stable
@@ -15,6 +15,7 @@ Classifier: Programming Language :: Python :: 3.9
15
15
  Classifier: Programming Language :: Python :: 3.10
16
16
  Classifier: Programming Language :: Python :: 3.11
17
17
  Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
18
19
  Classifier: Topic :: Database
19
20
  Classifier: Topic :: Scientific/Engineering
20
21
  Classifier: Topic :: Software Development
@@ -22,7 +23,7 @@ Classifier: Typing :: Typed
22
23
  Requires-Python: >=3.9.0
23
24
  Description-Content-Type: text/markdown
24
25
  License-File: LICENSE.txt
25
- Requires-Dist: gooddata-api-client~=1.32.3.dev2
26
+ Requires-Dist: gooddata-api-client~=1.33.1.dev1
26
27
  Requires-Dist: python-dateutil>=2.5.3
27
28
  Requires-Dist: pyyaml>=5.1
28
29
  Requires-Dist: attrs<=24.2.0,>=21.4.0
@@ -46,7 +47,7 @@ At the moment the SDK provides services to inspect and interact with the Semanti
46
47
  * Compute Service
47
48
  * Table Service
48
49
 
49
- See [DOCUMENTATION](https://www.gooddata.com/docs/python-sdk/1.32.3.dev2) for more details.
50
+ See [DOCUMENTATION](https://www.gooddata.com/docs/python-sdk/1.33.1.dev1) for more details.
50
51
 
51
52
  ## Requirements
52
53
 
@@ -1,4 +1,4 @@
1
- gooddata-api-client~=1.32.3.dev2
1
+ gooddata-api-client~=1.33.1.dev1
2
2
  python-dateutil>=2.5.3
3
3
  pyyaml>=5.1
4
4
  attrs<=24.2.0,>=21.4.0
@@ -7,7 +7,7 @@ this_directory = Path(__file__).parent
7
7
  long_description = (this_directory / "README.md").read_text(encoding="utf-8")
8
8
 
9
9
  REQUIRES = [
10
- "gooddata-api-client~=1.32.3.dev2",
10
+ "gooddata-api-client~=1.33.1.dev1",
11
11
  "python-dateutil>=2.5.3",
12
12
  "pyyaml>=5.1",
13
13
  "attrs>=21.4.0,<=24.2.0",
@@ -22,7 +22,7 @@ setup(
22
22
  description="GoodData Cloud Python SDK",
23
23
  long_description=long_description,
24
24
  long_description_content_type="text/markdown",
25
- version="1.32.3.dev2",
25
+ version="1.33.1.dev1",
26
26
  author="GoodData",
27
27
  author_email="support@gooddata.com",
28
28
  license="MIT",
@@ -36,7 +36,7 @@ setup(
36
36
  "bin/gdc",
37
37
  ],
38
38
  project_urls={
39
- "Documentation": "https://www.gooddata.com/docs/python-sdk/1.32.3.dev2",
39
+ "Documentation": "https://www.gooddata.com/docs/python-sdk/1.33.1.dev1",
40
40
  "Source": "https://github.com/gooddata/gooddata-python-sdk",
41
41
  },
42
42
  classifiers=[
@@ -47,6 +47,7 @@ setup(
47
47
  "Programming Language :: Python :: 3.10",
48
48
  "Programming Language :: Python :: 3.11",
49
49
  "Programming Language :: Python :: 3.12",
50
+ "Programming Language :: Python :: 3.13",
50
51
  "Topic :: Database",
51
52
  "Topic :: Scientific/Engineering",
52
53
  "Topic :: Software Development",