$ account plotly
Plotly Dash is a production-grade Python framework for building reactive, data-driven web applications. It provides a declarative callback system (server-side, clientside, background, streaming), a rich component library (core components, data table, HTML wrappers), and a React/Redux frontend renderer. The architecture supports multiple backends (Flask, Quart, FastAPI), real-time communication via WebSocket, cross-process shared storage (local, diskcache, Redis), and an MCP (Model Context Protocol) server for AI/LLM integration. The monorepo includes component generation tooling, extensive testing infrastructure (unit, integration, visual, WebSocket, background callback), and performance benchmarks. While primarily an application framework, its data table, filtering syntax tree, and shared storage subsystems demonstrate strong data engineering patterns.
Kaleido is a Python library for static image export of Plotly figures (PNG, SVG, PDF, etc.) by rendering them in a headless Chrome browser via the DevTools protocol. The library provides both async and sync APIs, with an optional singleton server mode for reuse across calls. It manages a pool of browser tabs for parallel rendering, supports chunked JSON transfer for large figures (>10MB), and includes profiling capabilities. The architecture is centered around the `Kaleido` class, which orchestrates browser lifecycle, tab allocation, and rendering through `_KaleidoTab` instances. The library is consumed by Plotly.py and can be used standalone or via CLI tools (`kaleido_mocker`, `kaleido_get_chrome`). Dependencies include `choreographer` (Python-DevTools bridge), `orjson`, and `logistro`. The test suite includes extensive integration tests with hundreds of Plotly figure mocks covering a vast range of trace types and layout features.
This repository is a Cookiecutter template for generating Dash component projects. It provides a structured starting point for creating custom Dash components, including Python package structure, React component code, build scripts (webpack), a demo application, and tests. Users run the template via `cookiecutter`, answer prompts about their project (name, component type, licensing), and receive a fully configured project ready for development. The template employs Jinja2 templating to conditionally include files based on user choices, such as asynchronous component loading or class/function-based React components. It includes pre-generation and post-generation hooks to validate user input and automate setup tasks like creating a virtual environment, installing dependencies, and running the initial build. Generated projects follow Dash's conventions for component distribution, including proper packaging for PyPI and NPM. Notably, the template includes a sophisticated webpack configuration implementing code splitting for asynchronous chunks and shared common chunks, optimizing bundle loading. The template also includes validation scripts to ensure the generated project's build configuration is correct. Tests verify the generated project can be built and the component renders correctly in a Dash application. The repository is actively maintained with recent commits and ongoing issue activity.