Python Client
All notable changes to the GoFigr Python client (gofigr).
Current version: v2.0.1
v2.0.1 — March 5, 2026
Patch release improving widget resilience and @reproducible ergonomics.
Improvements
Graceful anywidget fallback — When
anywidgetis missing or its JupyterLab extension is not registered, interactive figures now fall back to non-interactive rendering with a warning banner instead of crashingcheck_anywidget_health()utility — New diagnostic function for step-by-step troubleshooting of widget issues (checks package installation, traitlets, Jupyter kernel, and provides frontend extension guidance)Bare
@reproduciblesupport — The decorator can now be used without parentheses (@reproducibleis equivalent to@reproducible())
Files Changed
gofigr/reproducible.py— +142 lines:_ANYWIDGET_WARNING_HTML,check_anywidget_health(),_run_interactive_fallback(), updatedreproducible()signature
v2.0.0 — March 5, 2026
Major release introducing Clean Room reproducibility and Pyodide support.
Clean Room: Reproducible Figures
@reproducibledecorator — Capture source code, parameters, and package dependencies with every published figureInteractive parameter widgets —
SliderParam,DropdownParam,CheckboxParam,TextParam, andStaticParamfor in-browser figure re-renderingParameter serialization supports JSON (primitives) and Parquet (DataFrames) with 100MB size limit
Cross-language parameter model enables future R client support
Pyodide Support
PyodidePublisher— Publish figures from browser-based Python environments (e.g., JupyterLite)SVG added to default Pyodide image formats for vector export
Guarded all optional imports (
IPython,blake3,git,py3Dmol, etc.) for restricted environments
Performance & Compatibility
API v1.4 —
Workspace.list()uses shallow serialization, significantly speeding upconfigure()in JupyterWatermark stabilization — Padding no longer causes figure size shifts on publish
Python 3.12 compatibility — Replaced
pkg_resourceswithpathlib.Pathand updatedimportlib.resourcesAPIsSwitched from
pyqrcodetopyqrcodengAdded
pyarrowdependency for Parquet support
Breaking Changes
API version bumped from v1.3 to v1.4 — requires server v2.5.0+
Workspace.list()no longer returns nested analyses/assets/stories; call.fetch()on individual workspaces for full details
v1.3.2 and earlier
Previous releases focused on core figure publishing, Jupyter integration, and workspace management. See the GitHub repository for the full commit history.
Last updated