Skip to main content

A simple REST API Client for Apache-Superset in Python

Project description

superset-python-client

License PyPI version Coverage Status

A Python Client for Apache Superset REST API.

This is a Alpha version. Stability is not guaranteed.

Usage

Setup a superset client:

from supersetapiclient.client import SupersetClient

client = SupersetClient(
    host="http://localhost:8080",
    username="admin",
    password="admin",
)

When developping in local (only), you may need to accept insecure transport (i.e. http). This is NOT recommanded outside of local development environement, that is requesting localhost.

import os

os.environ['OAUTHLIB_INSECURE_TRANSPORT'] = '1'

Quickstart

Get all dashboards or find one by name:

# Get all dashboards
dashboards = client.dashboards.find()

# Get a dashboard by name
dashboard = client.dashboards.find(dashboard_title="Example")[0]

To delete a dashboard:

dashboard.delete()

Update dashboard colors, some properties and save changes to server:

# Update label_colors mapping
print(dashboard.colors)
dashboard.update_colors({
    "label": "#fcba03"
})
print(dashboard.colors)

# Change dashboard title
dashboard.dashboard_title = "New title"

# Save all changes
dashboard.save()

Get the embed configuration for a dashboard:

embed = dashboard.get_embed()

Create the embed configuration for a dashboard:

embed = dashboard.create_embed(allowed_domains=[])

Copy a dashboard:

dashboard_copy = dashboard.copy_dashboard(dashboard_payload={
    "css": "",
    "dashboard_title": "your-new-dashboard-title",
    "duplicate_slices": False,
    "json_metadata": "{}",
})

Export one ore more dashboard

You may export one or more dashboard user client.dashboards or directly on a dashboard object

# Export many dashboards
client.dashboards.export(
    # Set dashboard ids you would like to export
    [
        1,
        2
    ],
    "./dashboards.json" # A string or a path-like object where export will be saved
)

# Export one dashboard
dashboard.export(
    "./dashboard.json"
)

This functionality is also available in the same manner for datasets

CSS Templates

# Get all CSS Templates
css_templates = client.css_templates.find()

# Get a CSS Template by name
css_template = client.css_templates.find(template_name="Flat")[0]

# Retrieve the CSS of a CSS Template
css = css_template.css

Retrieve a Guest Token

You can retrieve a guest token using the guest_token method. This method requires the UUID of the resource (e.g., dashboard) and uses the user's first name, last name, and username from the client instance.

# Retrieve a guest token
guest_token = client.guest_token(uuid="your-example-uuid")

Contributing

Before committing to this repository, you must have pre-commit installed, and install the following pre-commit hooks:

pre-commit install --install-hooks -t pre-commit -t pre-push

Setting up a development envi

You will need Docker and docker-compose in order to run development environment. To start development environment run:

    docker-compose up -d

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

superset_python_client-1.1.3.tar.gz (15.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

superset_python_client-1.1.3-py3-none-any.whl (18.8 kB view details)

Uploaded Python 3

File details

Details for the file superset_python_client-1.1.3.tar.gz.

File metadata

  • Download URL: superset_python_client-1.1.3.tar.gz
  • Upload date:
  • Size: 15.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.7 Linux/6.5.0-1025-azure

File hashes

Hashes for superset_python_client-1.1.3.tar.gz
Algorithm Hash digest
SHA256 e841faf7ee30ab0918ab2e18bb91e4b77ea4d6a5e3e1425f53c33ad13d2a81b1
MD5 f765367fc623b79cb606df7a79e1be3b
BLAKE2b-256 5f8f18865143af87118ff9809a1a821d6798124b65fd13d782f5e2380576baf7

See more details on using hashes here.

File details

Details for the file superset_python_client-1.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for superset_python_client-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 8a1d5adbcea29d0c55d2b35188e6a702ded3e331a6e8db6939d396796dc80dda
MD5 d4107d0154ee9bdad29eddf2e8f31182
BLAKE2b-256 175e33789548c513821f5cd8d7e2c28eb94f8f9131b677ac8343af15f7d46b8a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page