pyobservablejs 0.1.2__tar.gz → 0.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/.agent-plugin/skills/pyobservablejs/SKILL.md +12 -12
- pyobservablejs-0.2.0/.agent-plugin/skills/pyobservablejs/references/data.md +79 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/.agent-plugin/skills/pyobservablejs/references/diagnose.md +5 -5
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/.agent-plugin/skills/pyobservablejs/references/hosts.md +7 -7
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/.agent-plugin/skills/pyobservablejs/references/workflows.md +6 -5
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/NOTICE +8 -3
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/PKG-INFO +17 -3
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/README.md +12 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/hatch_build.py +3 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/pyproject.toml +6 -3
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/__init__.py +2 -1
- pyobservablejs-0.2.0/src/observablejs/_async_data.py +423 -0
- pyobservablejs-0.2.0/src/observablejs/_controller.py +239 -0
- pyobservablejs-0.2.0/src/observablejs/_conversions.py +286 -0
- pyobservablejs-0.2.0/src/observablejs/_data.py +305 -0
- pyobservablejs-0.2.0/src/observablejs/_data_types.py +136 -0
- pyobservablejs-0.2.0/src/observablejs/_evaluation_pool.py +129 -0
- pyobservablejs-0.2.0/src/observablejs/_execution.py +485 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/_factories.py +3 -2
- pyobservablejs-0.2.0/src/observablejs/_file_access.py +222 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/_graph.py +22 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/_html.py +5 -1
- pyobservablejs-0.2.0/src/observablejs/_imports.py +106 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/_inspection.py +88 -19
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/_model.py +1 -75
- pyobservablejs-0.2.0/src/observablejs/_namespaces.py +162 -0
- pyobservablejs-0.2.0/src/observablejs/_notebook.py +512 -0
- pyobservablejs-0.2.0/src/observablejs/_observable_fetch.py +251 -0
- pyobservablejs-0.1.2/src/observablejs/_observable.py → pyobservablejs-0.2.0/src/observablejs/_observable_legacy.py +3 -139
- pyobservablejs-0.2.0/src/observablejs/_observable_model.py +235 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/_readback.py +46 -3
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/_serialize.py +7 -0
- pyobservablejs-0.2.0/src/observablejs/_server_process.py +350 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/_variables.py +6 -2
- pyobservablejs-0.2.0/src/observablejs/_view.py +629 -0
- pyobservablejs-0.2.0/src/observablejs/_widget_session.py +64 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/errors.py +11 -4
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/static/anywidget.json +13 -13
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/static/chunks/app.js +6898 -6166
- pyobservablejs-0.1.2/src/observablejs/static/chunks/chunk-DgpCdwPV.js → pyobservablejs-0.2.0/src/observablejs/static/chunks/chunk-BDdN9cXu.js +1 -1
- pyobservablejs-0.1.2/src/observablejs/static/chunks/chunk-CFlKfnzc.js → pyobservablejs-0.2.0/src/observablejs/static/chunks/chunk-BdjsY35J.js +1 -1
- pyobservablejs-0.1.2/src/observablejs/static/chunks/chunk-DsnOPDWZ.js → pyobservablejs-0.2.0/src/observablejs/static/chunks/chunk-Bu0VYkhs.js +1 -1
- pyobservablejs-0.1.2/src/observablejs/static/chunks/chunk-C5NbHGnt.js → pyobservablejs-0.2.0/src/observablejs/static/chunks/chunk-CQ6Czty8.js +2 -2
- pyobservablejs-0.1.2/src/observablejs/static/chunks/chunk-M-i_p5Qj.js → pyobservablejs-0.2.0/src/observablejs/static/chunks/chunk-CgNgsTSD.js +1 -1
- pyobservablejs-0.2.0/src/observablejs/static/chunks/chunk-CjoaAvvV.js +22 -0
- pyobservablejs-0.1.2/src/observablejs/static/chunks/chunk-CKnoFeIz.js → pyobservablejs-0.2.0/src/observablejs/static/chunks/chunk-D3EE-r9a.js +1 -1
- pyobservablejs-0.1.2/src/observablejs/static/chunks/chunk-CwIc0tyQ.js → pyobservablejs-0.2.0/src/observablejs/static/chunks/chunk-DNEMXgu0.js +1 -1
- pyobservablejs-0.2.0/src/observablejs/static/chunks/chunk-DeGp0jpb.js +1668 -0
- pyobservablejs-0.1.2/src/observablejs/static/chunks/chunk-Djkl5DVJ.js → pyobservablejs-0.2.0/src/observablejs/static/chunks/chunk-DwJ8S3oT.js +4 -4
- pyobservablejs-0.1.2/src/observablejs/static/chunks/chunk-DPke2Mkf.js → pyobservablejs-0.2.0/src/observablejs/static/chunks/chunk-LJrdqDPE.js +1 -1
- pyobservablejs-0.1.2/src/observablejs/static/chunks/chunk-DVSTjygl.js → pyobservablejs-0.2.0/src/observablejs/static/chunks/chunk-NJ73jJOK.js +2 -2
- pyobservablejs-0.1.2/src/observablejs/static/chunks/chunk-Cq37UgwU.js → pyobservablejs-0.2.0/src/observablejs/static/chunks/chunk-VYnLkzJM.js +1 -1
- pyobservablejs-0.2.0/src/observablejs/static/index.js +673 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/Arrow.node.js +8854 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/Arrow.dom.js +8879 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/browser.js +15874 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/dist.js +1243 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/dist2.js +838 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/dist3.js +227 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/dist4.js +337 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/dist5.js +435 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/dist6.js +1004 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/dist7.js +350 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/dist8.js +4964 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/dist9.js +2377 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/dot.js +22 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/duckdb.js +255 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/fileAttachment.js +215 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/github-light-default.js +4 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/highlight.js +110 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/html.js +8 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/inputs.js +1 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/javascript.js +2 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/javascript2.js +3 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/leaflet.js +11 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/mapboxgl.js +6 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/markdown.js +3 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/md.js +4887 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/mermaid.js +14 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/rolldown-runtime.js +11 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/sql.js +3 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/src.js +1668 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/tex.js +19 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/typescript.js +3 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/vega-lite.js +7 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/xlsx.js +88 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/browser/zip.js +52 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/chromium.js +159 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/dist.js +1243 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/dist2.js +838 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/dist3.js +227 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/dist4.js +337 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/dist5.js +435 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/dist6.js +1004 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/dist7.js +350 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/dom.js +32079 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/dot.js +22 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/LICENSE +202 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/NOTICE +5 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/README.md +3 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/ThirdPartyNotices.txt +13 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/bin/install_media_pack.ps1 +5 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/bin/install_webkit_wsl.ps1 +33 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/bin/reinstall_chrome_beta_linux.sh +42 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/bin/reinstall_chrome_beta_mac.sh +13 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/bin/reinstall_chrome_beta_win.ps1 +24 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/bin/reinstall_chrome_stable_linux.sh +42 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/bin/reinstall_chrome_stable_mac.sh +12 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/bin/reinstall_chrome_stable_win.ps1 +24 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/bin/reinstall_msedge_beta_linux.sh +48 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/bin/reinstall_msedge_beta_mac.sh +11 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/bin/reinstall_msedge_beta_win.ps1 +23 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/bin/reinstall_msedge_dev_linux.sh +48 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/bin/reinstall_msedge_dev_mac.sh +11 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/bin/reinstall_msedge_dev_win.ps1 +23 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/bin/reinstall_msedge_stable_linux.sh +48 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/bin/reinstall_msedge_stable_mac.sh +11 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/bin/reinstall_msedge_stable_win.ps1 +24 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/browsers.json +52 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/cli.js +21 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/index.d.ts +17 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/index.js +17 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/index.mjs +28 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/bootstrap.js +88 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/coreBundle.js +75813 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/entry/cliDaemon.js +5 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/entry/dashboardApp.js +3 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/entry/mcp.js +10 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/entry/oopBrowserDownload.js +3 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/package.js +50 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/server/chromium/appIcon.png +0 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/server/electron/loader.js +116 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/serverRegistry.js +1939 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/serverRegistry.js.LICENSE +65 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/tools/cli-client/channelSessions.js +141 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/tools/cli-client/cli.js +6 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/tools/cli-client/help.json +721 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/tools/cli-client/minimist.js +128 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/tools/cli-client/output.js +351 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/tools/cli-client/program.js +418 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/tools/cli-client/registry.js +180 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/tools/cli-client/session.js +259 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/tools/dashboard/appIcon.png +0 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/tools/skills/playwright-cli/SKILL.md +425 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/tools/skills/playwright-cli/references/element-attributes.md +23 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/tools/skills/playwright-cli/references/playwright-tests.md +39 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/tools/skills/playwright-cli/references/request-mocking.md +87 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/tools/skills/playwright-cli/references/running-code.md +241 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/tools/skills/playwright-cli/references/session-management.md +225 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/tools/skills/playwright-cli/references/storage-state.md +275 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/tools/skills/playwright-cli/references/test-generation.md +433 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/tools/skills/playwright-cli/references/tracing.md +139 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/tools/skills/playwright-cli/references/video-recording.md +143 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/tools/skills/playwright-component-testing/SKILL.md +136 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/tools/skills/playwright-component-testing/references/gallery-spec.md +144 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/tools/skills/playwright-component-testing/references/migration.md +89 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/tools/skills/playwright-component-testing/references/react.md +69 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/tools/skills/playwright-component-testing/references/typing.md +173 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/tools/skills/playwright-component-testing/references/vue.md +77 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/tools/skills/playwright-trace/SKILL.md +174 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/tools/utils/extension.js +112 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/tools/utils/socketConnection.js +108 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/utilsBundle.js +85357 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/utilsBundle.js.LICENSE +1890 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/dashboard/assets/codeMirrorModule--QdMvsKi.css +1 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/dashboard/assets/codeMirrorModule-CQ8RZGBm.js +32 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/dashboard/assets/codicon-DCmgc-ay.ttf +0 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/dashboard/assets/firefox-1bWoP6pv.svg +1 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/dashboard/assets/firefox-beta-k3eOH_eK.svg +1 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/dashboard/assets/firefox-nightly-Cp5nfeDT.svg +1 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/dashboard/assets/index-AwgwcYie.css +1 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/dashboard/assets/index-hRvO4yU2.js +12 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/dashboard/assets/safari-na3_-uQk.svg +1 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/dashboard/index.html +29 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/dashboard/playwright-logo.svg +24 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/htmlReport/index.html +16 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/htmlReport/report.css +2 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/htmlReport/report.js +32 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/recorder/assets/codeMirrorModule--QdMvsKi.css +1 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/recorder/assets/codeMirrorModule-CVQWJZAA.js +32 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/recorder/assets/codicon-DCmgc-ay.ttf +0 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/recorder/assets/index-BZpYJZ-P.css +1 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/recorder/assets/index-hrlLqLtq.js +129 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/recorder/index.html +29 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/recorder/playwright-logo.svg +9 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/traceViewer/assets/codeMirrorModule-BbkfBe3n.js +32 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/traceViewer/assets/defaultSettingsView-Ds6CBOo0.js +182 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/traceViewer/assets/urlMatch-L3liM589.js +1 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/traceViewer/assets/xtermModule-DywYcAf8.js +7 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/traceViewer/codeMirrorModule.-QdMvsKi.css +1 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/traceViewer/codicon.DCmgc-ay.ttf +0 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/traceViewer/defaultSettingsView.Bqk9acqE.css +1 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/traceViewer/index.B4cLoZK3.js +1 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/traceViewer/index.B_TqY17P.css +1 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/traceViewer/index.html +44 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/traceViewer/manifest.webmanifest +16 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/traceViewer/playwright-logo.svg +9 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/traceViewer/snapshot.B_Jk1wbt.js +1 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/traceViewer/snapshot.html +10 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/traceViewer/sw.bundle.js +4 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/traceViewer/uiMode.CU5KtEkS.js +5 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/traceViewer/uiMode.CyMfwkXJ.css +1 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/traceViewer/uiMode.html +18 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/vite/traceViewer/xtermModule.kHJ-D0s7.css +1 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/webp_codec.LICENSE +173 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/webp_codec.wasm +0 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/lib/xdg-open +1267 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/package.json +34 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/types/protocol.d.ts +24645 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/types/structs.d.ts +52 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/driver/types/types.d.ts +26632 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/duckdb.js +255 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/fileAttachment.js +215 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/highlight.js +110 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/inputs.js +2 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/leaflet.js +12 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/main.js +14406 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/mapboxgl.js +6 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/md.js +4887 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/mermaid.js +14 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/rolldown-runtime.js +21 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/server.js +4 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/src.js +1668 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/tex.js +19 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/transport.js +708 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/vega-lite.js +7 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/xlsx.js +88 -0
- pyobservablejs-0.2.0/src/observablejs/static/server/zip.js +52 -0
- pyobservablejs-0.2.0/src/observablejs/static/widget.css +2 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/types.py +90 -8
- pyobservablejs-0.1.2/.agent-plugin/skills/pyobservablejs/references/data.md +0 -140
- pyobservablejs-0.1.2/src/observablejs/_notebook.py +0 -1384
- pyobservablejs-0.1.2/src/observablejs/static/chunks/chunk-DZxWsvlF.js +0 -619
- pyobservablejs-0.1.2/src/observablejs/static/chunks/chunk-Do_x3Fr4.js +0 -25
- pyobservablejs-0.1.2/src/observablejs/static/index.js +0 -469
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/.agent-plugin/plugin.json +0 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/.agent-plugin/skills/pyobservablejs/agents/openai.yaml +0 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/LICENSE +0 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/_cell_ids.py +0 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/_cells.py +0 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/_files.py +0 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/_graph_diagram.py +0 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/_requests.py +0 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/_themes.py +0 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/_view_options.py +0 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/agent.py +0 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/py.typed +0 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/static/chunks/chunk-8yGiBzpe.js +0 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/static/chunks/chunk-9wrQFRY9.js +0 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/static/chunks/chunk-BJBuA-nX.js +0 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/static/chunks/chunk-BbYPAYwa.js +0 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/static/chunks/chunk-Bk0bJ4nQ.js +0 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/static/chunks/chunk-CE8y8yOz.js +0 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/static/chunks/chunk-CWz50zkY.js +0 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/static/chunks/chunk-DB9UtIZp.js +0 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/static/chunks/chunk-DFOfyqo1.js +0 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/static/chunks/chunk-DWy2KXvB.js +0 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/static/chunks/chunk-DvCCsF21.js +0 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/static/chunks/chunk-Dy4uBu1J.js +0 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/static/chunks/chunk-J-B4Amup.js +0 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/static/chunks/chunk-OcPggk94.js +0 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/static/chunks/chunk-XwrUO7iV.js +0 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/static/chunks/chunk-YNPpR7K-.js +0 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/static/chunks/chunk-eHnX08no.js +0 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/static/chunks/chunk-hBpTZX5r.js +0 -0
- {pyobservablejs-0.1.2 → pyobservablejs-0.2.0}/src/observablejs/static/chunks/chunk-nUtTZkU8.js +0 -0
- /pyobservablejs-0.1.2/src/observablejs/static/widget.css → /pyobservablejs-0.2.0/src/observablejs/static/server/browser/server.css +0 -0
|
@@ -125,20 +125,20 @@ still produce an empty or misleading chart. Follow
|
|
|
125
125
|
|
|
126
126
|
## Choose the access path
|
|
127
127
|
|
|
128
|
-
| Task | API or reference
|
|
129
|
-
| ------------------------------------------------- |
|
|
130
|
-
| Change Python inputs | `notebook.update_variables(patch)`
|
|
131
|
-
| Replace the Python-owned environment | `notebook.replace_variables(mapping)`
|
|
132
|
-
| Restore authored computation | `notebook.reset_variables(*names)`
|
|
133
|
-
| Check or raise browser failures | `view.diagnostics`, `view.raise_for_errors()`, `await view.ready()`
|
|
134
|
-
| Read a selected cell's preview | `state.result("chart").values`
|
|
135
|
-
| Find source, dependencies, and imports | `view.inspection`, `notebook.cells`
|
|
136
|
-
| List tables or read exact data | `view.datasets`, `await view.
|
|
137
|
-
| Configure hosts or live code-mode editing | [hosts.md](references/hosts.md)
|
|
138
|
-
| Compose views, use files, import or export source | [workflows.md](references/workflows.md)
|
|
128
|
+
| Task | API or reference |
|
|
129
|
+
| ------------------------------------------------- | ----------------------------------------------------------------------------------- |
|
|
130
|
+
| Change Python inputs | `notebook.update_variables(patch)` |
|
|
131
|
+
| Replace the Python-owned environment | `notebook.replace_variables(mapping)` |
|
|
132
|
+
| Restore authored computation | `notebook.reset_variables(*names)` |
|
|
133
|
+
| Check or raise browser failures | `view.diagnostics`, `view.raise_for_errors()`, `await view.ready()` |
|
|
134
|
+
| Read a selected cell's preview | `state.result("chart").values` |
|
|
135
|
+
| Find source, dependencies, and imports | `view.inspection`, `notebook.cells` |
|
|
136
|
+
| List tables or read exact data | `view.datasets`, `await view.data[name].to_python()`, [data.md](references/data.md) |
|
|
137
|
+
| Configure hosts or live code-mode editing | [hosts.md](references/hosts.md) |
|
|
138
|
+
| Compose views, use files, import or export source | [workflows.md](references/workflows.md) |
|
|
139
139
|
|
|
140
140
|
Strings passed to `state.result()` and `notebook.view()` are cell keys.
|
|
141
|
-
Strings passed to `view.
|
|
141
|
+
Strings passed to `view.data[name]` are JavaScript variable names. Keep that
|
|
142
142
|
distinction explicit in code.
|
|
143
143
|
|
|
144
144
|
Let `obs.errors.ObservableError` subclasses propagate when the agent needs a
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Inspect source and extract data
|
|
2
|
+
|
|
3
|
+
Use `notebook.cells`, `notebook.files`, `notebook.data`, and `notebook.graph`.
|
|
4
|
+
Cell keys identify authored cells. Data names identify JavaScript variables.
|
|
5
|
+
Conversions return Python objects and dataframes directly.
|
|
6
|
+
|
|
7
|
+
```python
|
|
8
|
+
notebook.cells["chart"].source
|
|
9
|
+
notebook.files["sales.csv"].url
|
|
10
|
+
notebook.data.names()
|
|
11
|
+
notebook.graph.upstream("chart")
|
|
12
|
+
frame = notebook.data["sales"].to_polars(columns=["category", "value"], limit=1000)
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Notebook data and graph inspection use the optional server extra. The default
|
|
16
|
+
engine is Deno. Network access is enabled by default; use
|
|
17
|
+
`notebook.data.using(network=False)` for offline execution. Use `notebook.data.using(engine="chromium")` for
|
|
18
|
+
actual browser capabilities. A notebook owns its lazy executions and closes
|
|
19
|
+
them through `close()` or its context manager.
|
|
20
|
+
|
|
21
|
+
## Widget route
|
|
22
|
+
|
|
23
|
+
A displayed view uses anywidget and needs no Deno:
|
|
24
|
+
|
|
25
|
+
```python
|
|
26
|
+
names = await view.data.names()
|
|
27
|
+
frame = await view.data["sales"].to_polars()
|
|
28
|
+
rows = await view.data["sales"].to_python(limit=10)
|
|
29
|
+
graph = await view.graph.snapshot()
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Reads cover the view's evaluated cells and hidden dependencies. They work with
|
|
33
|
+
`capture_state=False`. In Jupyter, await reads after display. In marimo, schedule
|
|
34
|
+
an async task and let the executing cell finish, as described in [hosts.md](hosts.md).
|
|
35
|
+
|
|
36
|
+
For passive reactive observation, `view.inspection`, `view.datasets`, and
|
|
37
|
+
`view.diagnostics` publish readonly snapshots through traitlets. `view.state`
|
|
38
|
+
contains bounded previews, not full dataframe exports.
|
|
39
|
+
|
|
40
|
+
## Discovery and provenance
|
|
41
|
+
|
|
42
|
+
```python
|
|
43
|
+
catalog = await view.data.discover()
|
|
44
|
+
for dataset in catalog.datasets:
|
|
45
|
+
print(dataset.name, await dataset.describe())
|
|
46
|
+
frame = await catalog.datasets["sales"].to_polars()
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Discovery retains datasets when independent cells fail. Inspect `catalog.errors`
|
|
50
|
+
and `catalog.pending`. Discovered references pin value revisions and reject
|
|
51
|
+
stale reads. Direct `view.data[name]` references request the current value.
|
|
52
|
+
|
|
53
|
+
`describe()` reports kind, schema, row count, and native versus sampled schema
|
|
54
|
+
metadata. A sampled schema may not include every type or column in later rows.
|
|
55
|
+
`reference.sources` contains known static file and literal URL references, not
|
|
56
|
+
proof of actual fetches or exhaustive lineage. It is `None` before analysis is
|
|
57
|
+
available on an async reference.
|
|
58
|
+
|
|
59
|
+
## Conversions and files
|
|
60
|
+
|
|
61
|
+
Use `to_python()`, `to_polars()`, `to_pandas()`, or `to_arrow()`. Install the target
|
|
62
|
+
library. Evaluated pandas conversion also requires PyArrow. Polars consumes IPC
|
|
63
|
+
directly. Use `columns`, `offset`, `limit`, and `path` to bound reads. A conversion
|
|
64
|
+
returns one coherent detached value or raises, rather than silently truncating.
|
|
65
|
+
|
|
66
|
+
```python
|
|
67
|
+
raw = notebook.files["sales.csv"].read_bytes()
|
|
68
|
+
frame = notebook.files["sales.csv"].to_polars()
|
|
69
|
+
config = notebook.files["config.json"].to_python()
|
|
70
|
+
raw_from_browser = await view.files["sales.csv"].read_bytes()
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Notebook file operations use Python I/O and need no Deno. View file operations use
|
|
74
|
+
the originating browser. Pass `format=` when filename, content type, and content
|
|
75
|
+
signatures cannot establish the parser. For advanced parsing, pass `read_bytes()`
|
|
76
|
+
to the dataframe library's own reader.
|
|
77
|
+
|
|
78
|
+
Headless data and Python files are synchronous by default. Their explicit async
|
|
79
|
+
accessors are `notebook.data.aio` and `notebook.files.aio`.
|
|
@@ -72,7 +72,7 @@ that operation's exception:
|
|
|
72
72
|
|
|
73
73
|
```python
|
|
74
74
|
try:
|
|
75
|
-
result = await view.
|
|
75
|
+
result = await view.data["visible"].to_python(limit=10)
|
|
76
76
|
except obs.errors.ObservableError as error:
|
|
77
77
|
operation_diagnostics = [asdict(diagnostic) for diagnostic in error.diagnostics]
|
|
78
78
|
raise
|
|
@@ -103,7 +103,7 @@ the failed check.
|
|
|
103
103
|
For the starter's `chart` key:
|
|
104
104
|
|
|
105
105
|
```python
|
|
106
|
-
print(notebook.
|
|
106
|
+
print(notebook.cells["chart"].source)
|
|
107
107
|
inspection = view.inspection
|
|
108
108
|
if inspection is not None:
|
|
109
109
|
chart = inspection.graph.cell("chart")
|
|
@@ -137,9 +137,9 @@ import can have `source=None` and `resolved=None`.
|
|
|
137
137
|
For the starter, `visible` is the transformed table consumed by the chart:
|
|
138
138
|
|
|
139
139
|
```python
|
|
140
|
-
sample = await view.
|
|
141
|
-
count = await view.
|
|
142
|
-
print(sample
|
|
140
|
+
sample = await view.data["visible"].to_python(limit=10)
|
|
141
|
+
count = await view.data["rowCount"].to_python()
|
|
142
|
+
print(sample, count)
|
|
143
143
|
```
|
|
144
144
|
|
|
145
145
|
Expect two rows and count `2` at `minimum=0`, then one row and count `1` at
|
|
@@ -6,7 +6,7 @@ Read [SKILL.md](../SKILL.md) for the object model and first chart.
|
|
|
6
6
|
|
|
7
7
|
Use the notebook project's dependency manager or the host's package-management
|
|
8
8
|
API. Apply that project's version pins and lockfile policy. Install `pyarrow`
|
|
9
|
-
when
|
|
9
|
+
when using `reference.to_arrow()` or evaluated `reference.to_pandas()`.
|
|
10
10
|
|
|
11
11
|
Check the running kernel, which may differ from a terminal environment:
|
|
12
12
|
|
|
@@ -48,8 +48,8 @@ Run checkpoints and reads in a later cell:
|
|
|
48
48
|
|
|
49
49
|
```python
|
|
50
50
|
state = await view.ready(timeout=30)
|
|
51
|
-
count = await view.
|
|
52
|
-
print(count
|
|
51
|
+
count = await view.data["rowCount"].to_python()
|
|
52
|
+
print(count)
|
|
53
53
|
```
|
|
54
54
|
|
|
55
55
|
Jupyter can process widget replies while this call awaits. `ready()` waits for
|
|
@@ -130,7 +130,7 @@ errors such as duplicate Python definitions must be fixed in the host cells.
|
|
|
130
130
|
|
|
131
131
|
Current marimo processes widget replies on the same command loop as ordinary
|
|
132
132
|
cell and code-mode execution. Top-level async syntax does not make a direct
|
|
133
|
-
`await view.ready()` or `await view.
|
|
133
|
+
`await view.ready()` or `await view.data[name].to_python()` safe inside that executing call.
|
|
134
134
|
Start the request, return control, and consume its result later.
|
|
135
135
|
|
|
136
136
|
For reactive data reads, use two separate Python cells. The producer starts a
|
|
@@ -145,7 +145,7 @@ get_data, set_data = mo.state(None)
|
|
|
145
145
|
|
|
146
146
|
async def load_rows():
|
|
147
147
|
try:
|
|
148
|
-
set_data(await view.
|
|
148
|
+
set_data(await view.data["visible"].to_python(limit=10))
|
|
149
149
|
except Exception as error:
|
|
150
150
|
set_data(error)
|
|
151
151
|
|
|
@@ -160,7 +160,7 @@ data = get_data()
|
|
|
160
160
|
if isinstance(data, Exception):
|
|
161
161
|
raise data
|
|
162
162
|
if data is not None:
|
|
163
|
-
print(data
|
|
163
|
+
print(data)
|
|
164
164
|
```
|
|
165
165
|
|
|
166
166
|
The displayed `view` comes from the starter. A `None` value means the request
|
|
@@ -214,7 +214,7 @@ else:
|
|
|
214
214
|
print("Browser checkpoint pending")
|
|
215
215
|
```
|
|
216
216
|
|
|
217
|
-
Use the same container for one-off `view.
|
|
217
|
+
Use the same container for one-off `view.data[name].to_python()` tasks. Cancel unfinished
|
|
218
218
|
tasks and remove consumed entries. Delete a temporary helper cell through
|
|
219
219
|
`ctx.delete_cell(...)` inside a context when finished, or retain it for repeated
|
|
220
220
|
checks. Do not spin in the same execution waiting for `task.done()`.
|
|
@@ -132,8 +132,8 @@ and its dependencies as executable code with the host page's privileges.
|
|
|
132
132
|
imported = obs.Notebook.from_observablehq("@d3/bar-chart", timeout=10)
|
|
133
133
|
```
|
|
134
134
|
|
|
135
|
-
This fetches a public Observable
|
|
136
|
-
then resolves
|
|
135
|
+
This fetches the source model from a public Observable page in Python. The
|
|
136
|
+
displayed browser view then resolves notebook modules and attachments. Inspect `imported.cells`
|
|
137
137
|
before choosing a selection. Use canonical handles for anonymous cells.
|
|
138
138
|
|
|
139
139
|
For an already loaded document mapping:
|
|
@@ -143,9 +143,10 @@ imported = obs.Notebook.from_observablehq_document(document)
|
|
|
143
143
|
```
|
|
144
144
|
|
|
145
145
|
Read JSON or compressed dataset storage with the data tooling appropriate to
|
|
146
|
-
that storage, then supply the document mapping. Preserve
|
|
147
|
-
to retain import provenance and dependency
|
|
148
|
-
the original record, while `cells` describe the
|
|
146
|
+
that storage, then supply the document mapping. Preserve `id`, `version`, and
|
|
147
|
+
`resolutions` to retain import provenance and declared dependency pins.
|
|
148
|
+
`source_document` holds the original record, while `cells` describe the
|
|
149
|
+
prepared Notebook Kit form.
|
|
149
150
|
Keep corpus samples and diagnostics in the user's designated artifact location.
|
|
150
151
|
|
|
151
152
|
## Export and finish
|
|
@@ -73,7 +73,7 @@ THE SOFTWARE.
|
|
|
73
73
|
Packages
|
|
74
74
|
|
|
75
75
|
- @observablehq/inspector 5.0.1 (ISC)
|
|
76
|
-
- @observablehq/runtime 6.0.
|
|
76
|
+
- @observablehq/runtime 6.0.1 (ISC)
|
|
77
77
|
|
|
78
78
|
-------------------------------------------------------------------------------
|
|
79
79
|
|
|
@@ -307,7 +307,7 @@ THE SOFTWARE.
|
|
|
307
307
|
===============================================================================
|
|
308
308
|
Packages
|
|
309
309
|
|
|
310
|
-
- anywidget-bundle 0.
|
|
310
|
+
- anywidget-bundle 0.1.1 (MIT)
|
|
311
311
|
|
|
312
312
|
-------------------------------------------------------------------------------
|
|
313
313
|
|
|
@@ -467,7 +467,7 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
467
467
|
===============================================================================
|
|
468
468
|
Packages
|
|
469
469
|
|
|
470
|
-
- es-module-lexer 2.3.
|
|
470
|
+
- es-module-lexer 2.3.2 (MIT)
|
|
471
471
|
|
|
472
472
|
-------------------------------------------------------------------------------
|
|
473
473
|
|
|
@@ -906,3 +906,8 @@ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
|
906
906
|
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
907
907
|
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
908
908
|
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
909
|
+
|
|
910
|
+
The optional server runtime includes the Playwright driver under Apache-2.0.
|
|
911
|
+
Its LICENSE, NOTICE, and ThirdPartyNotices.txt accompany the driver in
|
|
912
|
+
observablejs/static/server/driver/. Chromium is installed into the Playwright
|
|
913
|
+
browser cache when first requested.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pyobservablejs
|
|
3
|
-
Version: 0.
|
|
4
|
-
Summary: Observable
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: Observable notebooks as Python widgets and headless computations
|
|
5
5
|
Project-URL: Homepage, https://github.com/peter-gy/pyobservablejs
|
|
6
6
|
Project-URL: Documentation, https://peter-gy.github.io/pyobservablejs/
|
|
7
7
|
Project-URL: Source, https://github.com/peter-gy/pyobservablejs
|
|
@@ -21,9 +21,11 @@ Classifier: Programming Language :: Python :: 3.13
|
|
|
21
21
|
Classifier: Programming Language :: Python :: 3.14
|
|
22
22
|
Requires-Python: <3.15,>=3.11
|
|
23
23
|
Requires-Dist: agent-plugins>=0.2
|
|
24
|
-
Requires-Dist: anywidget-bundle==0.
|
|
24
|
+
Requires-Dist: anywidget-bundle==0.1.1
|
|
25
25
|
Requires-Dist: anywidget>=0.11.0
|
|
26
26
|
Requires-Dist: traitlets>=5
|
|
27
|
+
Provides-Extra: server
|
|
28
|
+
Requires-Dist: deno<3,>=2.9.6; extra == 'server'
|
|
27
29
|
Description-Content-Type: text/markdown
|
|
28
30
|
|
|
29
31
|
# pyobservablejs
|
|
@@ -73,6 +75,18 @@ trust, since their JavaScript runs in the host page.
|
|
|
73
75
|
|
|
74
76
|
**Experimental:** the API may change between releases.
|
|
75
77
|
|
|
78
|
+
## Run headlessly
|
|
79
|
+
|
|
80
|
+
Install `pyobservablejs[server]` to inspect and evaluate notebooks in Python
|
|
81
|
+
scripts and services:
|
|
82
|
+
|
|
83
|
+
```python
|
|
84
|
+
print(notebook.with_variables(threshold=0.5).data["doubled"].to_python())
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Read Python values, Polars or pandas dataframes, Arrow tables, and attachment bytes
|
|
88
|
+
through the data and file namespaces. [Headless Python guide](https://peter-gy.github.io/pyobservablejs/guide/server/).
|
|
89
|
+
|
|
76
90
|
## Build on it
|
|
77
91
|
|
|
78
92
|
- **Compose views.** `notebook.view("result")` displays the result and evaluates
|
|
@@ -45,6 +45,18 @@ trust, since their JavaScript runs in the host page.
|
|
|
45
45
|
|
|
46
46
|
**Experimental:** the API may change between releases.
|
|
47
47
|
|
|
48
|
+
## Run headlessly
|
|
49
|
+
|
|
50
|
+
Install `pyobservablejs[server]` to inspect and evaluate notebooks in Python
|
|
51
|
+
scripts and services:
|
|
52
|
+
|
|
53
|
+
```python
|
|
54
|
+
print(notebook.with_variables(threshold=0.5).data["doubled"].to_python())
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Read Python values, Polars or pandas dataframes, Arrow tables, and attachment bytes
|
|
58
|
+
through the data and file namespaces. [Headless Python guide](https://peter-gy.github.io/pyobservablejs/guide/server/).
|
|
59
|
+
|
|
48
60
|
## Build on it
|
|
49
61
|
|
|
50
62
|
- **Compose views.** `notebook.view("result")` displays the result and evaluates
|
|
@@ -28,6 +28,9 @@ class CustomBuildHook(BuildHookInterface):
|
|
|
28
28
|
static = Path(self.root, "src", "observablejs", "static")
|
|
29
29
|
required = (
|
|
30
30
|
static / "index.js",
|
|
31
|
+
static / "server" / "server.js",
|
|
32
|
+
static / "server" / "browser" / "browser.js",
|
|
33
|
+
static / "server" / "driver" / "index.mjs",
|
|
31
34
|
static / "anywidget.json",
|
|
32
35
|
static / "chunks" / "app.js",
|
|
33
36
|
)
|
|
@@ -4,8 +4,8 @@ build-backend = "agent_plugins.build.hatchling"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "pyobservablejs"
|
|
7
|
-
version = "0.
|
|
8
|
-
description = "Observable
|
|
7
|
+
version = "0.2.0"
|
|
8
|
+
description = "Observable notebooks as Python widgets and headless computations"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "MIT"
|
|
11
11
|
license-files = ["LICENSE", "NOTICE"]
|
|
@@ -13,7 +13,7 @@ authors = [{ name = "Peter Ferenc Gyarmati", email = "dev.petergy@gmail.com" }]
|
|
|
13
13
|
maintainers = [{ name = "Peter Ferenc Gyarmati", email = "dev.petergy@gmail.com" }]
|
|
14
14
|
requires-python = ">=3.11,<3.15"
|
|
15
15
|
keywords = ["anywidget", "jupyter", "marimo", "notebooks", "observable", "visualization"]
|
|
16
|
-
dependencies = ["agent-plugins>=0.2", "anywidget>=0.11.0", "anywidget-bundle==0.
|
|
16
|
+
dependencies = ["agent-plugins>=0.2", "anywidget>=0.11.0", "anywidget-bundle==0.1.1", "traitlets>=5"]
|
|
17
17
|
classifiers = [
|
|
18
18
|
"Programming Language :: Python :: 3",
|
|
19
19
|
"Programming Language :: Python :: 3 :: Only",
|
|
@@ -24,6 +24,9 @@ classifiers = [
|
|
|
24
24
|
"License :: OSI Approved :: MIT License",
|
|
25
25
|
]
|
|
26
26
|
|
|
27
|
+
[project.optional-dependencies]
|
|
28
|
+
server = ["deno>=2.9.6,<3"]
|
|
29
|
+
|
|
27
30
|
[project.urls]
|
|
28
31
|
Homepage = "https://github.com/peter-gy/pyobservablejs"
|
|
29
32
|
Documentation = "https://peter-gy.github.io/pyobservablejs/"
|
|
@@ -11,8 +11,9 @@ from ._factories import (
|
|
|
11
11
|
view_from_observablehq_document,
|
|
12
12
|
)
|
|
13
13
|
from ._graph import CellInfo, DependencyEdge, NotebookGraph
|
|
14
|
-
from ._notebook import Notebook, NotebookCell
|
|
14
|
+
from ._notebook import Notebook, NotebookCell
|
|
15
15
|
from ._themes import NOTEBOOK_THEMES
|
|
16
|
+
from ._view import NotebookView
|
|
16
17
|
|
|
17
18
|
__version__ = _version("pyobservablejs")
|
|
18
19
|
|