scitex 2.7.3__py3-none-any.whl → 2.10.0__py3-none-any.whl
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.
- scitex/__init__.py +15 -7
- scitex/__version__.py +1 -2
- scitex/_install_guide.py +250 -0
- scitex/_optional_deps.py +206 -39
- scitex/ai/_gen_ai/_Groq.py +2 -4
- scitex/ai/_gen_ai/_OpenAI.py +5 -2
- scitex/ai/_gen_ai/_Perplexity.py +20 -6
- scitex/audio/__init__.py +24 -15
- scitex/audio/_cross_process_lock.py +139 -0
- scitex/audio/_mcp_handlers.py +256 -0
- scitex/audio/_mcp_tool_schemas.py +203 -0
- scitex/audio/engines/elevenlabs_engine.py +5 -2
- scitex/audio/mcp_server.py +98 -457
- scitex/bridge/__init__.py +30 -19
- scitex/bridge/_figrecipe.py +245 -0
- scitex/bridge/_helpers.py +2 -1
- scitex/bridge/_plt_vis.py +23 -10
- scitex/bridge/_stats_plt.py +18 -5
- scitex/bridge/_stats_vis.py +16 -2
- scitex/browser/__init__.py +84 -44
- scitex/browser/automation/__init__.py +5 -1
- scitex/browser/core/BrowserMixin.py +17 -4
- scitex/browser/core/__init__.py +11 -2
- scitex/browser/remote/CaptchaHandler.py +1 -1
- scitex/browser/remote/ZenRowsAPIClient.py +1 -1
- scitex/capture/grid.py +487 -0
- scitex/capture/mcp_handlers.py +401 -0
- scitex/capture/mcp_tool_defs.py +192 -0
- scitex/capture/mcp_tools.py +241 -0
- scitex/capture/mcp_utils.py +30 -0
- scitex/cli/convert.py +421 -0
- scitex/cli/main.py +6 -4
- scitex/datetime/__init__.py +46 -0
- scitex/datetime/_linspace.py +100 -0
- scitex/datetime/_normalize_timestamp.py +306 -0
- scitex/db/_delete_duplicates.py +4 -4
- scitex/db/_sqlite3/_delete_duplicates.py +11 -2
- scitex/dev/plt/__init__.py +61 -62
- scitex/dev/plt/demo_plotters/__init__.py +0 -0
- scitex/dev/plt/demo_plotters/plot_mpl_axhline.py +28 -0
- scitex/dev/plt/demo_plotters/plot_mpl_axhspan.py +28 -0
- scitex/dev/plt/demo_plotters/plot_mpl_axvline.py +28 -0
- scitex/dev/plt/demo_plotters/plot_mpl_axvspan.py +28 -0
- scitex/dev/plt/demo_plotters/plot_mpl_bar.py +29 -0
- scitex/dev/plt/demo_plotters/plot_mpl_barh.py +29 -0
- scitex/dev/plt/demo_plotters/plot_mpl_boxplot.py +28 -0
- scitex/dev/plt/demo_plotters/plot_mpl_contour.py +31 -0
- scitex/dev/plt/demo_plotters/plot_mpl_contourf.py +31 -0
- scitex/dev/plt/demo_plotters/plot_mpl_errorbar.py +30 -0
- scitex/dev/plt/demo_plotters/plot_mpl_eventplot.py +28 -0
- scitex/dev/plt/demo_plotters/plot_mpl_fill.py +30 -0
- scitex/dev/plt/demo_plotters/plot_mpl_fill_between.py +31 -0
- scitex/dev/plt/demo_plotters/plot_mpl_hexbin.py +28 -0
- scitex/dev/plt/demo_plotters/plot_mpl_hist.py +28 -0
- scitex/dev/plt/demo_plotters/plot_mpl_hist2d.py +28 -0
- scitex/dev/plt/demo_plotters/plot_mpl_imshow.py +29 -0
- scitex/dev/plt/demo_plotters/plot_mpl_pcolormesh.py +31 -0
- scitex/dev/plt/demo_plotters/plot_mpl_pie.py +29 -0
- scitex/dev/plt/demo_plotters/plot_mpl_plot.py +29 -0
- scitex/dev/plt/demo_plotters/plot_mpl_quiver.py +31 -0
- scitex/dev/plt/demo_plotters/plot_mpl_scatter.py +28 -0
- scitex/dev/plt/demo_plotters/plot_mpl_stackplot.py +31 -0
- scitex/dev/plt/demo_plotters/plot_mpl_stem.py +29 -0
- scitex/dev/plt/demo_plotters/plot_mpl_step.py +29 -0
- scitex/dev/plt/demo_plotters/plot_mpl_violinplot.py +28 -0
- scitex/dev/plt/demo_plotters/plot_sns_barplot.py +29 -0
- scitex/dev/plt/demo_plotters/plot_sns_boxplot.py +29 -0
- scitex/dev/plt/demo_plotters/plot_sns_heatmap.py +28 -0
- scitex/dev/plt/demo_plotters/plot_sns_histplot.py +29 -0
- scitex/dev/plt/demo_plotters/plot_sns_kdeplot.py +29 -0
- scitex/dev/plt/demo_plotters/plot_sns_lineplot.py +31 -0
- scitex/dev/plt/demo_plotters/plot_sns_scatterplot.py +29 -0
- scitex/dev/plt/demo_plotters/plot_sns_stripplot.py +29 -0
- scitex/dev/plt/demo_plotters/plot_sns_swarmplot.py +29 -0
- scitex/dev/plt/demo_plotters/plot_sns_violinplot.py +29 -0
- scitex/dev/plt/demo_plotters/plot_stx_bar.py +29 -0
- scitex/dev/plt/demo_plotters/plot_stx_barh.py +29 -0
- scitex/dev/plt/demo_plotters/plot_stx_box.py +28 -0
- scitex/dev/plt/demo_plotters/plot_stx_boxplot.py +28 -0
- scitex/dev/plt/demo_plotters/plot_stx_conf_mat.py +28 -0
- scitex/dev/plt/demo_plotters/plot_stx_contour.py +31 -0
- scitex/dev/plt/demo_plotters/plot_stx_ecdf.py +28 -0
- scitex/dev/plt/demo_plotters/plot_stx_errorbar.py +30 -0
- scitex/dev/plt/demo_plotters/plot_stx_fill_between.py +31 -0
- scitex/dev/plt/demo_plotters/plot_stx_fillv.py +28 -0
- scitex/dev/plt/demo_plotters/plot_stx_heatmap.py +28 -0
- scitex/dev/plt/demo_plotters/plot_stx_image.py +28 -0
- scitex/dev/plt/demo_plotters/plot_stx_imshow.py +28 -0
- scitex/dev/plt/demo_plotters/plot_stx_joyplot.py +28 -0
- scitex/dev/plt/demo_plotters/plot_stx_kde.py +28 -0
- scitex/dev/plt/demo_plotters/plot_stx_line.py +28 -0
- scitex/dev/plt/demo_plotters/plot_stx_mean_ci.py +28 -0
- scitex/dev/plt/demo_plotters/plot_stx_mean_std.py +28 -0
- scitex/dev/plt/demo_plotters/plot_stx_median_iqr.py +28 -0
- scitex/dev/plt/demo_plotters/plot_stx_raster.py +28 -0
- scitex/dev/plt/demo_plotters/plot_stx_rectangle.py +28 -0
- scitex/dev/plt/demo_plotters/plot_stx_scatter.py +29 -0
- scitex/dev/plt/demo_plotters/plot_stx_shaded_line.py +29 -0
- scitex/dev/plt/demo_plotters/plot_stx_violin.py +28 -0
- scitex/dev/plt/demo_plotters/plot_stx_violinplot.py +28 -0
- scitex/dev/plt/mpl/get_dir_ax.py +46 -0
- scitex/dev/plt/mpl/get_signatures.py +176 -0
- scitex/dev/plt/mpl/get_signatures_details.py +522 -0
- scitex/dev/plt/plot_mpl_axhline.py +0 -0
- scitex/dev/plt/plot_mpl_axhspan.py +0 -0
- scitex/dev/plt/plot_mpl_axvline.py +0 -0
- scitex/dev/plt/plot_mpl_axvspan.py +0 -0
- scitex/dev/plt/plot_mpl_bar.py +0 -0
- scitex/dev/plt/plot_mpl_barh.py +0 -0
- scitex/dev/plt/plot_mpl_boxplot.py +0 -0
- scitex/dev/plt/plot_mpl_contour.py +0 -0
- scitex/dev/plt/plot_mpl_contourf.py +0 -0
- scitex/dev/plt/plot_mpl_errorbar.py +0 -0
- scitex/dev/plt/plot_mpl_eventplot.py +0 -0
- scitex/dev/plt/plot_mpl_fill.py +0 -0
- scitex/dev/plt/plot_mpl_fill_between.py +0 -0
- scitex/dev/plt/plot_mpl_hexbin.py +0 -0
- scitex/dev/plt/plot_mpl_hist.py +0 -0
- scitex/dev/plt/plot_mpl_hist2d.py +0 -0
- scitex/dev/plt/plot_mpl_imshow.py +0 -0
- scitex/dev/plt/plot_mpl_pcolormesh.py +0 -0
- scitex/dev/plt/plot_mpl_pie.py +0 -0
- scitex/dev/plt/plot_mpl_plot.py +0 -0
- scitex/dev/plt/plot_mpl_quiver.py +0 -0
- scitex/dev/plt/plot_mpl_scatter.py +0 -0
- scitex/dev/plt/plot_mpl_stackplot.py +0 -0
- scitex/dev/plt/plot_mpl_stem.py +0 -0
- scitex/dev/plt/plot_mpl_step.py +0 -0
- scitex/dev/plt/plot_mpl_violinplot.py +0 -0
- scitex/dev/plt/plot_sns_barplot.py +0 -0
- scitex/dev/plt/plot_sns_boxplot.py +0 -0
- scitex/dev/plt/plot_sns_heatmap.py +0 -0
- scitex/dev/plt/plot_sns_histplot.py +0 -0
- scitex/dev/plt/plot_sns_kdeplot.py +0 -0
- scitex/dev/plt/plot_sns_lineplot.py +0 -0
- scitex/dev/plt/plot_sns_scatterplot.py +0 -0
- scitex/dev/plt/plot_sns_stripplot.py +0 -0
- scitex/dev/plt/plot_sns_swarmplot.py +0 -0
- scitex/dev/plt/plot_sns_violinplot.py +0 -0
- scitex/dev/plt/plot_stx_bar.py +0 -0
- scitex/dev/plt/plot_stx_barh.py +0 -0
- scitex/dev/plt/plot_stx_box.py +0 -0
- scitex/dev/plt/plot_stx_boxplot.py +0 -0
- scitex/dev/plt/plot_stx_conf_mat.py +0 -0
- scitex/dev/plt/plot_stx_contour.py +0 -0
- scitex/dev/plt/plot_stx_ecdf.py +0 -0
- scitex/dev/plt/plot_stx_errorbar.py +0 -0
- scitex/dev/plt/plot_stx_fill_between.py +0 -0
- scitex/dev/plt/plot_stx_fillv.py +0 -0
- scitex/dev/plt/plot_stx_heatmap.py +0 -0
- scitex/dev/plt/plot_stx_image.py +0 -0
- scitex/dev/plt/plot_stx_imshow.py +0 -0
- scitex/dev/plt/plot_stx_joyplot.py +0 -0
- scitex/dev/plt/plot_stx_kde.py +0 -0
- scitex/dev/plt/plot_stx_line.py +0 -0
- scitex/dev/plt/plot_stx_mean_ci.py +0 -0
- scitex/dev/plt/plot_stx_mean_std.py +0 -0
- scitex/dev/plt/plot_stx_median_iqr.py +0 -0
- scitex/dev/plt/plot_stx_raster.py +0 -0
- scitex/dev/plt/plot_stx_rectangle.py +0 -0
- scitex/dev/plt/plot_stx_scatter.py +0 -0
- scitex/dev/plt/plot_stx_shaded_line.py +0 -0
- scitex/dev/plt/plot_stx_violin.py +0 -0
- scitex/dev/plt/plot_stx_violinplot.py +0 -0
- scitex/diagram/README.md +197 -0
- scitex/diagram/__init__.py +48 -0
- scitex/diagram/_compile.py +312 -0
- scitex/diagram/_diagram.py +355 -0
- scitex/diagram/_presets.py +173 -0
- scitex/diagram/_schema.py +182 -0
- scitex/diagram/_split.py +278 -0
- scitex/dict/_pop_keys.py +1 -7
- scitex/dsp/__init__.py +15 -10
- scitex/dsp/add_noise.py +5 -2
- scitex/dsp/example.py +35 -22
- scitex/dsp/filt.py +8 -3
- scitex/dsp/reference.py +3 -2
- scitex/dsp/utils/__init__.py +2 -1
- scitex/dsp/utils/_differential_bandpass_filters.py +14 -4
- scitex/dt/__init__.py +39 -2
- scitex/errors.py +82 -521
- scitex/fig/__init__.py +4 -4
- scitex/fig/editor/__init__.py +5 -2
- scitex/fig/editor/_dearpygui_editor.py +1 -1
- scitex/fig/editor/_mpl_editor.py +1 -1
- scitex/fig/editor/_qt_editor.py +1 -1
- scitex/fig/editor/_tkinter_editor.py +1 -1
- scitex/fig/editor/edit/__init__.py +50 -0
- scitex/fig/editor/edit/backend_detector.py +109 -0
- scitex/fig/editor/edit/bundle_resolver.py +240 -0
- scitex/fig/editor/edit/editor_launcher.py +239 -0
- scitex/fig/editor/edit/manual_handler.py +53 -0
- scitex/fig/editor/edit/panel_loader.py +232 -0
- scitex/fig/editor/edit/path_resolver.py +67 -0
- scitex/fig/editor/flask_editor/_bbox.py +23 -0
- scitex/fig/editor/flask_editor/_core.py +908 -103
- scitex/fig/editor/flask_editor/_renderer.py +74 -0
- scitex/fig/editor/flask_editor/static/css/base/reset.css +41 -0
- scitex/fig/editor/flask_editor/static/css/base/typography.css +16 -0
- scitex/fig/editor/flask_editor/static/css/base/variables.css +85 -0
- scitex/fig/editor/flask_editor/static/css/components/buttons.css +217 -0
- scitex/fig/editor/flask_editor/static/css/components/context-menu.css +93 -0
- scitex/fig/editor/flask_editor/static/css/components/dropdown.css +57 -0
- scitex/fig/editor/flask_editor/static/css/components/forms.css +112 -0
- scitex/fig/editor/flask_editor/static/css/components/modal.css +59 -0
- scitex/fig/editor/flask_editor/static/css/components/sections.css +212 -0
- scitex/fig/editor/flask_editor/static/css/features/canvas.css +176 -0
- scitex/fig/editor/flask_editor/static/css/features/element-inspector.css +190 -0
- scitex/fig/editor/flask_editor/static/css/features/loading.css +59 -0
- scitex/fig/editor/flask_editor/static/css/features/overlay.css +45 -0
- scitex/fig/editor/flask_editor/static/css/features/panel-grid.css +95 -0
- scitex/fig/editor/flask_editor/static/css/features/selection.css +101 -0
- scitex/fig/editor/flask_editor/static/css/features/statistics.css +138 -0
- scitex/fig/editor/flask_editor/static/css/index.css +31 -0
- scitex/fig/editor/flask_editor/static/css/layout/container.css +7 -0
- scitex/fig/editor/flask_editor/static/css/layout/controls.css +56 -0
- scitex/fig/editor/flask_editor/static/css/layout/preview.css +78 -0
- scitex/fig/editor/flask_editor/static/js/alignment/axis.js +314 -0
- scitex/fig/editor/flask_editor/static/js/alignment/basic.js +107 -0
- scitex/fig/editor/flask_editor/static/js/alignment/distribute.js +54 -0
- scitex/fig/editor/flask_editor/static/js/canvas/canvas.js +172 -0
- scitex/fig/editor/flask_editor/static/js/canvas/dragging.js +258 -0
- scitex/fig/editor/flask_editor/static/js/canvas/resize.js +48 -0
- scitex/fig/editor/flask_editor/static/js/canvas/selection.js +71 -0
- scitex/fig/editor/flask_editor/static/js/core/api.js +288 -0
- scitex/fig/editor/flask_editor/static/js/core/state.js +143 -0
- scitex/fig/editor/flask_editor/static/js/core/utils.js +245 -0
- scitex/fig/editor/flask_editor/static/js/dev/element-inspector.js +992 -0
- scitex/fig/editor/flask_editor/static/js/editor/bbox.js +339 -0
- scitex/fig/editor/flask_editor/static/js/editor/element-drag.js +286 -0
- scitex/fig/editor/flask_editor/static/js/editor/overlay.js +371 -0
- scitex/fig/editor/flask_editor/static/js/editor/preview.js +293 -0
- scitex/fig/editor/flask_editor/static/js/main.js +426 -0
- scitex/fig/editor/flask_editor/static/js/shortcuts/context-menu.js +152 -0
- scitex/fig/editor/flask_editor/static/js/shortcuts/keyboard.js +265 -0
- scitex/fig/editor/flask_editor/static/js/ui/controls.js +184 -0
- scitex/fig/editor/flask_editor/static/js/ui/download.js +57 -0
- scitex/fig/editor/flask_editor/static/js/ui/help.js +100 -0
- scitex/fig/editor/flask_editor/static/js/ui/theme.js +34 -0
- scitex/fig/editor/flask_editor/templates/__init__.py +95 -5
- scitex/fig/editor/flask_editor/templates/_html.py +27 -9
- scitex/fig/editor/flask_editor/templates/_scripts.py +1928 -131
- scitex/fig/editor/flask_editor/templates/_styles.py +363 -51
- scitex/fig/io/_bundle.py +104 -19
- scitex/fts/README.md +262 -0
- scitex/fts/TODO.md +66 -0
- scitex/fts/__init__.py +90 -0
- scitex/fts/_bundle/README_IN_BUNDLE.md +102 -0
- scitex/fts/_bundle/_FTS.py +657 -0
- scitex/fts/_bundle/__init__.py +38 -0
- scitex/fts/_bundle/_children.py +216 -0
- scitex/fts/_bundle/_conversion/__init__.py +15 -0
- scitex/fts/_bundle/_conversion/_bundle2dict.py +44 -0
- scitex/fts/_bundle/_conversion/_dict2bundle.py +50 -0
- scitex/fts/_bundle/_dataclasses/_Axes.py +57 -0
- scitex/fts/_bundle/_dataclasses/_BBox.py +54 -0
- scitex/fts/_bundle/_dataclasses/_ColumnDef.py +72 -0
- scitex/fts/_bundle/_dataclasses/_DataFormat.py +40 -0
- scitex/fts/_bundle/_dataclasses/_DataInfo.py +135 -0
- scitex/fts/_bundle/_dataclasses/_DataSource.py +44 -0
- scitex/fts/_bundle/_dataclasses/_Node.py +319 -0
- scitex/fts/_bundle/_dataclasses/_NodeRefs.py +45 -0
- scitex/fts/_bundle/_dataclasses/_SizeMM.py +38 -0
- scitex/fts/_bundle/_dataclasses/__init__.py +35 -0
- scitex/fts/_bundle/_extractors/__init__.py +32 -0
- scitex/fts/_bundle/_extractors/_extract_bar.py +131 -0
- scitex/fts/_bundle/_extractors/_extract_line.py +71 -0
- scitex/fts/_bundle/_extractors/_extract_scatter.py +79 -0
- scitex/fts/_bundle/_loader.py +134 -0
- scitex/fts/_bundle/_mpl_helpers.py +389 -0
- scitex/fts/_bundle/_saver.py +269 -0
- scitex/fts/_bundle/_storage.py +200 -0
- scitex/fts/_bundle/_utils/__init__.py +55 -0
- scitex/fts/_bundle/_utils/_const.py +26 -0
- scitex/fts/_bundle/_utils/_errors.py +73 -0
- scitex/fts/_bundle/_utils/_generate.py +21 -0
- scitex/fts/_bundle/_utils/_types.py +76 -0
- scitex/fts/_bundle/_validation.py +434 -0
- scitex/fts/_bundle/_zipbundle.py +165 -0
- scitex/fts/_fig/__init__.py +22 -0
- scitex/fts/_fig/_backend/__init__.py +53 -0
- scitex/fts/_fig/_backend/_export.py +165 -0
- scitex/fts/_fig/_backend/_parser.py +188 -0
- scitex/fts/_fig/_backend/_render.py +538 -0
- scitex/fts/_fig/_composite.py +345 -0
- scitex/fts/_fig/_dataclasses/_ChannelEncoding.py +46 -0
- scitex/fts/_fig/_dataclasses/_Encoding.py +82 -0
- scitex/fts/_fig/_dataclasses/_Theme.py +441 -0
- scitex/fts/_fig/_dataclasses/_TraceEncoding.py +52 -0
- scitex/fts/_fig/_dataclasses/__init__.py +47 -0
- scitex/fts/_fig/_editor/__init__.py +14 -0
- scitex/fts/_fig/_editor/_cui/__init__.py +33 -0
- scitex/fts/_fig/_editor/_cui/_backend_detector.py +39 -0
- scitex/fts/_fig/_editor/_cui/_bundle_resolver.py +366 -0
- scitex/fts/_fig/_editor/_cui/_editor_launcher.py +175 -0
- scitex/fts/_fig/_editor/_cui/_manual_handler.py +52 -0
- scitex/fts/_fig/_editor/_cui/_panel_loader.py +246 -0
- scitex/fts/_fig/_editor/_cui/_path_resolver.py +66 -0
- scitex/fts/_fig/_editor/_defaults.py +300 -0
- scitex/fts/_fig/_editor/_gui/__init__.py +11 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/__init__.py +20 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/_bbox.py +1339 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/_core.py +1688 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/_plotter.py +664 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/_renderer.py +853 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/_utils.py +79 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/base/reset.css +41 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/base/typography.css +16 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/base/variables.css +85 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/components/buttons.css +217 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/components/context-menu.css +93 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/components/dropdown.css +57 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/components/forms.css +112 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/components/modal.css +59 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/components/sections.css +212 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/features/canvas.css +176 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/features/element-inspector.css +190 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/features/loading.css +59 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/features/overlay.css +45 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/features/panel-grid.css +95 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/features/selection.css +101 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/features/statistics.css +138 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/index.css +31 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/layout/container.css +7 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/layout/controls.css +56 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/css/layout/preview.css +78 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/alignment/axis.js +314 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/alignment/basic.js +107 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/alignment/distribute.js +54 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/canvas/canvas.js +172 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/canvas/dragging.js +258 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/canvas/resize.js +48 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/canvas/selection.js +71 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/core/api.js +288 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/core/state.js +143 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/core/utils.js +245 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/dev/element-inspector.js +992 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/editor/bbox.js +339 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/editor/element-drag.js +286 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/editor/overlay.js +371 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/editor/preview.js +293 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/main.js +426 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/shortcuts/context-menu.js +152 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/shortcuts/keyboard.js +265 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/ui/controls.js +184 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/ui/download.js +57 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/ui/help.js +100 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/static/js/ui/theme.js +34 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/templates/__init__.py +124 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/templates/_html.py +851 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/templates/_scripts.py +4932 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor/templates/_styles.py +1657 -0
- scitex/fts/_fig/_editor/_gui/_flask_editor.py +36 -0
- scitex/fts/_fig/_models/_Annotations.py +115 -0
- scitex/fts/_fig/_models/_Axes.py +152 -0
- scitex/fts/_fig/_models/_Figure.py +138 -0
- scitex/fts/_fig/_models/_Guides.py +104 -0
- scitex/fts/_fig/_models/_Plot.py +123 -0
- scitex/fts/_fig/_models/_Styles.py +245 -0
- scitex/fts/_fig/_models/__init__.py +80 -0
- scitex/fts/_fig/_models/_plot_types/__init__.py +156 -0
- scitex/fts/_fig/_models/_plot_types/_bar.py +43 -0
- scitex/fts/_fig/_models/_plot_types/_box.py +38 -0
- scitex/fts/_fig/_models/_plot_types/_distribution.py +36 -0
- scitex/fts/_fig/_models/_plot_types/_errorbar.py +60 -0
- scitex/fts/_fig/_models/_plot_types/_histogram.py +30 -0
- scitex/fts/_fig/_models/_plot_types/_image.py +61 -0
- scitex/fts/_fig/_models/_plot_types/_line.py +57 -0
- scitex/fts/_fig/_models/_plot_types/_scatter.py +30 -0
- scitex/fts/_fig/_models/_plot_types/_seaborn.py +121 -0
- scitex/fts/_fig/_models/_plot_types/_violin.py +36 -0
- scitex/fts/_fig/_utils/__init__.py +129 -0
- scitex/fts/_fig/_utils/_auto_layout.py +127 -0
- scitex/fts/_fig/_utils/_calc_bounds.py +111 -0
- scitex/fts/_fig/_utils/_const_sizes.py +48 -0
- scitex/fts/_fig/_utils/_convert_coords.py +77 -0
- scitex/fts/_fig/_utils/_get_template.py +178 -0
- scitex/fts/_fig/_utils/_normalize.py +73 -0
- scitex/fts/_fig/_utils/_plot_layout.py +397 -0
- scitex/fts/_fig/_utils/_validate.py +197 -0
- scitex/fts/_kinds/__init__.py +45 -0
- scitex/fts/_kinds/_figure/__init__.py +19 -0
- scitex/fts/_kinds/_figure/_composite.py +345 -0
- scitex/fts/_kinds/_plot/__init__.py +25 -0
- scitex/fts/_kinds/_plot/_backend/__init__.py +53 -0
- scitex/fts/_kinds/_plot/_backend/_export.py +165 -0
- scitex/fts/_kinds/_plot/_backend/_parser.py +188 -0
- scitex/fts/_kinds/_plot/_backend/_render.py +538 -0
- scitex/fts/_kinds/_plot/_dataclasses/_ChannelEncoding.py +46 -0
- scitex/fts/_kinds/_plot/_dataclasses/_Encoding.py +82 -0
- scitex/fts/_kinds/_plot/_dataclasses/_Theme.py +441 -0
- scitex/fts/_kinds/_plot/_dataclasses/_TraceEncoding.py +52 -0
- scitex/fts/_kinds/_plot/_dataclasses/__init__.py +47 -0
- scitex/fts/_kinds/_plot/_models/_Annotations.py +115 -0
- scitex/fts/_kinds/_plot/_models/_Axes.py +152 -0
- scitex/fts/_kinds/_plot/_models/_Figure.py +138 -0
- scitex/fts/_kinds/_plot/_models/_Guides.py +104 -0
- scitex/fts/_kinds/_plot/_models/_Plot.py +123 -0
- scitex/fts/_kinds/_plot/_models/_Styles.py +245 -0
- scitex/fts/_kinds/_plot/_models/__init__.py +80 -0
- scitex/fts/_kinds/_plot/_models/_plot_types/__init__.py +156 -0
- scitex/fts/_kinds/_plot/_models/_plot_types/_bar.py +43 -0
- scitex/fts/_kinds/_plot/_models/_plot_types/_box.py +38 -0
- scitex/fts/_kinds/_plot/_models/_plot_types/_distribution.py +36 -0
- scitex/fts/_kinds/_plot/_models/_plot_types/_errorbar.py +60 -0
- scitex/fts/_kinds/_plot/_models/_plot_types/_histogram.py +30 -0
- scitex/fts/_kinds/_plot/_models/_plot_types/_image.py +61 -0
- scitex/fts/_kinds/_plot/_models/_plot_types/_line.py +57 -0
- scitex/fts/_kinds/_plot/_models/_plot_types/_scatter.py +30 -0
- scitex/fts/_kinds/_plot/_models/_plot_types/_seaborn.py +121 -0
- scitex/fts/_kinds/_plot/_models/_plot_types/_violin.py +36 -0
- scitex/fts/_kinds/_plot/_utils/__init__.py +129 -0
- scitex/fts/_kinds/_plot/_utils/_auto_layout.py +127 -0
- scitex/fts/_kinds/_plot/_utils/_calc_bounds.py +111 -0
- scitex/fts/_kinds/_plot/_utils/_const_sizes.py +48 -0
- scitex/fts/_kinds/_plot/_utils/_convert_coords.py +77 -0
- scitex/fts/_kinds/_plot/_utils/_get_template.py +178 -0
- scitex/fts/_kinds/_plot/_utils/_normalize.py +73 -0
- scitex/fts/_kinds/_plot/_utils/_plot_layout.py +397 -0
- scitex/fts/_kinds/_plot/_utils/_validate.py +197 -0
- scitex/fts/_kinds/_shape/__init__.py +141 -0
- scitex/fts/_kinds/_stats/__init__.py +56 -0
- scitex/fts/_kinds/_stats/_dataclasses/_Stats.py +423 -0
- scitex/fts/_kinds/_stats/_dataclasses/__init__.py +48 -0
- scitex/fts/_kinds/_table/__init__.py +72 -0
- scitex/fts/_kinds/_table/_latex/__init__.py +93 -0
- scitex/fts/_kinds/_table/_latex/_editor/__init__.py +11 -0
- scitex/fts/_kinds/_table/_latex/_editor/_app.py +725 -0
- scitex/fts/_kinds/_table/_latex/_export.py +279 -0
- scitex/fts/_kinds/_table/_latex/_figure_exporter.py +153 -0
- scitex/fts/_kinds/_table/_latex/_stats_formatter.py +274 -0
- scitex/fts/_kinds/_table/_latex/_table_exporter.py +362 -0
- scitex/fts/_kinds/_table/_latex/_utils.py +369 -0
- scitex/fts/_kinds/_table/_latex/_validator.py +445 -0
- scitex/fts/_kinds/_text/__init__.py +77 -0
- scitex/fts/_schemas/data_info.schema.json +75 -0
- scitex/fts/_schemas/encoding.schema.json +90 -0
- scitex/fts/_schemas/node.schema.json +145 -0
- scitex/fts/_schemas/render_manifest.schema.json +62 -0
- scitex/fts/_schemas/stats.schema.json +132 -0
- scitex/fts/_schemas/theme.schema.json +141 -0
- scitex/fts/_stats/__init__.py +48 -0
- scitex/fts/_stats/_dataclasses/_Stats.py +423 -0
- scitex/fts/_stats/_dataclasses/__init__.py +48 -0
- scitex/fts/_tables/__init__.py +65 -0
- scitex/fts/_tables/_latex/__init__.py +93 -0
- scitex/fts/_tables/_latex/_editor/__init__.py +11 -0
- scitex/fts/_tables/_latex/_editor/_app.py +725 -0
- scitex/fts/_tables/_latex/_export.py +279 -0
- scitex/fts/_tables/_latex/_figure_exporter.py +153 -0
- scitex/fts/_tables/_latex/_stats_formatter.py +274 -0
- scitex/fts/_tables/_latex/_table_exporter.py +362 -0
- scitex/fts/_tables/_latex/_utils.py +369 -0
- scitex/fts/_tables/_latex/_validator.py +445 -0
- scitex/gen/__init__.py +66 -25
- scitex/gen/misc.py +28 -0
- scitex/io/__init__.py +47 -20
- scitex/io/_load.py +87 -36
- scitex/io/_load_modules/__init__.py +10 -7
- scitex/io/_load_modules/_pandas.py +6 -1
- scitex/io/_save.py +299 -1556
- scitex/io/_save_modules/__init__.py +76 -19
- scitex/io/_save_modules/_figure_utils.py +90 -0
- scitex/io/_save_modules/_image_csv.py +497 -0
- scitex/io/_save_modules/_legends.py +91 -0
- scitex/io/_save_modules/_pltz_bundle.py +356 -0
- scitex/io/_save_modules/_pltz_stx.py +536 -0
- scitex/io/_save_modules/_stx_bundle.py +104 -0
- scitex/io/_save_modules/_symlink.py +96 -0
- scitex/io/_save_modules/_yaml.py +1 -1
- scitex/io/_save_modules/_zarr.py +64 -18
- scitex/io/bundle/README.md +212 -0
- scitex/io/bundle/__init__.py +110 -0
- scitex/io/{_bundle.py → bundle/_core.py} +219 -89
- scitex/io/bundle/_nested.py +713 -0
- scitex/io/bundle/_types.py +74 -0
- scitex/io/bundle/_zip.py +487 -0
- scitex/io/utils/h5_to_zarr.py +1 -1
- scitex/logging/__init__.py +108 -13
- scitex/logging/_errors.py +508 -0
- scitex/logging/_formatters.py +30 -6
- scitex/logging/_warnings.py +261 -0
- scitex/plt/__init__.py +4 -1
- scitex/plt/_figrecipe.py +236 -0
- scitex/plt/_subplots/_AxisWrapper.py +6 -0
- scitex/plt/_subplots/_AxisWrapperMixins/_AdjustmentMixin/__init__.py +0 -0
- scitex/plt/_subplots/_AxisWrapperMixins/_AdjustmentMixin/_labels.py +0 -0
- scitex/plt/_subplots/_AxisWrapperMixins/_AdjustmentMixin/_metadata.py +0 -0
- scitex/plt/_subplots/_AxisWrapperMixins/_AdjustmentMixin/_visual.py +0 -0
- scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin/__init__.py +0 -0
- scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin/_base.py +0 -0
- scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin/_scientific.py +0 -0
- scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin/_statistical.py +0 -0
- scitex/plt/_subplots/_AxisWrapperMixins/_MatplotlibPlotMixin/_stx_aliases.py +0 -0
- scitex/plt/_subplots/_AxisWrapperMixins/_RawMatplotlibMixin.py +0 -0
- scitex/plt/_subplots/_AxisWrapperMixins/_SeabornMixin/__init__.py +0 -0
- scitex/plt/_subplots/_AxisWrapperMixins/_SeabornMixin/_base.py +0 -0
- scitex/plt/_subplots/_AxisWrapperMixins/_SeabornMixin/_wrappers.py +0 -0
- scitex/plt/_subplots/_AxisWrapperMixins/_UnitAwareMixin.py +112 -1
- scitex/plt/_subplots/_FigWrapper.py +15 -0
- scitex/plt/_subplots/_SubplotsWrapper.py +125 -489
- scitex/plt/_subplots/_export_as_csv.py +11 -0
- scitex/plt/_subplots/_export_as_csv_formatters/__init__.py +2 -0
- scitex/plt/_subplots/_export_as_csv_formatters/_format_pcolormesh.py +66 -0
- scitex/plt/_subplots/_export_as_csv_formatters/_format_stackplot.py +62 -0
- scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_bar.py +0 -0
- scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_barh.py +0 -0
- scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_errorbar.py +0 -0
- scitex/plt/_subplots/_export_as_csv_formatters/_format_stx_scatter.py +0 -0
- scitex/plt/_subplots/_export_as_csv_formatters/test_formatters.py +208 -0
- scitex/plt/_subplots/_fonts.py +71 -0
- scitex/plt/_subplots/_mm_layout.py +282 -0
- scitex/plt/gallery/__init__.py +99 -2
- scitex/plt/io/_layered_bundle.py +0 -0
- scitex/plt/styles/_plot_postprocess.py +3 -1
- scitex/plt/utils/_configure_mpl.py +16 -19
- scitex/repro/_RandomStateManager.py +13 -8
- scitex/resource/__init__.py +19 -1
- scitex/resource/_utils/_get_env_info.py +13 -25
- scitex/schema/__init__.py +149 -160
- scitex/schema/_encoding.py +273 -0
- scitex/schema/_figure_elements.py +406 -0
- scitex/schema/_plot.py +0 -0
- scitex/schema/_theme.py +360 -0
- scitex/schema/_validation.py +0 -98
- scitex/scholar/__init__.py +56 -14
- scitex/scholar/auth/ScholarAuthManager.py +1 -1
- scitex/scholar/auth/__init__.py +11 -2
- scitex/scholar/auth/providers/BaseAuthenticator.py +1 -1
- scitex/scholar/auth/providers/EZProxyAuthenticator.py +1 -1
- scitex/scholar/auth/providers/OpenAthensAuthenticator.py +1 -1
- scitex/scholar/auth/providers/ShibbolethAuthenticator.py +1 -1
- scitex/scholar/config/ScholarConfig.py +1 -1
- scitex/scholar/core/Scholar.py +1 -1
- scitex/session/_decorator.py +18 -16
- scitex/session/_lifecycle.py +9 -11
- scitex/session/template.py +9 -8
- scitex/sh/test_sh.py +72 -0
- scitex/sh/test_sh_simple.py +61 -0
- scitex/stats/__init__.py +221 -97
- scitex/stats/_schema.py +21 -22
- scitex/stats/descriptive/_circular.py +212 -351
- scitex/stats/descriptive/_describe.py +81 -132
- scitex/stats/descriptive/_nan.py +205 -433
- scitex/stats/descriptive/_real.py +127 -141
- scitex/str/_format_plot_text.py +5 -5
- scitex/str/_latex.py +26 -84
- scitex/str/_latex_fallback.py +53 -47
- scitex/web/_search_pubmed.py +5 -4
- scitex/writer/tests/test_diff_between.py +451 -0
- scitex/writer/tests/test_document_section.py +311 -0
- scitex/writer/tests/test_document_workflow.py +393 -0
- scitex/writer/tests/test_writer.py +361 -0
- scitex/writer/tests/test_writer_integration.py +303 -0
- {scitex-2.7.3.dist-info → scitex-2.10.0.dist-info}/METADATA +364 -181
- {scitex-2.7.3.dist-info → scitex-2.10.0.dist-info}/RECORD +479 -108
- scitex/fig/editor/_edit.py +0 -751
- scitex/scholar/docs/to_claude/guidelines/examples/mgmt/ARCHITECTURE_EXAMPLE.md +0 -905
- scitex/scholar/docs/to_claude/guidelines/examples/mgmt/BULLETIN_BOARD_EXAMPLE.md +0 -99
- scitex/scholar/docs/to_claude/guidelines/examples/mgmt/PROJECT_DESCRIPTION_EXAMPLE.md +0 -96
- {scitex-2.7.3.dist-info → scitex-2.10.0.dist-info}/WHEEL +0 -0
- {scitex-2.7.3.dist-info → scitex-2.10.0.dist-info}/entry_points.txt +0 -0
- {scitex-2.7.3.dist-info → scitex-2.10.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -82,9 +82,7 @@ def get_conda_packages(run_lambda):
|
|
|
82
82
|
if get_platform() == "win32":
|
|
83
83
|
system_root = os.environ.get("SYSTEMROOT", "C:\\Windows")
|
|
84
84
|
findstr_cmd = os.path.join(system_root, "System32", "findstr")
|
|
85
|
-
grep_cmd =
|
|
86
|
-
findstr_cmd
|
|
87
|
-
)
|
|
85
|
+
grep_cmd = rf'{findstr_cmd} /R "torch numpy cudatoolkit soumith mkl magma"'
|
|
88
86
|
else:
|
|
89
87
|
grep_cmd = r'grep "torch\|numpy\|cudatoolkit\|soumith\|mkl\|magma"'
|
|
90
88
|
conda = os.environ.get("CONDA_EXE", "conda")
|
|
@@ -148,7 +146,7 @@ def get_cudnn_version(run_lambda):
|
|
|
148
146
|
system_root = os.environ.get("SYSTEMROOT", "C:\\Windows")
|
|
149
147
|
cuda_path = os.environ.get("CUDA_PATH", "%CUDA_PATH%")
|
|
150
148
|
where_cmd = os.path.join(system_root, "System32", "where")
|
|
151
|
-
cudnn_cmd = '{} /R "{}\\bin" cudnn*.dll'
|
|
149
|
+
cudnn_cmd = f'{where_cmd} /R "{cuda_path}\\bin" cudnn*.dll'
|
|
152
150
|
elif get_platform() == "darwin":
|
|
153
151
|
# CUDA libraries and drivers can be found in /usr/local/cuda/. See
|
|
154
152
|
# https://docs.nvidia.com/cuda/cuda-installation-guide-mac-os-x/index.html#install
|
|
@@ -172,11 +170,11 @@ def get_cudnn_version(run_lambda):
|
|
|
172
170
|
if not files_set:
|
|
173
171
|
return None
|
|
174
172
|
# Alphabetize the result because the order is non-deterministic otherwise
|
|
175
|
-
files =
|
|
173
|
+
files = sorted(files_set)
|
|
176
174
|
if len(files) == 1:
|
|
177
175
|
return files[0]
|
|
178
176
|
result = "\n".join(files)
|
|
179
|
-
return "Probably one of the following:\n{}"
|
|
177
|
+
return f"Probably one of the following:\n{result}"
|
|
180
178
|
|
|
181
179
|
|
|
182
180
|
def get_nvidia_smi():
|
|
@@ -220,7 +218,7 @@ def get_windows_version(run_lambda):
|
|
|
220
218
|
findstr_cmd = os.path.join(system_root, "System32", "findstr")
|
|
221
219
|
return run_and_read_all(
|
|
222
220
|
run_lambda,
|
|
223
|
-
"{} os get Caption | {} /v Caption"
|
|
221
|
+
f"{wmic_cmd} os get Caption | {findstr_cmd} /v Caption",
|
|
224
222
|
)
|
|
225
223
|
|
|
226
224
|
|
|
@@ -248,20 +246,20 @@ def get_os(run_lambda):
|
|
|
248
246
|
version = get_mac_version(run_lambda)
|
|
249
247
|
if version is None:
|
|
250
248
|
return None
|
|
251
|
-
return "macOS {} ({
|
|
249
|
+
return f"macOS {version} ({machine()})"
|
|
252
250
|
|
|
253
251
|
if platform == "linux":
|
|
254
252
|
# Ubuntu/Debian based
|
|
255
253
|
desc = get_lsb_version(run_lambda)
|
|
256
254
|
if desc is not None:
|
|
257
|
-
return "{} ({
|
|
255
|
+
return f"{desc} ({machine()})"
|
|
258
256
|
|
|
259
257
|
# Try reading /etc/*-release
|
|
260
258
|
desc = check_release_file(run_lambda)
|
|
261
259
|
if desc is not None:
|
|
262
|
-
return "{} ({
|
|
260
|
+
return f"{desc} ({machine()})"
|
|
263
261
|
|
|
264
|
-
return "{} ({
|
|
262
|
+
return f"{platform} ({machine()})"
|
|
265
263
|
|
|
266
264
|
# Unknown platform
|
|
267
265
|
return platform
|
|
@@ -276,7 +274,7 @@ def get_pip_packages(run_lambda):
|
|
|
276
274
|
if get_platform() == "win32":
|
|
277
275
|
system_root = os.environ.get("SYSTEMROOT", "C:\\Windows")
|
|
278
276
|
findstr_cmd = os.path.join(system_root, "System32", "findstr")
|
|
279
|
-
grep_cmd =
|
|
277
|
+
grep_cmd = rf'{findstr_cmd} /R "numpy torch"'
|
|
280
278
|
else:
|
|
281
279
|
grep_cmd = r'grep "torch\|numpy"'
|
|
282
280
|
return run_and_read_all(run_lambda, pip + " list --format=freeze | " + grep_cmd)
|
|
@@ -329,11 +327,7 @@ def get_env_info():
|
|
|
329
327
|
return SystemEnv(
|
|
330
328
|
torch_version=version_str,
|
|
331
329
|
is_debug_build=debug_mode_str,
|
|
332
|
-
python_version="{}.{} ({}-bit runtime)"
|
|
333
|
-
sys.version_info[0],
|
|
334
|
-
sys.version_info[1],
|
|
335
|
-
sys.maxsize.bit_length() + 1,
|
|
336
|
-
),
|
|
330
|
+
python_version=f"{sys.version_info[0]}.{sys.version_info[1]} ({sys.maxsize.bit_length() + 1}-bit runtime)",
|
|
337
331
|
is_cuda_available=cuda_available_str,
|
|
338
332
|
cuda_compiled_version=cuda_version_str,
|
|
339
333
|
cuda_runtime_version=get_running_cuda_version(run_lambda),
|
|
@@ -408,7 +402,7 @@ def pretty_str(envinfo):
|
|
|
408
402
|
def maybe_start_on_next_line(string):
|
|
409
403
|
# If `string` is multiline, prepend a \n to it.
|
|
410
404
|
if string is not None and len(string.split("\n")) > 1:
|
|
411
|
-
return "\n{}\n"
|
|
405
|
+
return f"\n{string}\n"
|
|
412
406
|
return string
|
|
413
407
|
|
|
414
408
|
mutable_dict = envinfo._asdict()
|
|
@@ -452,7 +446,7 @@ def pretty_str(envinfo):
|
|
|
452
446
|
# If they were previously None, they'll show up as ie '[conda] Could not collect'
|
|
453
447
|
if mutable_dict["pip_packages"]:
|
|
454
448
|
mutable_dict["pip_packages"] = prepend(
|
|
455
|
-
mutable_dict["pip_packages"], "[{}] "
|
|
449
|
+
mutable_dict["pip_packages"], f"[{envinfo.pip_version}] "
|
|
456
450
|
)
|
|
457
451
|
if mutable_dict["conda_packages"]:
|
|
458
452
|
mutable_dict["conda_packages"] = prepend(
|
|
@@ -473,9 +467,3 @@ def main():
|
|
|
473
467
|
|
|
474
468
|
if __name__ == "__main__":
|
|
475
469
|
main()
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
def main():
|
|
479
|
-
print("Collecting environment information...")
|
|
480
|
-
env_info = get_env_info()
|
|
481
|
-
print(env_info)
|
scitex/schema/__init__.py
CHANGED
|
@@ -1,237 +1,226 @@
|
|
|
1
1
|
#!/usr/bin/env python3
|
|
2
|
-
# -*- coding: utf-8 -*-
|
|
3
2
|
# File: ./src/scitex/schema/__init__.py
|
|
4
|
-
# Timestamp: "2025-12-
|
|
3
|
+
# Timestamp: "2025-12-20 (ywatanabe)"
|
|
5
4
|
"""
|
|
6
|
-
SciTeX Schema Module -
|
|
7
|
-
|
|
8
|
-
This module
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
- Anything serialized to JSON/disk → defined here
|
|
16
|
-
- Anything shared across modules → defined here
|
|
17
|
-
- Internal module implementations → stay per-module
|
|
18
|
-
- Canonical units: ratio (0-1) for axes bbox, mm for panel size
|
|
19
|
-
- px data is ALWAYS derived/cached, never source of truth
|
|
20
|
-
|
|
21
|
-
Usage:
|
|
22
|
-
# New layered plot schema (recommended)
|
|
23
|
-
from scitex.schema import PltzSpec, PltzStyle, PltzGeometry
|
|
24
|
-
|
|
25
|
-
# Legacy figure model
|
|
26
|
-
from scitex.schema import FigureSpec, StatResult, CanvasSpec
|
|
27
|
-
from scitex.schema import validate_figure, validate_stat_result
|
|
5
|
+
SciTeX Schema Module - DEPRECATED
|
|
6
|
+
|
|
7
|
+
This module is scheduled for removal. All schemas are being consolidated
|
|
8
|
+
in scitex.fts as the single source of truth.
|
|
9
|
+
|
|
10
|
+
For new code, import from scitex.fts:
|
|
11
|
+
from scitex.fts import FTS, Node, Encoding, Theme, Stats
|
|
12
|
+
|
|
13
|
+
This module exists temporarily for backward compatibility.
|
|
28
14
|
"""
|
|
29
15
|
|
|
30
|
-
|
|
31
|
-
SCHEMA_VERSION = "0.2.0"
|
|
16
|
+
import warnings
|
|
32
17
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
PLOT_SPEC_VERSION,
|
|
39
|
-
PLOT_STYLE_VERSION,
|
|
40
|
-
PLOT_GEOMETRY_VERSION,
|
|
41
|
-
# DPI fallback for legacy data
|
|
42
|
-
DPI_FALLBACK,
|
|
43
|
-
# Type aliases
|
|
44
|
-
TraceType,
|
|
45
|
-
CoordinateSpace,
|
|
46
|
-
LegendLocation,
|
|
47
|
-
# Bbox classes
|
|
48
|
-
BboxRatio,
|
|
49
|
-
BboxPx,
|
|
50
|
-
# Spec classes (canonical) - prefixed with Pltz to avoid collision
|
|
51
|
-
TraceSpec as PltzTraceSpec,
|
|
52
|
-
AxesLimits as PltzAxesLimits,
|
|
53
|
-
AxesLabels as PltzAxesLabels,
|
|
54
|
-
AxesSpecItem as PltzAxesItem,
|
|
55
|
-
DataSourceSpec as PltzDataSource,
|
|
56
|
-
PlotSpec as PltzSpec,
|
|
57
|
-
# Style classes
|
|
58
|
-
TraceStyleSpec as PltzTraceStyle,
|
|
59
|
-
ThemeSpec as PltzTheme,
|
|
60
|
-
FontSpec as PltzFont,
|
|
61
|
-
SizeSpec as PltzSize,
|
|
62
|
-
LegendSpec as PltzLegendSpec,
|
|
63
|
-
PlotStyle as PltzStyle,
|
|
64
|
-
# Geometry classes (cache)
|
|
65
|
-
RenderedArtist as PltzRenderedArtist,
|
|
66
|
-
RenderedAxes as PltzRenderedAxes,
|
|
67
|
-
HitRegionEntry as PltzHitRegion,
|
|
68
|
-
SelectableRegion as PltzSelectableRegion,
|
|
69
|
-
PlotGeometry as PltzGeometry,
|
|
70
|
-
# Manifest
|
|
71
|
-
RenderManifest as PltzRenderManifest,
|
|
18
|
+
warnings.warn(
|
|
19
|
+
"scitex.schema is deprecated. Import from scitex.fts instead. "
|
|
20
|
+
"This module will be removed in a future version.",
|
|
21
|
+
DeprecationWarning,
|
|
22
|
+
stacklevel=2
|
|
72
23
|
)
|
|
73
24
|
|
|
25
|
+
# Schema version
|
|
26
|
+
SCHEMA_VERSION = "0.2.0"
|
|
27
|
+
|
|
74
28
|
# =============================================================================
|
|
75
|
-
#
|
|
76
|
-
# These are for figure COMPOSITION (multi-panel), not individual plots
|
|
29
|
+
# Re-export from scitex.fts (new single source of truth)
|
|
77
30
|
# =============================================================================
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
31
|
+
try:
|
|
32
|
+
from scitex.fts import (
|
|
33
|
+
# Core bundle classes
|
|
34
|
+
FTS,
|
|
35
|
+
Node,
|
|
36
|
+
BBox,
|
|
37
|
+
SizeMM,
|
|
38
|
+
DataInfo,
|
|
39
|
+
# Encoding and Theme
|
|
40
|
+
Encoding,
|
|
41
|
+
Theme,
|
|
42
|
+
# Stats
|
|
43
|
+
Stats,
|
|
44
|
+
)
|
|
45
|
+
except ImportError:
|
|
46
|
+
# FTS not fully configured yet
|
|
47
|
+
FTS = None
|
|
48
|
+
Node = None
|
|
49
|
+
Encoding = None
|
|
50
|
+
Theme = None
|
|
51
|
+
Stats = None
|
|
97
52
|
|
|
98
53
|
# =============================================================================
|
|
99
|
-
#
|
|
54
|
+
# Independent schemas (still defined here temporarily)
|
|
55
|
+
# These will be migrated to scitex.fts in subsequent phases
|
|
100
56
|
# =============================================================================
|
|
57
|
+
|
|
58
|
+
# Stats schema (GUI-focused version - to be merged with FTS Stats)
|
|
101
59
|
from scitex.schema._stats import (
|
|
102
|
-
|
|
60
|
+
Position,
|
|
103
61
|
PositionMode,
|
|
104
|
-
UnitType,
|
|
105
|
-
SymbolStyle,
|
|
106
|
-
# Classes
|
|
107
|
-
StatResult,
|
|
108
62
|
StatPositioning,
|
|
63
|
+
StatResult,
|
|
109
64
|
StatStyling,
|
|
110
|
-
|
|
111
|
-
|
|
65
|
+
SymbolStyle,
|
|
66
|
+
UnitType,
|
|
112
67
|
create_stat_result,
|
|
113
68
|
)
|
|
114
69
|
|
|
115
|
-
#
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
CanvasAnnotationSpec,
|
|
122
|
-
CanvasTitleSpec,
|
|
123
|
-
CanvasCaptionSpec,
|
|
124
|
-
CanvasMetadataSpec,
|
|
125
|
-
DataFileSpec,
|
|
70
|
+
# Encoding schema
|
|
71
|
+
from scitex.schema._encoding import (
|
|
72
|
+
ENCODING_VERSION,
|
|
73
|
+
ChannelBinding,
|
|
74
|
+
PlotEncoding,
|
|
75
|
+
TraceEncoding,
|
|
126
76
|
)
|
|
127
77
|
|
|
128
|
-
#
|
|
129
|
-
|
|
130
|
-
|
|
78
|
+
# Figure elements
|
|
79
|
+
from scitex.schema._figure_elements import (
|
|
80
|
+
FIGURE_ELEMENTS_VERSION,
|
|
81
|
+
Caption,
|
|
82
|
+
FigureTitle,
|
|
83
|
+
PanelInfo,
|
|
84
|
+
PanelLabels,
|
|
85
|
+
generate_caption,
|
|
86
|
+
generate_caption_latex,
|
|
87
|
+
generate_caption_markdown,
|
|
88
|
+
)
|
|
89
|
+
|
|
90
|
+
# Theme schema
|
|
91
|
+
from scitex.schema._theme import (
|
|
92
|
+
THEME_VERSION,
|
|
93
|
+
ColorScheme,
|
|
94
|
+
LegendStyle,
|
|
95
|
+
LineDefaults,
|
|
96
|
+
MarkerDefaults,
|
|
97
|
+
PlotTheme,
|
|
98
|
+
Typography,
|
|
99
|
+
)
|
|
100
|
+
from scitex.schema._theme import TraceStyle as ThemeTraceStyle
|
|
101
|
+
|
|
102
|
+
# Plot schema
|
|
103
|
+
from scitex.schema._plot import (
|
|
104
|
+
DPI_FALLBACK,
|
|
105
|
+
PLOT_GEOMETRY_VERSION,
|
|
106
|
+
PLOT_SPEC_VERSION,
|
|
107
|
+
PLOT_STYLE_VERSION,
|
|
108
|
+
BboxPx,
|
|
109
|
+
BboxRatio,
|
|
110
|
+
CoordinateSpace,
|
|
111
|
+
LegendLocation,
|
|
112
|
+
TraceType,
|
|
113
|
+
)
|
|
114
|
+
from scitex.schema._plot import AxesLabels as PltzAxesLabels
|
|
115
|
+
from scitex.schema._plot import AxesLimits as PltzAxesLimits
|
|
116
|
+
from scitex.schema._plot import AxesSpecItem as PltzAxesItem
|
|
117
|
+
from scitex.schema._plot import DataSourceSpec as PltzDataSource
|
|
118
|
+
from scitex.schema._plot import FontSpec as PltzFont
|
|
119
|
+
from scitex.schema._plot import HitRegionEntry as PltzHitRegion
|
|
120
|
+
from scitex.schema._plot import LegendSpec as PltzLegendSpec
|
|
121
|
+
from scitex.schema._plot import PlotGeometry as PltzGeometry
|
|
122
|
+
from scitex.schema._plot import PlotSpec as PltzSpec
|
|
123
|
+
from scitex.schema._plot import PlotStyle as PltzStyle
|
|
124
|
+
from scitex.schema._plot import RenderedArtist as PltzRenderedArtist
|
|
125
|
+
from scitex.schema._plot import RenderedAxes as PltzRenderedAxes
|
|
126
|
+
from scitex.schema._plot import RenderManifest as PltzRenderManifest
|
|
127
|
+
from scitex.schema._plot import SelectableRegion as PltzSelectableRegion
|
|
128
|
+
from scitex.schema._plot import SizeSpec as PltzSize
|
|
129
|
+
from scitex.schema._plot import ThemeSpec as PltzTheme
|
|
130
|
+
from scitex.schema._plot import TraceSpec as PltzTraceSpec
|
|
131
|
+
from scitex.schema._plot import TraceStyleSpec as PltzTraceStyle
|
|
132
|
+
|
|
133
|
+
# Validation (temporarily keep here)
|
|
131
134
|
from scitex.schema._validation import (
|
|
132
|
-
|
|
135
|
+
ValidationError,
|
|
133
136
|
validate_axes,
|
|
137
|
+
validate_color,
|
|
138
|
+
validate_figure,
|
|
134
139
|
validate_plot,
|
|
135
140
|
validate_stat_result,
|
|
136
|
-
validate_canvas,
|
|
137
|
-
validate_color,
|
|
138
|
-
ValidationError,
|
|
139
141
|
)
|
|
140
142
|
|
|
141
143
|
# =============================================================================
|
|
142
|
-
# Public API
|
|
144
|
+
# Public API (maintaining backward compatibility)
|
|
143
145
|
# =============================================================================
|
|
144
146
|
__all__ = [
|
|
145
147
|
# Version
|
|
146
148
|
"SCHEMA_VERSION",
|
|
147
|
-
#
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
149
|
+
# FTS re-exports
|
|
150
|
+
"FTS",
|
|
151
|
+
"Node",
|
|
152
|
+
"BBox",
|
|
153
|
+
"SizeMM",
|
|
154
|
+
"DataInfo",
|
|
155
|
+
"Encoding",
|
|
156
|
+
"Theme",
|
|
157
|
+
"Stats",
|
|
158
|
+
# Plot specs
|
|
151
159
|
"PLOT_SPEC_VERSION",
|
|
152
160
|
"PLOT_STYLE_VERSION",
|
|
153
161
|
"PLOT_GEOMETRY_VERSION",
|
|
154
|
-
# Type aliases
|
|
155
162
|
"TraceType",
|
|
156
163
|
"CoordinateSpace",
|
|
157
164
|
"LegendLocation",
|
|
158
|
-
# Bbox classes
|
|
159
165
|
"BboxRatio",
|
|
160
166
|
"BboxPx",
|
|
161
|
-
# Spec classes (canonical)
|
|
162
167
|
"PltzTraceSpec",
|
|
163
168
|
"PltzAxesLimits",
|
|
164
169
|
"PltzAxesLabels",
|
|
165
170
|
"PltzAxesItem",
|
|
166
171
|
"PltzDataSource",
|
|
167
172
|
"PltzSpec",
|
|
168
|
-
# Style classes
|
|
169
173
|
"PltzTraceStyle",
|
|
170
174
|
"PltzTheme",
|
|
171
175
|
"PltzFont",
|
|
172
176
|
"PltzSize",
|
|
173
177
|
"PltzLegendSpec",
|
|
174
178
|
"PltzStyle",
|
|
175
|
-
# Geometry classes (cache)
|
|
176
179
|
"PltzRenderedArtist",
|
|
177
180
|
"PltzRenderedAxes",
|
|
178
181
|
"PltzHitRegion",
|
|
179
182
|
"PltzSelectableRegion",
|
|
180
183
|
"PltzGeometry",
|
|
181
|
-
# Manifest
|
|
182
184
|
"PltzRenderManifest",
|
|
183
|
-
#
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
"
|
|
187
|
-
"
|
|
188
|
-
|
|
189
|
-
"
|
|
190
|
-
"
|
|
191
|
-
|
|
192
|
-
"
|
|
193
|
-
"
|
|
194
|
-
"
|
|
195
|
-
"
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
"
|
|
199
|
-
"
|
|
200
|
-
"
|
|
201
|
-
"
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
185
|
+
# Encoding
|
|
186
|
+
"ENCODING_VERSION",
|
|
187
|
+
"ChannelBinding",
|
|
188
|
+
"TraceEncoding",
|
|
189
|
+
"PlotEncoding",
|
|
190
|
+
# Theme
|
|
191
|
+
"THEME_VERSION",
|
|
192
|
+
"ColorScheme",
|
|
193
|
+
"Typography",
|
|
194
|
+
"LineDefaults",
|
|
195
|
+
"MarkerDefaults",
|
|
196
|
+
"ThemeTraceStyle",
|
|
197
|
+
"LegendStyle",
|
|
198
|
+
"PlotTheme",
|
|
199
|
+
# Figure elements
|
|
200
|
+
"FIGURE_ELEMENTS_VERSION",
|
|
201
|
+
"FigureTitle",
|
|
202
|
+
"Caption",
|
|
203
|
+
"PanelLabels",
|
|
204
|
+
"PanelInfo",
|
|
205
|
+
"generate_caption",
|
|
206
|
+
"generate_caption_latex",
|
|
207
|
+
"generate_caption_markdown",
|
|
208
|
+
# Stats
|
|
205
209
|
"PositionMode",
|
|
206
210
|
"UnitType",
|
|
207
211
|
"SymbolStyle",
|
|
208
|
-
# Stats specs
|
|
209
212
|
"StatResult",
|
|
210
213
|
"StatPositioning",
|
|
211
214
|
"StatStyling",
|
|
212
215
|
"Position",
|
|
213
216
|
"create_stat_result",
|
|
214
|
-
# ==========================================================================
|
|
215
|
-
# Canvas specs
|
|
216
|
-
# ==========================================================================
|
|
217
|
-
"CanvasSpec",
|
|
218
|
-
"PanelSpec",
|
|
219
|
-
"CanvasAnnotationSpec",
|
|
220
|
-
"CanvasTitleSpec",
|
|
221
|
-
"CanvasCaptionSpec",
|
|
222
|
-
"CanvasMetadataSpec",
|
|
223
|
-
"DataFileSpec",
|
|
224
|
-
# ==========================================================================
|
|
225
217
|
# Validation
|
|
226
|
-
# ==========================================================================
|
|
227
218
|
"validate_figure",
|
|
228
219
|
"validate_axes",
|
|
229
220
|
"validate_plot",
|
|
230
221
|
"validate_stat_result",
|
|
231
|
-
"validate_canvas",
|
|
232
222
|
"validate_color",
|
|
233
223
|
"ValidationError",
|
|
234
224
|
]
|
|
235
225
|
|
|
236
|
-
|
|
237
226
|
# EOF
|