Skip to content

Add notebook anywidget support via D3ARG.to_anywidget()#244

Open
Billyzhang1229 wants to merge 1 commit into
kitchensjn:mainfrom
Billyzhang1229:main
Open

Add notebook anywidget support via D3ARG.to_anywidget()#244
Billyzhang1229 wants to merge 1 commit into
kitchensjn:mainfrom
Billyzhang1229:main

Conversation

@Billyzhang1229
Copy link
Copy Markdown

Summary

This PR adds D3ARG.to_anywidget(...) to render ARG visualizations as an anywidget object in notebook environments (e.g. marimo).

What changed

  • Added to_anywidget() to D3ARG in tskit_arg_visualizer/init.py.
  • Reused existing visualizer.js + visualizer.css rendering path by generating srcdoc for an iframe-based anywidget.
  • Added anywidget dependency in:
    • requirements.txt
    • environment.yml
    • pyproject.toml
  • Updated Python metadata for dependency compatibility:
    • pyproject.toml: requires-python = ">=3.8"
    • environment.yml: python>=3.8
    • Classifiers now include 3.8 through 3.13

marimo rendering fix

  • Added base iframe styles (margin:0, overflow:hidden, box-sizing:border-box) to avoid inner overflow and duplicate-looking horizontal scrollbars.

Validation

  • Internal smoke test: created D3ARG from msprime output and called to_anywidget(...).
  • Verified widget object is returned with non-empty srcdoc and expected frame dimensions.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant