A simple REST API Client for Apache-Superset in Python
Project description
superset-python-client
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
Built Distribution
File details
Details for the file superset_python_client-1.0.0.tar.gz
.
File metadata
- Download URL: superset_python_client-1.0.0.tar.gz
- Upload date:
- Size: 14.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.20
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac44bd86cd95ba892f504537fa3c5fd79d7e3fa8f112a671d65d757524a880b0 |
|
MD5 | ecc753e6ea360a7f9e21af03e8d7ef64 |
|
BLAKE2b-256 | 1a752c812ddb26bd1b227c02f71025b6bf978d26bda5afd2145a7fdb6933ce13 |
File details
Details for the file superset_python_client-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: superset_python_client-1.0.0-py3-none-any.whl
- Upload date:
- Size: 18.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.9.20
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d268f111daae7bd10a507910d03915da455ea60e110abb6b6f0220d1f7355756 |
|
MD5 | d2359b025b8c4c47ffc3c988cb195a23 |
|
BLAKE2b-256 | fc74befa20f25f83700fa07c41c1b056f97cc4e367fc8fedf5c4c8480a1334e5 |