Skip to main content

Datapane client library and CLI tool

Project description

Datapane

Home | Docs | Gallery | Examples | Discuss

GitHub Stars Pip Downloads Latest release Conda (channel only)

Build full-stack data apps in 100% Python

Datapane is an app development platform which gives you everything you need to build internal data analytics products using Python.

Progress & Roadmap

  • Blocks & Views
    • Display blocks
    • Layout blocks
    • Static site export
  • App server
    • Backend functions
    • Forms
    • Client-side events (e.g. onload)
    • Caching
    • Sessions
  • Reports
    • HTML reports
    • Cloud reports
  • Deployment
    • Fly.io
    • Dockerfile generation
  • Components library
  • Tasks
    • Scheduled tasks
    • Background tasks
  • Data layer
    • Files
    • Analytics DB (DuckDB)
    • App state DB (sqlite)
  • Integrations & Messaging
    • Slack
    • Email
    • Webhooks

Why use Datapane?

🐍 100% Python

Build apps and reporting tools without writing HTML, CSS, or worrying about infrastructure.

🔋 Batteries included

Not just for demos and MVPs. Build products with background processing, integrations, reporting, and more.

🚀 Simple to host

Deploy to any web host, run on your own server, or embed into existing frameworks like Flask and Django.

Gallery

Check out example reports and apps in our gallery:

https://datapane.com/gallery

How is Datapane's architecture unique?

Datapane Apps use a combination of pre-rendered frontend elements and backend Python functions which are called on-demand. Result: low-latency apps which are simple to build, host, and scale.

Getting Started

Check out our Quickstart to build a data science web app in 3m.

Installing Datapane

The best way to install Datapane is through pip or conda.

pip

$ pip3 install -U datapane

conda

$ conda install -c conda-forge "datapane>=0.16.1"

Datapane also works well in hosted Jupyter environments such as Colab or Binder, where you can install as follows:

!pip3 install --quiet datapane

Examples

📊 Share plots, data, and more as reports

Create reports from pandas DataFrames, plots from your favorite libraries, and text.

Simple Datapane app example with text, plot and table

import altair as alt
from vega_datasets import data
import datapane as dp

df = data.iris()
fig = (
    alt.Chart(df)
    .mark_point()
    .encode(
        x="petalLength:Q",
        y="petalWidth:Q",
        color="species:N"
    )
)
view = dp.Blocks(
    dp.Plot(fig),
    dp.DataTable(df)
)
dp.save_report(view, path="my_app.html")

🎛 Layout using interactive blocks

Add dropdowns, selects, grid, pages, and 10+ other interactive blocks.

Complex layout

...

view = dp.Blocks(
    dp.Formula("x^2 + y^2 = z^2"),
    dp.Group(
        dp.BigNumber(
            heading="Number of percentage points",
            value="84%",
            change="2%",
            is_upward_change=True
        ),
        dp.BigNumber(
            heading="Simple Statistic", value=100
        ), columns=2
    ),
    dp.Select(
        dp.Plot(fig, label="Chart"),
        dp.DataTable(df, label="Data")
    ),
)
dp.save_report(view, path="layout_example.html")

Add functions to create full-stack apps

Add forms which run backend functions, or refresh your app automatically to build dashboards. Serve locally or deploy to your favorite web-host.

Functions

import altair as alt
from vega_datasets import data
import datapane as dp

df = data.iris()

def gen_assets(params):
    subset = df[df['species'] == params['species']]

    fig = alt.Chart(subset)
            .mark_point()
            .encode( x="petalLength:Q", y="petalWidth:Q")

    return [dp.Plot(fig), dp.DataTable(subset)]

view = dp.Form(
    on_submit=gen_assets,
    controls=dp.Controls(
      species=dp.Choice(options=list(df['species'].unique())
    )
)

dp.serve_app(view)

Get involved

Forums

Leave us some feedback, get help, ask questions and request features.

📜 Ask a question

Contribute

Looking for ways to contribute to Datapane?

Visit the contribution guide.

Next Steps

Analytics

By default, the Datapane Python library collects error reports and usage telemetry. This is used by us to help make the product better and to fix bugs. If you would like to disable this, simply create a file called no_analytics in your datapane config directory, e.g.

Linux

$ mkdir -p ~/.config/datapane && touch ~/.config/datapane/no_analytics

macOS

$ mkdir -p ~/Library/Application\ Support/datapane && touch ~/Library/Application\ Support/datapane/no_analytics

Windows (PowerShell)

PS> mkdir ~/AppData/Roaming/datapane -ea 0
PS> ni ~/AppData/Roaming/datapane/no_analytics -ea 0

You may need to try ~/AppData/Local instead of ~/AppData/Roaming on certain Windows configurations depending on the type of your user-account.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

datapane-0.16.5.tar.gz (187.5 kB view details)

Uploaded Source

Built Distribution

datapane-0.16.5-py3-none-any.whl (226.2 kB view details)

Uploaded Python 3

File details

Details for the file datapane-0.16.5.tar.gz.

File metadata

  • Download URL: datapane-0.16.5.tar.gz
  • Upload date:
  • Size: 187.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.2 CPython/3.10.11 Linux/5.15.0-1037-azure

File hashes

Hashes for datapane-0.16.5.tar.gz
Algorithm Hash digest
SHA256 646e4481e0e31bfcebac2b80a1a06b333576293d9a3afdfbe0198b077959908b
MD5 de16d8d131c66b7105bd368cb05cd7f7
BLAKE2b-256 91d0c2ed7bb21231660f04d6e043159b6616ef992b64e15969db45a536e7400b

See more details on using hashes here.

File details

Details for the file datapane-0.16.5-py3-none-any.whl.

File metadata

  • Download URL: datapane-0.16.5-py3-none-any.whl
  • Upload date:
  • Size: 226.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.2 CPython/3.10.11 Linux/5.15.0-1037-azure

File hashes

Hashes for datapane-0.16.5-py3-none-any.whl
Algorithm Hash digest
SHA256 4b3431adc45160a16ab7da112a10f42416d5f8695feddbdf884879b1c7c97bbb
MD5 02fda6e5d551be5aa07c00c58ca9cac8
BLAKE2b-256 f7974b22b5b25303babd5a9679027b30e48715c6ae3db5e5e0d01e991efe66c8

See more details on using hashes here.

Supported by

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