figpack 0.4.3__tar.gz → 0.4.4__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.
- {figpack-0.4.3/figpack.egg-info → figpack-0.4.4}/PKG-INFO +3 -1
- {figpack-0.4.3 → figpack-0.4.4}/figpack/__init__.py +1 -1
- {figpack-0.4.3 → figpack-0.4.4}/figpack/core/_bundle_utils.py +3 -1
- {figpack-0.4.3 → figpack-0.4.4}/figpack/core/_figure_spec.py +2 -2
- figpack-0.4.4/figpack/figpack-figure-dist/assets/index-BdXsZMUB.css +1 -0
- figpack-0.4.4/figpack/figpack-figure-dist/assets/index-I4MhhmZQ.js +398 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/figpack-figure-dist/index.html +2 -2
- {figpack-0.4.3 → figpack-0.4.4/figpack.egg-info}/PKG-INFO +3 -1
- {figpack-0.4.3 → figpack-0.4.4}/figpack.egg-info/SOURCES.txt +2 -2
- {figpack-0.4.3 → figpack-0.4.4}/figpack.egg-info/requires.txt +2 -0
- {figpack-0.4.3 → figpack-0.4.4}/pyproject.toml +3 -1
- {figpack-0.4.3 → figpack-0.4.4}/tests/test_figure_spec.py +11 -3
- figpack-0.4.3/figpack/figpack-figure-dist/assets/index-DI9hPTUe.js +0 -398
- figpack-0.4.3/figpack/figpack-figure-dist/assets/index-oS-16pKZ.css +0 -1
- {figpack-0.4.3 → figpack-0.4.4}/LICENSE +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/MANIFEST.in +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/README.md +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/cli.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/core/__init__.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/core/_figure_utils.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/core/_file_handler.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/core/_patch_figure.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/core/_remix_figure.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/core/_remix_patch.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/core/_revert_patch_figure.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/core/_save_figure.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/core/_server_manager.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/core/_show_view.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/core/_upload_bundle.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/core/_view_figure.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/core/_zarr_consolidate.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/core/config.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/core/extension_view.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/core/figpack_extension.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/core/figpack_view.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/core/zarr.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/extensions.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/figpack-figure-dist/assets/neurosift-logo-CLsuwLMO.png +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/utils/__init__.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/views/Box.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/views/CaptionedView.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/views/DataFrame.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/views/Gallery.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/views/GalleryItem.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/views/Iframe.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/views/Image.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/views/LayoutItem.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/views/Markdown.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/views/MatplotlibFigure.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/views/MountainLayout.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/views/MountainLayoutItem.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/views/MultiChannelTimeseries.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/views/PlotlyExtension/PlotlyExtension.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/views/PlotlyExtension/__init__.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/views/PlotlyExtension/_plotly_extension.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/views/PlotlyExtension/plotly_view.js +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/views/Spectrogram.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/views/Splitter.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/views/TabLayout.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/views/TabLayoutItem.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/views/TimeseriesGraph.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/views/VerticalLayout.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/views/VerticalLayoutItem.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack/views/__init__.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack.egg-info/dependency_links.txt +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack.egg-info/entry_points.txt +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/figpack.egg-info/top_level.txt +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/setup.cfg +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/tests/test_box.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/tests/test_cli.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/tests/test_core.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/tests/test_dataframe.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/tests/test_extension_system.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/tests/test_figpack_view.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/tests/test_file_handler.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/tests/test_gallery.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/tests/test_image.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/tests/test_markdown.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/tests/test_matplotlib_figure.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/tests/test_multichannel_timeseries.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/tests/test_patch_pages.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/tests/test_plotly_figure.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/tests/test_remix_patch.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/tests/test_server_manager.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/tests/test_spectrogram.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/tests/test_splitter.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/tests/test_tablayout.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/tests/test_timeseries_graph.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/tests/test_upload_bundle.py +0 -0
- {figpack-0.4.3 → figpack-0.4.4}/tests/test_view_figure.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: figpack
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.4
|
|
4
4
|
Summary: A Python package for creating shareable, interactive visualizations in the browser
|
|
5
5
|
Author-email: Jeremy Magland <jmagland@flatironinstitute.org>
|
|
6
6
|
License: Apache-2.0
|
|
@@ -72,6 +72,8 @@ Requires-Dist: sphinx-copybutton>=0.5; extra == "docs"
|
|
|
72
72
|
Requires-Dist: lindi; extra == "docs"
|
|
73
73
|
Requires-Dist: nibabel; extra == "docs"
|
|
74
74
|
Requires-Dist: Pillow; extra == "docs"
|
|
75
|
+
Requires-Dist: scikit-learn; extra == "docs"
|
|
76
|
+
Requires-Dist: scipy; extra == "docs"
|
|
75
77
|
Dynamic: license-file
|
|
76
78
|
|
|
77
79
|
# figpack
|
|
@@ -80,7 +80,9 @@ def prepare_figure_bundle(
|
|
|
80
80
|
view.write_to_zarr_group(zarr_group)
|
|
81
81
|
|
|
82
82
|
# Add title and description and script as attributes on the top-level zarr group
|
|
83
|
-
|
|
83
|
+
# The figure title is stored separately from the root view's own "title"
|
|
84
|
+
# attribute (e.g. the title of a Box), so that it does not replace it
|
|
85
|
+
zarr_group.attrs["figure_title"] = title
|
|
84
86
|
if description:
|
|
85
87
|
zarr_group.attrs["description"] = description
|
|
86
88
|
if script:
|
|
@@ -28,7 +28,7 @@ SPEC_SIZE_WARNING_CHARS = 20000
|
|
|
28
28
|
_SPEC_LINE_WIDTH = 120
|
|
29
29
|
|
|
30
30
|
# Props of the root node that belong to the figure rather than its root view
|
|
31
|
-
_FIGURE_PROPS = {"
|
|
31
|
+
_FIGURE_PROPS = {"figure_title"}
|
|
32
32
|
|
|
33
33
|
|
|
34
34
|
@dataclass
|
|
@@ -240,7 +240,7 @@ def build_figure_spec_docs(
|
|
|
240
240
|
'- data: path of a group in data.zarr for this node (e.g. "/item_0"), or null for a node defined only by the spec (then view_type is required). If omitted, the node uses its counterpart in the original figure: the root group, or the parent\'s subgroup with the same name.',
|
|
241
241
|
"- view_type: the view type of the node.",
|
|
242
242
|
"Only the props documented here are listed in the spec. Other attributes in data.zarr describe the stored data and should not be changed.",
|
|
243
|
-
"Root node: props.
|
|
243
|
+
"Root node: props.figure_title (string) is the figure title.",
|
|
244
244
|
]
|
|
245
245
|
view_types = _collect_view_types(zarr_group)
|
|
246
246
|
documented = [vt for vt in view_types if vt in schemas]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.unitEntryBase{padding-right:13px;padding-top:10px}.unselectedUnitEntry{border:1px transparent solid;font-weight:400;color:#000;background-color:#fff}.selectedUnitEntry{border:1px solid blue;font-weight:700;color:#000;background-color:#b5d1ff}.unitIdsColumnLabelStyle{min-width:200px;font-weight:700;padding:7px 5px}.unitLabelsStyle{padding-right:3px;color:#333}.plotUnitLabel{text-align:left;margin-left:20px;margin-top:5px;font-weight:700}.plotWrapperButtonParent{display:inline-block}.plotWrapperStyleButton{padding-top:50px}.plotUnselectedStyle{border:3px solid rgb(202,224,231)}.plotSelectedStyle{border:3px solid #9999ff;background-color:#fff}.plotUnselectableStyle{border:3px solid transparent}.plotCurrentStyle{border:3px solid blue;background-color:#fff}.plotLabelStyle{font-weight:700;text-align:center;overflow:hidden;white-space:nowrap}.figpack-markdown table{border-collapse:collapse;margin:.8em 0}.figpack-markdown th,.figpack-markdown td{border:1px solid #d0d7de;padding:4px 12px}.figpack-markdown th{background-color:#7f7f7f14}.figpack-markdown blockquote{margin:.8em 0;padding:0 1em;border-left:4px solid #d0d7de;opacity:.85}.figpack-markdown math[display=block]{margin:.8em 0;font-size:1.15em}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color:#213547;background-color:#fff;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#747bff}body{margin:0;overflow:hidden}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#f9f9f9;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}.status-bar{position:fixed;left:0;right:0;height:30px;background-color:#f5f5f5;color:#333;display:flex;align-items:center;padding:0 12px;font-size:12px;border-top:1px solid #ddd;z-index:1000}.status-bar.warning{background-color:#fff3cd;color:#856404;border-top:1px solid #ffeaa7}.status-bar.error,.status-bar.expired{background-color:#f8d7da;color:#721c24;border-top:1px solid #f5c6cb}.manage-button{background-color:#e0e0e0;color:#333;border:1px solid #ccc;padding:4px 8px;border-radius:4px;cursor:pointer;font-size:11px;height:22px;margin-left:12px;transition:background-color .2s}.manage-button:hover{background-color:#d0d0d0}.about-button{background-color:#e0e0e0;color:#333;border:1px solid #ccc;padding:4px 8px;border-radius:4px;cursor:pointer;font-size:11px;height:22px;margin-left:12px;transition:background-color .2s}.about-button:hover{background-color:#d0d0d0}.share-button{background-color:#e0e0e0;color:#333;border:1px solid #ccc;padding:4px 8px;border-radius:4px;cursor:pointer;font-size:11px;height:22px;margin-left:12px;transition:background-color .2s;display:flex;align-items:center;gap:4px}.share-button:hover{background-color:#d0d0d0}.about-dialog-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:2000}.about-dialog{background-color:#fff;color:#333;border-radius:8px;max-width:600px;max-height:80vh;width:90%;box-shadow:0 4px 20px #00000026;overflow:hidden}.about-dialog-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #ddd}.about-dialog-header h2{margin:0;font-size:18px;font-weight:600}.about-dialog-close{background:none;border:none;color:#333;font-size:24px;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s}.about-dialog-close:hover{background-color:#f0f0f0}.about-dialog-content{padding:20px;overflow-y:auto;max-height:calc(80vh - 80px)}.about-dialog-description{line-height:1.6}.about-dialog-provenance{margin-top:0;margin-bottom:12px;font-size:.9em;color:#555;overflow-wrap:anywhere}.about-dialog-description h1,.about-dialog-description h2,.about-dialog-description h3{margin-top:0;margin-bottom:12px}.about-dialog-description p{margin-bottom:12px}.about-dialog-description code{background-color:#f5f5f5;color:#333;padding:2px 4px;border-radius:3px;font-family:Courier New,monospace;font-size:.9em}.about-dialog-description pre{background-color:#f5f5f5;color:#333;padding:12px;border-radius:4px;overflow-x:auto;margin-bottom:12px}.about-dialog-description ul,.about-dialog-description ol{margin-bottom:12px;padding-left:20px}.about-dialog-description blockquote{border-left:4px solid #ccc;padding-left:16px;margin:12px 0;font-style:italic}.manage-edits-view{display:flex;align-items:center;margin-left:12px}.edits-notification{color:#e65100;font-weight:500;margin-right:8px}.save-changes-button{background-color:#ff9800;color:#fff;border:1px solid #f57c00;padding:4px 8px;border-radius:4px;cursor:pointer;font-size:11px;height:22px;transition:background-color .2s}.save-changes-button:hover{background-color:#f57c00}.dialog-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:2000}.dialog-content{background-color:#fff;color:#333;border-radius:8px;max-width:500px;width:90%;box-shadow:0 4px 20px #00000026;overflow:hidden}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #ddd}.dialog-header h3{margin:0;font-size:18px;font-weight:600}.dialog-close{background:none;border:none;color:#333;font-size:24px;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s}.dialog-close:hover{background-color:#f0f0f0}.dialog-body{padding:20px}.dialog-body p{margin:0 0 12px;line-height:1.5}.dialog-footer{padding:16px 20px;border-top:1px solid #ddd;display:flex;justify-content:flex-end}.dialog-button{background-color:#e0e0e0;color:#333;border:1px solid #ccc;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px;transition:background-color .2s}.dialog-button:hover{background-color:#d0d0d0}.dialog-fullscreen{position:fixed;inset:0;background-color:#fff;color:#333;z-index:2000;display:flex;flex-direction:column}.dialog-content-fullscreen{display:flex;flex-direction:column;height:100%;overflow:hidden}.dialog-content-fullscreen .dialog-header{flex-shrink:0}.dialog-content-fullscreen .dialog-body{flex:1;overflow-y:auto;padding:20px}.dialog-content-fullscreen .dialog-footer{flex-shrink:0}
|