Datapane client library and CLI tool
Project description
Docs | Cloud | Discussions | Discord
Build full-stack data analytics apps in Python
Datapane is an open-source framework for building robust, high-performance data apps from Python and Jupyter.Why use Datapane?
🚀 Not just for demos
Build performant, robust full-stack apps which are simple to deploy and manage on any hosting platform. Add background processing, auth, and monitoring to go beyond MVPs.
📈 Share standalone reports with no server
Export static HTML reports which you can share on Slack or Email, with no backend required.
📙 Ship apps from Jupyter
Build and ship data apps from inside your Jupyter Notebook and existing scripts in <5 lines of code.
Other Features
- User sessions and state handling
- Intelligent caching
- Sub-5ms function response time
- Easy integration with authentication/authorization
- Integrate into existing web frameworks (like Flask or FastAPI)
- Host on existing web-hosts, like Fly and Heroku
- Background processing
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
Want a head start? Check out our Getting Started guide 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.15.6"
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.
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.
...
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.
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
Discord
Get help from the team, share what you're building, and get to know others in the space!
💬 Join our discord server
Feedback
Leave us some feedback, ask questions and request features.
📮 Give feedback
Forums
Need technical help? Reach out on GitHub discussions.
📜 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
Built Distribution
File details
Details for the file datapane-0.16.0.tar.gz
.
File metadata
- Download URL: datapane-0.16.0.tar.gz
- Upload date:
- Size: 181.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.3.2 CPython/3.10.10 Linux/5.15.0-1033-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2d8f4e5d91450ec26fbe6ce312e0e95532641a2182f65032645f79d31d0b3eb1 |
|
MD5 | ee040e80329b992825ffab0a9bfec03f |
|
BLAKE2b-256 | f4b465d5da9e71ebca32ffd631dc2b7bd1cd669e60a6cc154daa43562c9875a4 |
File details
Details for the file datapane-0.16.0-py3-none-any.whl
.
File metadata
- Download URL: datapane-0.16.0-py3-none-any.whl
- Upload date:
- Size: 217.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.3.2 CPython/3.10.10 Linux/5.15.0-1033-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2061507f5054a70d1f90a1b4fb129325f297e414be72a0cfcceb5d52c20524d1 |
|
MD5 | f93297ee3139a3b91823f17b9c982800 |
|
BLAKE2b-256 | 45d8b334891f89831222490719b6bfef6ca856fa362b71f261f3aaed1fd308ea |