Skip to main content

Redash API Python Client

python package for interacting with the Redash API

view - Documentation     view - Documentation     GitHub Actions

Features

  • Complete access to all endpoints in the Redash API
  • Pagination by default
  • Duplicate dashboards
  • Manage users and groups
  • Duplicate queries with differerent source tables

Implemented Services

  • Dashboards
  • Queries
  • Data Sources
  • Alerts
  • Users
  • Destinations
  • Groups
  • query_snippets
  • Widgets*

* widgets endpoint does not support GET requests, only update, delete and create.

Getting Started

an API key is required in addition to the instance's host URL.

Installation

pip install redash-python-modification

Usage

from redash_python_modification import Redash

rd = Redash(base_url="", api_key="")


# get all dashboards
dashboards = rd.dashboards.get_all()

# get specific dashboards by id
dash = rd.dashboards.get(1)

# get by slug or name
query = rd.queries.get_by_name("my-dashboard")

# get by tags
q = rd.queries.get_by_tags(["my-tag"])

# get without tags
dash = rd.dashboards.get_by_tags(["my-tag"], without=True)

# Duplicate query with a different table as source
ques = rd.queries
ques.duplicate_query_table(
    query=ques.get(1),
    table_map={"old_table": "new_table"},
    tags=["admin", "test"],
    publish=True,
)

# get a list of implemented API endpoints
print(rd.services)

# get a list of implemented endpoints in a service
print(rd.users)

for a full list of implemented methods in each service, print the service object.

>>> print(client.dashboards)
DashboardsService(attributes: ['endpoint'], methods: ['create', 'create_widget', 'delete', 'duplicate', 'exists', 'favorite', 'favorited', 'get', 'get_all', 'get_by_name', 'get_by_tags', 'get_id', 'get_slug', 'paginate', 'publish', 'refresh', 'share', 'unfavorite', 'unpublish', 'update'])

for more examples on usage, see examples folder on github.

Development

before starting development, install dev depndencies:

pip install redash-python-modification[dev]

Architecture

this library implements a services based architecture splitting each API endpoint group to its own service, on top of which is the Redash class. all the services share base classes from mixins that make it easier to share common behavior and allows rapid development for any new endpoints. for instance adding query_snippets is as simple as:

from .base import BaseService
from .mixins import CommonMixin, NameMixin, PrintMixin


class QSnipsService(CommonMixin, NameMixin, PrintMixin):
    def __init__(self, base: BaseService) -> None:
        # init mixins
        CommonMixin.__init__(self, base)

        self.__base = base
        self.endpoint = "/api/query_snippets"

Directory Structure

redash_python
├── __init__.py
├── redash.py               # Services wrapper
└── services                # implemented services
    ├── base.py             # Base service class
    └── mixins.py           # Mixins for services with shared functionality

Contributing

Contributions are welcome, please open an issue or PR to propse any changes.

License

view - Documentation

Metadata

Release files for redash-python-modification 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for redash-python-modification 0.0.3
File Size Uploaded
redash-python-modification-0.0.3.tar.gz 10.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for redash-python-modification 0.0.3
File Interpreter ABI Platform
redash_python_modification-0.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 24.3 kB

Release files / redash-python-modification-0.0.3.tar.gz

Download URL redash-python-modification-0.0.3.tar.gz
Size 10.6 kB
Tags Source
SHA-256 checksum
How to use checksums
c199778ac0ddd86f7d72d3937591d2d42d933611e1aff73f5f2a7d8969c1634e
BLAKE2b-256 checksum
How to use checksums
0ef8852c034d6281fb63330973fbb38a316cfca8d96795adc90b5744b5f8aedf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.0

Release files / redash_python_modification-0.0.3-py3-none-any.whl

Download URL redash_python_modification-0.0.3-py3-none-any.whl
Size 13.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
96739c81643c212bd18aa54914cf720af7f03fe015956cc1248fe189876db88a
BLAKE2b-256 checksum
How to use checksums
1537c15dc68b726c832655a0563cabecdf8da1612b73e674c86fb48f0bad9deb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.0

Release history Release notifications | RSS feed

This release

0.0.3 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page