Have something to say?
Dash OSS: Update Dash DAQ
We have a lot of updates to Dash DAQ just sitting there. We should publish those changes!
AI - suggest type of analysis
🚀 Overview AI-powered analysis suggestion tool, designed to guide users in selecting the most appropriate statistical or data analysis methods for their specific datasets and research questions. This innovative feature leverages machine learning algorithms to understand the nature of the data and the objectives of the user, offering personalized recommendations for analysis techniques that can best uncover insights or answer the posed questions. ### 💁♂️ User Problem & Context Data scientists often find it challenging to choose the most suitable analysis methods. The decision is crucial, as it directly impacts the validity and reliability of the findings. #### Stakeholder Data Scientists need a way to efficiently identify the optimal analysis methods for their data because they are tasked with extracting meaningful insights from complex datasets.
Dash Shared Callback Storage
Callbacks have no way to share state. A module-level global breaks as soon as the app runs more than one worker, since each process gets its own copy. Passing data between callbacks today means routing it through hidden components in a callback chain, and pushing a change from one callback to another — or out to other open browser tabs — means polling or standing up Redis. Proposed solution: A key-value store and publish/subscribe channel built into Dash, visible to every worker process. Callbacks get and set shared values directly, and publish sends a value to every subscribed callback, so real-time updates across tabs become a couple of lines instead of a callback chain. Backends cover everything from local development to a multi-host deployment.
Dash Streaming Callbacks
A callback delivers its output once, when it returns. Anything produced incrementally, e.g. an LLM response arriving token by token, progress through a multi-step job, a live data feed, etc. , either sits invisible until the work finishes, or forces a workaround, like polling with dcc.Interval, or dropping into WebSocket callbacks and driving the UI through set_props. Proposed solution: Let a callback yield. A callback defined with async def and yield instead of return sends each value to the browser as it's produced, with no new keyword and no backend requirement. Yielding Patch objects sends only what changed, so token-by-token updates don't resend the whole value.