Skip to content

Conversation

@kecnry
Copy link
Member

@kecnry kecnry commented Sep 17, 2025

Description

This pull request integrates the solara FileDownload widget to support saving any exported file via the browsers Save dialog in addition to the existing support to save python/server-side. In doing so, this removes the previous show_dialog kwarg which was only supported for png files.

Deployments in which the server is private should continue to set serverside_enabled = False to disable access to saving files on that machine, in which case only the new widget will be shown.

This is currently a WIP as there are still some bugs, including a double file-dialog when downloading images from viewers and some issues in saving subsets as regions, etc.

Change log entry

  • Is a change log needed? If yes, is it added to CHANGES.rst? If you want to avoid merge conflicts,
    list the proposed change log here for review and add to CHANGES.rst before merge. If no, maintainer
    should add a no-changelog-entry-needed label.

Checklist for package maintainer(s)

This checklist is meant to remind the package maintainer(s) who will review this pull request of some common things to look for. This list is not exhaustive.

  • Are two approvals required? Branch protection rule does not check for the second approval. If a second approval is not necessary, please apply the trivial label.
  • Do the proposed changes actually accomplish desired goals? Also manually run the affected example notebooks, if necessary.
  • Do the proposed changes follow the STScI Style Guides?
  • Are tests added/updated as required? If so, do they follow the STScI Style Guides?
  • Are docs added/updated as required? If so, do they follow the STScI Style Guides?
  • If new remote data is added that uses MAST, is the URI added to the cache-download.yml workflow?
  • Did the CI pass? If not, are the failures related?
  • Is a milestone set? Set this to bugfix milestone if this is a bug fix and needs to be released ASAP; otherwise, set this to the next major release milestone. Bugfix milestone also needs an accompanying backport label.
  • After merge, any internal documentations need updating (e.g., JIRA, Innerspace)?

@kecnry kecnry added this to the 4.4 milestone Sep 17, 2025
@github-actions github-actions bot added the plugin Label for plugins common to multiple configurations label Sep 17, 2025
@rosteen rosteen modified the milestones: 4.4, 4.5 Sep 18, 2025
@maartenbreddels
Copy link
Collaborator

I debugged the issue (after making websocket messages available again jupyter-server/jupyter_server#657 (comment) )

And the problem is:

  1. Calling export_to_buffer will call self.export(f) which will call save_figure, which will ask bqplot to save the figure (since filename is None, we will call Figure.save_png, causing the 2nd browser popup.
  2. Even if 1 worked (it would save to the BytesIO object), it would do that after the Solara FileDownload widget's invocation of export_to_buffer would return. Maybe if FileDownload would support async callbacks, we could async wait for it? (This is all related to the blocking if cell execution I'm working on btw).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

plugin Label for plugins common to multiple configurations

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants