gooddata-sdk 1.28.1.dev4__tar.gz → 1.28.1.dev6__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 (133) hide show
  1. {gooddata_sdk-1.28.1.dev4/gooddata_sdk.egg-info → gooddata_sdk-1.28.1.dev6}/PKG-INFO +4 -4
  2. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/README.md +1 -1
  3. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/__init__.py +4 -0
  4. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/export/request.py +1 -1
  5. gooddata_sdk-1.28.1.dev6/gooddata_sdk/catalog/user/entity_model/api_token.py +12 -0
  6. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/user/service.py +26 -0
  7. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/workspace/declarative_model/workspace/analytics_model/analytics_model.py +35 -41
  8. gooddata_sdk-1.28.1.dev6/gooddata_sdk/catalog/workspace/declarative_model/workspace/analytics_model/base.py +41 -0
  9. gooddata_sdk-1.28.1.dev6/gooddata_sdk/catalog/workspace/declarative_model/workspace/analytics_model/export_definition.py +43 -0
  10. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/visualization.py +42 -0
  11. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6/gooddata_sdk.egg-info}/PKG-INFO +4 -4
  12. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk.egg-info/SOURCES.txt +3 -0
  13. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk.egg-info/requires.txt +1 -1
  14. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/setup.py +3 -3
  15. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/LICENSE.txt +0 -0
  16. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/MANIFEST.in +0 -0
  17. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/bin/gdc +0 -0
  18. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/_version.py +0 -0
  19. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/__init__.py +0 -0
  20. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/base.py +0 -0
  21. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/catalog_service_base.py +0 -0
  22. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/data_source/__init__.py +0 -0
  23. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/data_source/action_model/__init__.py +0 -0
  24. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/data_source/action_model/requests/__init__.py +0 -0
  25. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/data_source/action_model/requests/ldm_request.py +0 -0
  26. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/data_source/action_model/requests/scan_model_request.py +0 -0
  27. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/data_source/action_model/requests/scan_sql_request.py +0 -0
  28. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/data_source/action_model/responses/__init__.py +0 -0
  29. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/data_source/action_model/responses/scan_sql_response.py +0 -0
  30. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/data_source/action_model/sql_column.py +0 -0
  31. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/data_source/declarative_model/__init__.py +0 -0
  32. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/data_source/declarative_model/data_source.py +0 -0
  33. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/data_source/declarative_model/physical_model/__init__.py +0 -0
  34. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/data_source/declarative_model/physical_model/column.py +0 -0
  35. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/data_source/declarative_model/physical_model/pdm.py +0 -0
  36. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/data_source/declarative_model/physical_model/table.py +0 -0
  37. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/data_source/entity_model/__init__.py +0 -0
  38. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/data_source/entity_model/content_objects/__init__.py +0 -0
  39. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/data_source/entity_model/content_objects/table.py +0 -0
  40. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/data_source/entity_model/data_source.py +0 -0
  41. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/data_source/service.py +0 -0
  42. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/data_source/validation/__init__.py +0 -0
  43. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/data_source/validation/data_source.py +0 -0
  44. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/depends_on.py +0 -0
  45. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/entity.py +0 -0
  46. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/export/__init__.py +0 -0
  47. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/export/service.py +0 -0
  48. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/filter_by.py +0 -0
  49. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/identifier.py +0 -0
  50. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/organization/__init__.py +0 -0
  51. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/organization/entity_model/__init__.py +0 -0
  52. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/organization/entity_model/directive.py +0 -0
  53. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/organization/entity_model/jwk.py +0 -0
  54. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/organization/entity_model/organization.py +0 -0
  55. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/organization/entity_model/setting.py +0 -0
  56. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/organization/service.py +0 -0
  57. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/parameter.py +0 -0
  58. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/permission/__init__.py +0 -0
  59. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/permission/declarative_model/__init__.py +0 -0
  60. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/permission/declarative_model/dashboard_assignees.py +0 -0
  61. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/permission/declarative_model/dashboard_permissions.py +0 -0
  62. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/permission/declarative_model/manage_dashboard_permissions.py +0 -0
  63. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/permission/declarative_model/permission.py +0 -0
  64. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/permission/service.py +0 -0
  65. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/rule.py +0 -0
  66. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/setting.py +0 -0
  67. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/types.py +0 -0
  68. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/user/__init__.py +0 -0
  69. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/user/declarative_model/__init__.py +0 -0
  70. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/user/declarative_model/user.py +0 -0
  71. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/user/declarative_model/user_and_user_groups.py +0 -0
  72. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/user/declarative_model/user_group.py +0 -0
  73. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/user/entity_model/__init__.py +0 -0
  74. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/user/entity_model/user.py +0 -0
  75. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/user/entity_model/user_group.py +0 -0
  76. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/user/management_model/__init__.py +0 -0
  77. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/user/management_model/management.py +0 -0
  78. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/validate_by_item.py +0 -0
  79. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/workspace/__init__.py +0 -0
  80. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/workspace/content_service.py +0 -0
  81. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/workspace/declarative_model/__init__.py +0 -0
  82. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/workspace/declarative_model/workspace/__init__.py +0 -0
  83. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/workspace/declarative_model/workspace/analytics_model/__init__.py +0 -0
  84. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/__init__.py +0 -0
  85. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/data_filter_references.py +0 -0
  86. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/dataset/__init__.py +0 -0
  87. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/dataset/dataset.py +0 -0
  88. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/dataset_extensions/__init__.py +0 -0
  89. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/dataset_extensions/dataset_extension.py +0 -0
  90. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/date_dataset/__init__.py +0 -0
  91. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/date_dataset/date_dataset.py +0 -0
  92. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/ldm.py +0 -0
  93. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/workspace/declarative_model/workspace/workspace.py +0 -0
  94. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/workspace/entity_model/__init__.py +0 -0
  95. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/workspace/entity_model/content_objects/__init__.py +0 -0
  96. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/workspace/entity_model/content_objects/dataset.py +0 -0
  97. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/workspace/entity_model/content_objects/metric.py +0 -0
  98. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/workspace/entity_model/content_objects/workspace_setting.py +0 -0
  99. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/workspace/entity_model/graph_objects/__init__.py +0 -0
  100. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/workspace/entity_model/graph_objects/graph.py +0 -0
  101. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/workspace/entity_model/user_data_filter.py +0 -0
  102. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/workspace/entity_model/workspace.py +0 -0
  103. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/workspace/model_container.py +0 -0
  104. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/catalog/workspace/service.py +0 -0
  105. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/cli/__init__.py +0 -0
  106. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/cli/clone.py +0 -0
  107. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/cli/constants.py +0 -0
  108. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/cli/deploy.py +0 -0
  109. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/cli/gdc_core.py +0 -0
  110. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/cli/package.json +0 -0
  111. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/cli/utils.py +0 -0
  112. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/client.py +0 -0
  113. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/compute/__init__.py +0 -0
  114. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/compute/compute_to_sdk_converter.py +0 -0
  115. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/compute/model/__init__.py +0 -0
  116. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/compute/model/attribute.py +0 -0
  117. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/compute/model/base.py +0 -0
  118. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/compute/model/execution.py +0 -0
  119. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/compute/model/filter.py +0 -0
  120. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/compute/model/metric.py +0 -0
  121. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/compute/service.py +0 -0
  122. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/config.py +0 -0
  123. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/py.typed +0 -0
  124. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/sdk.py +0 -0
  125. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/support.py +0 -0
  126. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/table.py +0 -0
  127. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/type_converter.py +0 -0
  128. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk/utils.py +0 -0
  129. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk.egg-info/dependency_links.txt +0 -0
  130. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/gooddata_sdk.egg-info/top_level.txt +0 -0
  131. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/setup.cfg +0 -0
  132. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/tests/test_client.py +0 -0
  133. {gooddata_sdk-1.28.1.dev4 → gooddata_sdk-1.28.1.dev6}/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.28.1.dev4
3
+ Version: 1.28.1.dev6
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.28.1.dev4
8
+ Project-URL: Documentation, https://www.gooddata.com/docs/python-sdk/1.28.1.dev6
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
@@ -22,7 +22,7 @@ Classifier: Typing :: Typed
22
22
  Requires-Python: >=3.9.0
23
23
  Description-Content-Type: text/markdown
24
24
  License-File: LICENSE.txt
25
- Requires-Dist: gooddata-api-client~=1.28.1.dev4
25
+ Requires-Dist: gooddata-api-client~=1.28.1.dev6
26
26
  Requires-Dist: python-dateutil>=2.5.3
27
27
  Requires-Dist: pyyaml>=5.1
28
28
  Requires-Dist: attrs<=24.2.0,>=21.4.0
@@ -46,7 +46,7 @@ At the moment the SDK provides services to inspect and interact with the Semanti
46
46
  * Compute Service
47
47
  * Table Service
48
48
 
49
- See [DOCUMENTATION](https://www.gooddata.com/docs/python-sdk/1.28.1.dev4) for more details.
49
+ See [DOCUMENTATION](https://www.gooddata.com/docs/python-sdk/1.28.1.dev6) for more details.
50
50
 
51
51
  ## Requirements
52
52
 
@@ -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.28.1.dev4) for more details.
16
+ See [DOCUMENTATION](https://www.gooddata.com/docs/python-sdk/1.28.1.dev6) for more details.
17
17
 
18
18
  ## Requirements
19
19
 
@@ -135,6 +135,10 @@ from gooddata_sdk.catalog.workspace.declarative_model.workspace.analytics_model.
135
135
  CatalogDeclarativeAnalytics,
136
136
  CatalogDeclarativeMetric,
137
137
  )
138
+ from gooddata_sdk.catalog.workspace.declarative_model.workspace.analytics_model.export_definition import (
139
+ CatalogDeclarativeExportDefinition,
140
+ CatalogDeclarativeExportDefinitionRequestPayload,
141
+ )
138
142
  from gooddata_sdk.catalog.workspace.declarative_model.workspace.logical_model.data_filter_references import (
139
143
  CatalogDeclarativeWorkspaceDataFilterReferences,
140
144
  )
@@ -63,8 +63,8 @@ class ExportRequest(Base):
63
63
  """
64
64
 
65
65
  format: str
66
- execution_result: str
67
66
  file_name: str
67
+ execution_result: Optional[str] = None
68
68
  settings: Optional[ExportSettings] = None
69
69
  custom_override: Optional[ExportCustomOverride] = None
70
70
 
@@ -0,0 +1,12 @@
1
+ # (C) 2024 GoodData Corporation
2
+ from typing import Optional
3
+
4
+ from attrs import define
5
+
6
+ from gooddata_sdk.catalog.base import Base
7
+
8
+
9
+ @define(auto_attribs=True, kw_only=True)
10
+ class CatalogApiToken(Base):
11
+ id: str
12
+ bearer_token: Optional[str] = None
@@ -5,11 +5,14 @@ import functools
5
5
  from pathlib import Path
6
6
 
7
7
  from gooddata_api_client.exceptions import NotFoundException
8
+ from gooddata_api_client.model.json_api_api_token_in import JsonApiApiTokenIn
9
+ from gooddata_api_client.model.json_api_api_token_in_document import JsonApiApiTokenInDocument
8
10
 
9
11
  from gooddata_sdk.catalog.catalog_service_base import CatalogServiceBase
10
12
  from gooddata_sdk.catalog.user.declarative_model.user import CatalogDeclarativeUsers
11
13
  from gooddata_sdk.catalog.user.declarative_model.user_and_user_groups import CatalogDeclarativeUsersUserGroups
12
14
  from gooddata_sdk.catalog.user.declarative_model.user_group import CatalogDeclarativeUserGroups
15
+ from gooddata_sdk.catalog.user.entity_model.api_token import CatalogApiToken
13
16
  from gooddata_sdk.catalog.user.entity_model.user import CatalogUser, CatalogUserDocument
14
17
  from gooddata_sdk.catalog.user.entity_model.user_group import CatalogUserGroup, CatalogUserGroupDocument
15
18
  from gooddata_sdk.catalog.user.management_model.management import (
@@ -391,3 +394,26 @@ class CatalogUserService(CatalogServiceBase):
391
394
 
392
395
  def revoke_permissions_bulk(self, permissions_assignment: CatalogPermissionsAssignment) -> None:
393
396
  self._user_management_api.revoke_permissions(permissions_assignment.to_api())
397
+
398
+ def list_user_api_tokens(self, user_id: str) -> list[CatalogApiToken]:
399
+ get_api_tokens = functools.partial(
400
+ self._entities_api.get_all_entities_api_tokens,
401
+ user_id,
402
+ _check_return_type=False,
403
+ )
404
+ api_tokens = load_all_entities(get_api_tokens)
405
+ return [CatalogApiToken(id=v["id"]) for v in api_tokens.data]
406
+
407
+ def create_user_api_token(self, user_id: str, api_token_id: str) -> CatalogApiToken:
408
+ document = JsonApiApiTokenInDocument(data=JsonApiApiTokenIn(id=api_token_id, type="apiToken"))
409
+ api_token = self._entities_api.create_entity_api_tokens(user_id, document, _check_return_type=False)
410
+ v = api_token.data
411
+ return CatalogApiToken(id=v["id"], bearer_token=v.get("attributes", {}).get("bearerToken"))
412
+
413
+ def get_user_api_token(self, user_id: str, api_token_id: str) -> CatalogApiToken:
414
+ api_token = self._entities_api.get_entity_api_tokens(user_id, api_token_id, _check_return_type=False)
415
+ v = api_token.data
416
+ return CatalogApiToken(id=v["id"])
417
+
418
+ def delete_user_api_token(self, user_id: str, api_token_id: str) -> None:
419
+ self._entities_api.delete_entity_api_tokens(user_id, api_token_id)
@@ -2,9 +2,10 @@
2
2
  from __future__ import annotations
3
3
 
4
4
  from pathlib import Path
5
- from typing import Any, Optional, TypeVar, Union
5
+ from typing import Any, Optional, Union
6
6
 
7
7
  import attr
8
+ from attrs import define
8
9
  from cattrs import global_converter, structure
9
10
  from gooddata_api_client.model.declarative_analytical_dashboard import DeclarativeAnalyticalDashboard
10
11
  from gooddata_api_client.model.declarative_analytical_dashboard_extension import DeclarativeAnalyticalDashboardExtension
@@ -17,14 +18,19 @@ from gooddata_api_client.model.declarative_metric import DeclarativeMetric
17
18
  from gooddata_api_client.model.declarative_visualization_object import DeclarativeVisualizationObject
18
19
 
19
20
  from gooddata_sdk.catalog.base import Base
20
- from gooddata_sdk.catalog.identifier import CatalogUserIdentifier
21
21
  from gooddata_sdk.catalog.permission.declarative_model.permission import (
22
22
  CatalogDeclarativeDashboardPermissionsForAssignee,
23
23
  CatalogDeclarativeDashboardPermissionsForAssigneeRule,
24
24
  )
25
- from gooddata_sdk.utils import create_directory, get_sorted_yaml_files, read_layout_from_file, write_layout_to_file
25
+ from gooddata_sdk.catalog.workspace.declarative_model.workspace.analytics_model.base import (
26
+ CatalogAnalyticsBase,
27
+ CatalogAnalyticsObjectBase,
28
+ )
29
+ from gooddata_sdk.catalog.workspace.declarative_model.workspace.analytics_model.export_definition import (
30
+ CatalogDeclarativeExportDefinition,
31
+ )
32
+ from gooddata_sdk.utils import create_directory, get_sorted_yaml_files
26
33
 
27
- T = TypeVar("T", bound="CatalogAnalyticsObjectBase")
28
34
  AnalyticsObjects = Union[
29
35
  DeclarativeAnalyticalDashboard,
30
36
  DeclarativeDashboardPlugin,
@@ -41,6 +47,7 @@ LAYOUT_FILTER_CONTEXTS_DIR = "filter_contexts"
41
47
  LAYOUT_METRICS_DIR = "metrics"
42
48
  LAYOUT_VISUALIZATION_OBJECTS_DIR = "visualization_objects"
43
49
  ATTRIBUTE_HIERARCHY_OBJECTS_DIR = "attribute_hierarchy_objects"
50
+ EXPORT_DEFINITION_DIR = "export_definitions"
44
51
 
45
52
 
46
53
  @attr.s(auto_attribs=True, kw_only=True)
@@ -70,7 +77,7 @@ class CatalogDeclarativeAnalyticsLayer(Base):
70
77
  filter_contexts: list[CatalogDeclarativeFilterContext] = attr.field(factory=list)
71
78
  metrics: list[CatalogDeclarativeMetric] = attr.field(factory=list)
72
79
  visualization_objects: list[CatalogDeclarativeVisualizationObject] = attr.field(factory=list)
73
- export_definitions: list[dict] = attr.field(factory=list)
80
+ export_definitions: list[CatalogDeclarativeExportDefinition] = attr.field(factory=list)
74
81
 
75
82
  @staticmethod
76
83
  def client_class() -> type[DeclarativeAnalyticsLayer]:
@@ -124,6 +131,12 @@ class CatalogDeclarativeAnalyticsLayer(Base):
124
131
  create_directory(folder)
125
132
  return folder
126
133
 
134
+ @staticmethod
135
+ def get_export_definition_dif(analytics_model_folder: Path) -> Path:
136
+ folder = analytics_model_folder / EXPORT_DEFINITION_DIR
137
+ create_directory(folder)
138
+ return folder
139
+
127
140
  def store_to_disk(self, workspace_folder: Path) -> None:
128
141
  analytics_model_folder = self.get_analytics_model_folder(workspace_folder)
129
142
 
@@ -134,6 +147,7 @@ class CatalogDeclarativeAnalyticsLayer(Base):
134
147
  metrics_folder = self.get_metrics_folder(analytics_model_folder)
135
148
  visualization_objects_folder = self.get_visualization_objects_folder(analytics_model_folder)
136
149
  attribute_hierarchy_folder = self.get_attribute_hierarchy_folder(analytics_model_folder)
150
+ export_definition_folder = self.get_export_definition_dif(analytical_dashboards_folder)
137
151
 
138
152
  for analytical_dashboard in self.analytical_dashboards:
139
153
  analytical_dashboard.store_to_disk(analytical_dashboards_folder)
@@ -156,6 +170,9 @@ class CatalogDeclarativeAnalyticsLayer(Base):
156
170
  for attribute_hierarchy in self.attribute_hierarchies:
157
171
  attribute_hierarchy.store_to_disk(attribute_hierarchy_folder)
158
172
 
173
+ for export_definition in self.export_definitions:
174
+ export_definition.store_to_disk(export_definition_folder)
175
+
159
176
  @classmethod
160
177
  def load_from_disk(cls, workspace_folder: Path) -> CatalogDeclarativeAnalyticsLayer:
161
178
  analytics_model_folder = cls.get_analytics_model_folder(workspace_folder)
@@ -166,6 +183,7 @@ class CatalogDeclarativeAnalyticsLayer(Base):
166
183
  metrics_folder = cls.get_metrics_folder(analytics_model_folder)
167
184
  visualization_objects_folder = cls.get_visualization_objects_folder(analytics_model_folder)
168
185
  attribute_hierarchy_folder = cls.get_attribute_hierarchy_folder(analytics_model_folder)
186
+ export_definition_folder = cls.get_export_definition_dif(analytical_dashboards_folder)
169
187
 
170
188
  analytical_dashboard_files = get_sorted_yaml_files(analytical_dashboards_folder)
171
189
  analytical_dashboard_extension_files = get_sorted_yaml_files(analytical_dashboard_extensions_folder)
@@ -174,6 +192,7 @@ class CatalogDeclarativeAnalyticsLayer(Base):
174
192
  metric_files = get_sorted_yaml_files(metrics_folder)
175
193
  visualization_object_files = get_sorted_yaml_files(visualization_objects_folder)
176
194
  attribute_hierarchy_files = get_sorted_yaml_files(attribute_hierarchy_folder)
195
+ export_definition_files = get_sorted_yaml_files(export_definition_folder)
177
196
 
178
197
  analytical_dashboards = [
179
198
  CatalogDeclarativeAnalyticalDashboard.load_from_disk(analytical_dashboard_file)
@@ -200,6 +219,10 @@ class CatalogDeclarativeAnalyticsLayer(Base):
200
219
  CatalogDeclarativeAttributeHierarchy.load_from_disk(attribute_hierarchy_file)
201
220
  for attribute_hierarchy_file in attribute_hierarchy_files
202
221
  ]
222
+ export_definitions = [
223
+ CatalogDeclarativeExportDefinition.load_from_disk(export_definition_file)
224
+ for export_definition_file in export_definition_files
225
+ ]
203
226
  return cls(
204
227
  analytical_dashboards=analytical_dashboards,
205
228
  analytical_dashboard_extensions=analytical_dashboard_extensions,
@@ -208,41 +231,12 @@ class CatalogDeclarativeAnalyticsLayer(Base):
208
231
  filter_contexts=filter_contexts,
209
232
  metrics=metrics,
210
233
  visualization_objects=visualization_objects,
234
+ export_definitions=export_definitions,
211
235
  )
212
236
 
213
237
 
214
- @attr.s(auto_attribs=True, kw_only=True)
215
- class CatalogAnalyticsObjectBase(Base):
216
- id: str
217
-
218
- def store_to_disk(self, analytics_folder: Path) -> None:
219
- analytics_file = analytics_folder / f"{self.id}.yaml"
220
- write_layout_to_file(analytics_file, self.to_api().to_dict(camel_case=True))
221
-
222
- @classmethod
223
- def load_from_disk(cls: type[T], analytics_file: Path) -> T:
224
- analytics_layout = read_layout_from_file(analytics_file)
225
- return cls.from_dict(analytics_layout)
226
-
227
-
228
- @attr.s(auto_attribs=True, kw_only=True)
229
- class CatalogAnalyticsBase(CatalogAnalyticsObjectBase):
230
- title: str
231
- content: dict[str, Any]
232
- description: Optional[str] = None
233
- tags: Optional[list[str]] = None
234
-
235
-
236
- @attr.s(auto_attribs=True, kw_only=True)
237
- class CatalogAnalyticsBaseMeta(CatalogAnalyticsBase):
238
- created_at: Optional[str] = None
239
- created_by: Optional[CatalogUserIdentifier] = None
240
- modified_at: Optional[str] = None
241
- modified_by: Optional[CatalogUserIdentifier] = None
242
-
243
-
244
- @attr.s(auto_attribs=True, kw_only=True)
245
- class CatalogDeclarativeAnalyticalDashboard(CatalogAnalyticsBaseMeta):
238
+ @define(auto_attribs=True, kw_only=True)
239
+ class CatalogDeclarativeAnalyticalDashboard(CatalogAnalyticsBase):
246
240
  permissions: Optional[
247
241
  list[
248
242
  Union[
@@ -274,7 +268,7 @@ global_converter.register_structure_hook(
274
268
 
275
269
 
276
270
  @attr.s(auto_attribs=True, kw_only=True)
277
- class CatalogDeclarativeDashboardPlugin(CatalogAnalyticsBaseMeta):
271
+ class CatalogDeclarativeDashboardPlugin(CatalogAnalyticsBase):
278
272
  @staticmethod
279
273
  def client_class() -> type[DeclarativeDashboardPlugin]:
280
274
  return DeclarativeDashboardPlugin
@@ -299,21 +293,21 @@ class CatalogDeclarativeFilterContext(CatalogAnalyticsBase):
299
293
 
300
294
 
301
295
  @attr.s(auto_attribs=True, kw_only=True)
302
- class CatalogDeclarativeMetric(CatalogAnalyticsBaseMeta):
296
+ class CatalogDeclarativeMetric(CatalogAnalyticsBase):
303
297
  @staticmethod
304
298
  def client_class() -> type[DeclarativeMetric]:
305
299
  return DeclarativeMetric
306
300
 
307
301
 
308
302
  @attr.s(auto_attribs=True, kw_only=True)
309
- class CatalogDeclarativeVisualizationObject(CatalogAnalyticsBaseMeta):
303
+ class CatalogDeclarativeVisualizationObject(CatalogAnalyticsBase):
310
304
  @staticmethod
311
305
  def client_class() -> type[DeclarativeVisualizationObject]:
312
306
  return DeclarativeVisualizationObject
313
307
 
314
308
 
315
309
  @attr.s(auto_attribs=True, kw_only=True)
316
- class CatalogDeclarativeAttributeHierarchy(CatalogAnalyticsBaseMeta):
310
+ class CatalogDeclarativeAttributeHierarchy(CatalogAnalyticsBase):
317
311
  @staticmethod
318
312
  def client_class() -> type[DeclarativeAttributeHierarchy]:
319
313
  return DeclarativeAttributeHierarchy
@@ -0,0 +1,41 @@
1
+ # (C) 2024 GoodData Corporation
2
+ from pathlib import Path
3
+ from typing import Any, Optional, TypeVar
4
+
5
+ from attrs import define
6
+
7
+ from gooddata_sdk.catalog.base import Base
8
+ from gooddata_sdk.catalog.identifier import CatalogUserIdentifier
9
+ from gooddata_sdk.utils import read_layout_from_file, write_layout_to_file
10
+
11
+ T = TypeVar("T", bound="CatalogAnalyticsObjectBase")
12
+
13
+
14
+ @define(auto_attribs=True, kw_only=True)
15
+ class CatalogAnalyticsObjectBase(Base):
16
+ id: str
17
+
18
+ def store_to_disk(self, analytics_folder: Path) -> None:
19
+ analytics_file = analytics_folder / f"{self.id}.yaml"
20
+ write_layout_to_file(analytics_file, self.to_api().to_dict(camel_case=True))
21
+
22
+ @classmethod
23
+ def load_from_disk(cls: type[T], analytics_file: Path) -> T:
24
+ analytics_layout = read_layout_from_file(analytics_file)
25
+ return cls.from_dict(analytics_layout)
26
+
27
+
28
+ @define(auto_attribs=True, kw_only=True)
29
+ class CatalogAnalyticsBaseMeta(CatalogAnalyticsObjectBase):
30
+ created_at: Optional[str] = None
31
+ created_by: Optional[CatalogUserIdentifier] = None
32
+ modified_at: Optional[str] = None
33
+ modified_by: Optional[CatalogUserIdentifier] = None
34
+
35
+
36
+ @define(auto_attribs=True, kw_only=True)
37
+ class CatalogAnalyticsBase(CatalogAnalyticsBaseMeta):
38
+ title: str
39
+ content: dict[str, Any]
40
+ description: Optional[str] = None
41
+ tags: Optional[list[str]] = None
@@ -0,0 +1,43 @@
1
+ # (C) 2024 GoodData Corporation
2
+ from typing import Optional
3
+
4
+ from attrs import define
5
+ from gooddata_api_client.model.declarative_export_definition import DeclarativeExportDefinition
6
+ from gooddata_api_client.model.declarative_export_definition_request_payload import (
7
+ DeclarativeExportDefinitionRequestPayload,
8
+ )
9
+
10
+ from gooddata_sdk import ExportCustomOverride, ExportSettings
11
+ from gooddata_sdk.catalog.base import Base
12
+ from gooddata_sdk.catalog.workspace.declarative_model.workspace.analytics_model.base import CatalogAnalyticsBaseMeta
13
+
14
+
15
+ @define(auto_attribs=True, kw_only=True)
16
+ class CatalogDeclarativeExportDefinitionRequestPayload(Base):
17
+ custom_override: Optional[ExportCustomOverride] = None
18
+ execution_result: Optional[str] = None
19
+ metadata: Optional[dict] = None
20
+ related_dashboard_id: Optional[str] = None
21
+ settings: Optional[ExportSettings] = None
22
+ visualization_object: Optional[str] = None
23
+ visualization_object_custom_filters: Optional[list[dict]] = None
24
+ file_name: Optional[str] = None
25
+ format: Optional[str] = None
26
+ dashboard_id: Optional[str] = None
27
+
28
+ @staticmethod
29
+ def client_class() -> type[DeclarativeExportDefinitionRequestPayload]:
30
+ return DeclarativeExportDefinitionRequestPayload
31
+
32
+
33
+ @define(auto_attribs=True, kw_only=True)
34
+ class CatalogDeclarativeExportDefinition(CatalogAnalyticsBaseMeta):
35
+ id: str
36
+ title: str
37
+ request_payload: CatalogDeclarativeExportDefinitionRequestPayload
38
+ description: Optional[str] = None
39
+ tags: Optional[list[str]] = None
40
+
41
+ @staticmethod
42
+ def client_class() -> type[DeclarativeExportDefinition]:
43
+ return DeclarativeExportDefinition
@@ -440,6 +440,38 @@ class VisualizationFilter:
440
440
  return repr(self._filter)
441
441
 
442
442
 
443
+ class VisualizationAttributeFilterConfig:
444
+ """
445
+ Represents attribute filter configuration used by a visualization.
446
+ """
447
+
448
+ def __init__(self, afc: tuple[str, Any]) -> None:
449
+ local_id, data = afc
450
+ self._local_id = local_id
451
+ self._data = data
452
+
453
+ @property
454
+ def local_id(self) -> str:
455
+ return self._local_id
456
+
457
+ @property
458
+ def label_id(self) -> str:
459
+ return self._data["displayAsLabel"]["identifier"]["id"]
460
+
461
+ @property
462
+ def type(self) -> str:
463
+ return self._data["displayAsLabel"]["identifier"]["type"]
464
+
465
+ def __str__(self) -> str:
466
+ return self.__repr__()
467
+
468
+ def __repr__(self) -> str:
469
+ return (
470
+ f"VisualizationAttributeFilterConfig(local_id='{self.local_id}', label_id='{self.label_id}', "
471
+ f"type='{self.type}')"
472
+ )
473
+
474
+
443
475
  class VisualizationSortLocator:
444
476
  def __init__(self, locator: dict[str, str], locator_type: LocatorItemType) -> None:
445
477
  self._locator = locator
@@ -546,6 +578,7 @@ class Visualization:
546
578
  side_loads: Optional[SideLoads] = None,
547
579
  ) -> None:
548
580
  self._vo = from_vis_obj
581
+ self._attribute_filter_configs: Optional[list[VisualizationAttributeFilterConfig]] = None
549
582
  self._buckets: Optional[list[VisualizationBucket]] = None
550
583
  self._filters: Optional[list[VisualizationFilter]] = None
551
584
  self._sorts: Optional[list[VisualizationSort]] = None
@@ -568,6 +601,15 @@ class Visualization:
568
601
  # Fallback to true for tests, where fixtures were generated without HTTP header activating this feature
569
602
  return self._vo["attributes"].get("areRelationsValid", "true")
570
603
 
604
+ @property
605
+ def attribute_filter_configs(self) -> Optional[list[VisualizationAttributeFilterConfig]]:
606
+ visualization_attribute_filter_configs = safeget(self._vo, ["attributes", "content", "attributeFilterConfigs"])
607
+ if self._attribute_filter_configs is None and visualization_attribute_filter_configs is not None:
608
+ self._attribute_filter_configs = [
609
+ VisualizationAttributeFilterConfig(afc) for afc in visualization_attribute_filter_configs.items()
610
+ ]
611
+ return self._attribute_filter_configs
612
+
571
613
  @property
572
614
  def buckets(self) -> list[VisualizationBucket]:
573
615
  if self._buckets is None:
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: gooddata-sdk
3
- Version: 1.28.1.dev4
3
+ Version: 1.28.1.dev6
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.28.1.dev4
8
+ Project-URL: Documentation, https://www.gooddata.com/docs/python-sdk/1.28.1.dev6
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
@@ -22,7 +22,7 @@ Classifier: Typing :: Typed
22
22
  Requires-Python: >=3.9.0
23
23
  Description-Content-Type: text/markdown
24
24
  License-File: LICENSE.txt
25
- Requires-Dist: gooddata-api-client~=1.28.1.dev4
25
+ Requires-Dist: gooddata-api-client~=1.28.1.dev6
26
26
  Requires-Dist: python-dateutil>=2.5.3
27
27
  Requires-Dist: pyyaml>=5.1
28
28
  Requires-Dist: attrs<=24.2.0,>=21.4.0
@@ -46,7 +46,7 @@ At the moment the SDK provides services to inspect and interact with the Semanti
46
46
  * Compute Service
47
47
  * Table Service
48
48
 
49
- See [DOCUMENTATION](https://www.gooddata.com/docs/python-sdk/1.28.1.dev4) for more details.
49
+ See [DOCUMENTATION](https://www.gooddata.com/docs/python-sdk/1.28.1.dev6) for more details.
50
50
 
51
51
  ## Requirements
52
52
 
@@ -77,6 +77,7 @@ gooddata_sdk/catalog/user/declarative_model/user.py
77
77
  gooddata_sdk/catalog/user/declarative_model/user_and_user_groups.py
78
78
  gooddata_sdk/catalog/user/declarative_model/user_group.py
79
79
  gooddata_sdk/catalog/user/entity_model/__init__.py
80
+ gooddata_sdk/catalog/user/entity_model/api_token.py
80
81
  gooddata_sdk/catalog/user/entity_model/user.py
81
82
  gooddata_sdk/catalog/user/entity_model/user_group.py
82
83
  gooddata_sdk/catalog/user/management_model/__init__.py
@@ -90,6 +91,8 @@ gooddata_sdk/catalog/workspace/declarative_model/workspace/__init__.py
90
91
  gooddata_sdk/catalog/workspace/declarative_model/workspace/workspace.py
91
92
  gooddata_sdk/catalog/workspace/declarative_model/workspace/analytics_model/__init__.py
92
93
  gooddata_sdk/catalog/workspace/declarative_model/workspace/analytics_model/analytics_model.py
94
+ gooddata_sdk/catalog/workspace/declarative_model/workspace/analytics_model/base.py
95
+ gooddata_sdk/catalog/workspace/declarative_model/workspace/analytics_model/export_definition.py
93
96
  gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/__init__.py
94
97
  gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/data_filter_references.py
95
98
  gooddata_sdk/catalog/workspace/declarative_model/workspace/logical_model/ldm.py
@@ -1,4 +1,4 @@
1
- gooddata-api-client~=1.28.1.dev4
1
+ gooddata-api-client~=1.28.1.dev6
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.28.1.dev4",
10
+ "gooddata-api-client~=1.28.1.dev6",
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.28.1.dev4",
25
+ version="1.28.1.dev6",
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.28.1.dev4",
39
+ "Documentation": "https://www.gooddata.com/docs/python-sdk/1.28.1.dev6",
40
40
  "Source": "https://github.com/gooddata/gooddata-python-sdk",
41
41
  },
42
42
  classifiers=[