STASHED PYTHON TABS

---------- connect-data.md

{{% content-block title="Python" %}}

Connect to our sample Snowflake database using the following Python code, substitude `<HOST_URL>` and `<API_TOKEN>` with your own values:

```bash
from gooddata_sdk import GoodDataSdk, CatalogDataSource, BasicCredentials

host = "<HOST_URL>"
token = "<API_TOKEN>"
sdk = GoodDataSdk.create(host, token)

# Create (or update) a data source using a general interface. 
# It can be used for any type of data source.
# If a data source already exists, it is updated.
sdk.catalog_data_source.create_or_update_data_source(
    CatalogDataSource(
        id="demo-ds",
        name="Demo Snowflake DB",
        data_source_type="SNOWFLAKE",
        url="jdbc:snowflake://gooddata.snowflakecomputing.com?warehouse=GOODDATA_DEMO_WAREHOUSE&db=GOODDATA_DEMO_DATABASE",
        schema="ECOMMERCE_DEMO_SCHEMA",
        credentials=BasicCredentials(
            username="gooddata_demo",
            password="4m62f7hSXAayAisZ",
        ),
        enable_caching=False,
        url_params=[("param", "value")]
    )
)
```

To confirm that the database has been connected, you can run the following code:

```bash
from gooddata_sdk import GoodDataSdk

host = "<HOST_URL>"
token = "<API_TOKEN>"
sdk = GoodDataSdk.create(host, token)

# Get a single data source
data_sources = sdk.catalog_data_source.get_data_source('demo-ds')
```

{{% /content-block %}}


---------- build-ldm.md

{{% content-block title="Python" %}}
Once you create a LDM, you can use Python code to work with it. The following examples show some simple use cases.
```bash
from gooddata_sdk import GoodDataSdk, CatalogWorkspace

# GoodData host in the form of uri, e.g. "https://*.gooddata.com" (GoodData Cloud), 
# or "http://localhost:3000" (GoodData Cloud Native)
host = "<GOODDATA_URI>"
# GoodData API token
token = "<API_TOKEN>"
workspace_id = "<WORKSPACE_ID>"
another_workspace_id = "<DIFFERENT_WORKSPACE_ID>"
sdk = GoodDataSdk.create(host, token)

# Get LDM from GoodData
declarative_ldm = sdk.catalog_workspace_content.get_declarative_ldm(workspace_id)

# You can put LDM in a different workspace
sdk.catalog_workspace_content.put_declarative_ldm(another_workspace_id, declarative_ldm)

# Save LDM to a file and version in git
sdk.catalog_workspace_content.store_declarative_ldm(workspace_id)
```

Check the [Python SDK](../../api-and-sdk/python-sdk/) documentation for further details.
{{% /content-block %}}


---------- create-workspace.md

{{% content-block title="Python" %}}

Create a new workspace using Python code:

```python
from gooddata_sdk import GoodDataSdk, CatalogWorkspace

# For example: https://buff-emu.trial.cloud.gooddata.com/
host = "<HOST_URL>"
# For example: OTk3NjRlNTktMsZXg6R1JlaXJ1SUVLvU1VzYlkyZGswenM4MEU5dTgyc1M
token = "<API_TOKEN>"
sdk = GoodDataSdk.create(host, token)

# Create a new workspace entity locally
my_workspace_object = CatalogWorkspace("demoId", name="Demo")

# Create a workspace
sdk.catalog_workspace.create_or_update(my_workspace_object)
```

You can also get a list of workspaces to confirm that the workspace has been created:

```bash
# List workspaces
workspaces = sdk.catalog_workspace.list_workspaces()

print(workspaces)

# Output might look like this:
# [
#   CatalogWorkspace(id=demoId, name=Demo),
# ]
```
{{% /content-block %}}