Skip to content

Commit 00f8651

Browse files
committed
feat: add AAC YAML support, replace Node.js CLI
Add native support for Analytics-as-Code (AAC) YAMLs in the Python SDK, replacing the experimental Node.js-based gdc CLI with a pure Python implementation using the gooddata-code-convertors WASM package. - New aac.py module with individual conversion functions and workspace-level load/store for all supported AAC types (datasets, metrics, visualizations, dashboards, plugins, attribute hierarchies) - Rewritten gdc CLI: no npm/Node.js dependency, reads gooddata.yaml directly - Config alignment: SDK now understands VSCode plugin config fields (workspace_id, data_source, source_dir) - Extended CatalogWorkspaceService with load_and_put_aac_workspace and get_and_store_aac_workspace methods - 24 tests covering conversions, format detection, config parsing, and CLI JIRA: DX-326 risk: low
1 parent 35605f6 commit 00f8651

22 files changed

Lines changed: 1228 additions & 196 deletions

File tree

packages/gooddata-sdk/pyproject.toml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ dependencies = [
3434
"brotli==1.2.0",
3535
"requests~=2.32.0",
3636
"python-dotenv>=1.0.0,<2.0.0",
37+
"gooddata-code-convertors",
3738
]
3839
classifiers = [
3940
"Development Status :: 5 - Production/Stable",
@@ -75,9 +76,6 @@ allowed-unresolved-imports = ["gooddata_api_client.**"]
7576

7677
[tool.hatch.build.targets.wheel]
7778
packages = ["src/gooddata_sdk"]
78-
include = [
79-
"src/gooddata_sdk/cli/package.json",
80-
]
8179

8280
[tool.coverage.run]
8381
source = ["gooddata_sdk"]

packages/gooddata-sdk/src/gooddata_sdk/__init__.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,25 @@
180180
CatalogWorkspacePermissionAssignment,
181181
)
182182
from gooddata_sdk.catalog.validate_by_item import CatalogValidateByItem
183+
from gooddata_sdk.catalog.workspace.aac import (
184+
aac_attribute_hierarchy_to_declarative,
185+
aac_dashboard_to_declarative,
186+
aac_dataset_to_declarative,
187+
aac_date_dataset_to_declarative,
188+
aac_metric_to_declarative,
189+
aac_plugin_to_declarative,
190+
aac_visualization_to_declarative,
191+
declarative_attribute_hierarchy_to_aac,
192+
declarative_dashboard_to_aac,
193+
declarative_dataset_to_aac,
194+
declarative_date_instance_to_aac,
195+
declarative_metric_to_aac,
196+
declarative_plugin_to_aac,
197+
declarative_visualization_to_aac,
198+
detect_yaml_format,
199+
load_aac_workspace_from_disk,
200+
store_aac_workspace_to_disk,
201+
)
183202
from gooddata_sdk.catalog.workspace.content_service import CatalogWorkspaceContent, CatalogWorkspaceContentService
184203
from gooddata_sdk.catalog.workspace.declarative_model.workspace.analytics_model.analytics_model import (
185204
CatalogDeclarativeAnalytics,

0 commit comments

Comments
 (0)