Dash File Cache
Dash File Cache is a Dash extension library.
Utilities for providing convenient methods to serve cached data in Plotly-Dash or Flask.
The data cache enables the following features:
- Load a server-side file dynamically and send the file to users (the frontend).
- Support in-memory files (like
io.BytesIO()) or on-disk files (specified by a path). - Support different kinds of cache (single-thread, multi-processing, or file-based).
- Customized components helping the dashboard trigger download events from the server side.
1. Install
Intall the latest released version of this package by using the PyPI source:
python -m pip install dash-file-cache
If users want to install the developer's version, they need to ensure that the following packages are installed.
Then use the following commands to install it.
git clone --depth 1 --single-branch https://github.com/cainmagi/dash-file-cache
cd dash-file-cache
python -m pip install -r requirements.txt -r requirements-dev.txt
yarn install
yarn dlx @yarnpkg/sdks vscode
yarn build
python -m pip install .[dev]
For VSCode users, please install the recommended extensions specified in the project workspace file.
2. Usage
The following codes show a minimal example of this package
from typing import Optional
import io
import dash
from dash import html
from dash import Input, Output
from dash_file_cache import ServiceData, CachePlain
app = dash.Dash("demo")
service = ServiceData(CachePlain(1))
service.serve(app)
app.layout = html.Div(
(
html.Div(
html.P(
(
html.Span("Get Image:", style={"paddingRight": "0.5rem"}),
html.Button(id="btn", children="Image"),
)
)
),
html.Div((html.P("Cache address:"), html.P(id="addr"))),
html.Div((html.P("Cached Image:"), html.Img(id="cache"))),
),
)
@app.callback(
Output("addr", "children"),
Input("btn", "n_clicks"),
prevent_initial_call=True,
)
def click_get_image(
n_clicks: Optional[int],
):
if not n_clicks:
return dash.no_update
addr = service.register(
io.StringIO(
R'<svg height="100" width="100" xmlns="http://www.w3.org/2000/svg">'
R'<circle r="45" cx="50" cy="50" fill="red" /></svg>'
),
content_type="image/svg+xml",
mime_type="image/svg+xml",
one_time_service=True,
)
return addr
@app.callback(
Output("cache", "src"),
Input("addr", "children"),
prevent_initial_call=True,
)
def update_cache(addr):
if not addr:
return dash.no_update
return addr
if __name__ == "__main__":
app.run(host="127.0.0.1", port="8080", debug=True)
Check http://127.0.0.1:8080 to see the following results:
| The minimal demo |
|---|
3. Documentation
Check the documentation to find more details about the examples and APIs.
https://cainmagi.github.io/dash-file-cache/
4. Contributing
5. Changelog
See Changelog.md 📖
Metadata
Release files for dash-file-cache 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dash_file_cache-0.2.0.tar.gz | 369.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dash_file_cache-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 499.9 kB
Release files / dash_file_cache-0.2.0.tar.gz
| Download URL | dash_file_cache-0.2.0.tar.gz |
|---|---|
| Size | 369.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5a367233e138fa8767b5489645aa8f46184aa9fa1339001f89b3797d73fdb203
|
|
BLAKE2b-256 checksum How to use checksums |
cf6c482fbf9ca381cde01a1d69c105217ad9854f55aba6f501d5cc28947ec799
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 31, 2025.
Transparency logRelease files / dash_file_cache-0.2.0-py3-none-any.whl
| Download URL | dash_file_cache-0.2.0-py3-none-any.whl |
|---|---|
| Size | 130.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6bca75f87de23ea96a548c6e96eef1b7c5e5f734d92198a80a68108ae2292001
|
|
BLAKE2b-256 checksum How to use checksums |
4e5d8982cc9f3f71c5759c6213858938b4952ea1846d0165e9f266bcdc015f62
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 31, 2025.
Transparency log