datalab-platform 0.0.1.dev0__py3-none-any.whl → 1.0.1__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.
- datalab/__init__.py +35 -2
- datalab/adapters_metadata/__init__.py +31 -0
- datalab/adapters_metadata/base_adapter.py +316 -0
- datalab/adapters_metadata/common.py +422 -0
- datalab/adapters_metadata/geometry_adapter.py +98 -0
- datalab/adapters_metadata/table_adapter.py +84 -0
- datalab/adapters_plotpy/__init__.py +54 -0
- datalab/adapters_plotpy/annotations.py +124 -0
- datalab/adapters_plotpy/base.py +110 -0
- datalab/adapters_plotpy/converters.py +86 -0
- datalab/adapters_plotpy/factories.py +80 -0
- datalab/adapters_plotpy/objects/__init__.py +0 -0
- datalab/adapters_plotpy/objects/base.py +197 -0
- datalab/adapters_plotpy/objects/image.py +157 -0
- datalab/adapters_plotpy/objects/scalar.py +565 -0
- datalab/adapters_plotpy/objects/signal.py +264 -0
- datalab/adapters_plotpy/roi/__init__.py +0 -0
- datalab/adapters_plotpy/roi/base.py +146 -0
- datalab/adapters_plotpy/roi/factory.py +93 -0
- datalab/adapters_plotpy/roi/image.py +207 -0
- datalab/adapters_plotpy/roi/signal.py +72 -0
- datalab/app.py +98 -0
- datalab/config.py +817 -0
- datalab/control/__init__.py +0 -0
- datalab/control/baseproxy.py +776 -0
- datalab/control/proxy.py +343 -0
- datalab/control/remote.py +1005 -0
- datalab/data/doc/DataLab_en.pdf +0 -0
- datalab/data/doc/DataLab_fr.pdf +0 -0
- datalab/data/icons/analysis/delete_results.svg +109 -0
- datalab/data/icons/analysis/fw1e2.svg +156 -0
- datalab/data/icons/analysis/fwhm.svg +156 -0
- datalab/data/icons/analysis/histogram.svg +49 -0
- datalab/data/icons/analysis/peak_detect.svg +160 -0
- datalab/data/icons/analysis/plot_results.svg +151 -0
- datalab/data/icons/analysis/show_results.svg +83 -0
- datalab/data/icons/analysis/stats.svg +49 -0
- datalab/data/icons/analysis.svg +120 -0
- datalab/data/icons/apply.svg +3 -0
- datalab/data/icons/check_all.svg +15 -0
- datalab/data/icons/collapse.svg +44 -0
- datalab/data/icons/collapse_selection.svg +63 -0
- datalab/data/icons/console.svg +101 -0
- datalab/data/icons/create/1d-normal.svg +8 -0
- datalab/data/icons/create/1d-poisson.svg +9 -0
- datalab/data/icons/create/1d-uniform.svg +8 -0
- datalab/data/icons/create/1d-zero.svg +57 -0
- datalab/data/icons/create/2d-gaussian.svg +56 -0
- datalab/data/icons/create/2d-normal.svg +38 -0
- datalab/data/icons/create/2d-poisson.svg +38 -0
- datalab/data/icons/create/2d-ramp.svg +90 -0
- datalab/data/icons/create/2d-sinc.svg +62 -0
- datalab/data/icons/create/2d-uniform.svg +38 -0
- datalab/data/icons/create/2d-zero.svg +13 -0
- datalab/data/icons/create/checkerboard.svg +39 -0
- datalab/data/icons/create/cosine.svg +12 -0
- datalab/data/icons/create/exponential.svg +55 -0
- datalab/data/icons/create/gaussian.svg +12 -0
- datalab/data/icons/create/grating.svg +29 -0
- datalab/data/icons/create/linear_chirp.svg +7 -0
- datalab/data/icons/create/logistic.svg +7 -0
- datalab/data/icons/create/lorentzian.svg +12 -0
- datalab/data/icons/create/planck.svg +12 -0
- datalab/data/icons/create/polynomial.svg +7 -0
- datalab/data/icons/create/pulse.svg +12 -0
- datalab/data/icons/create/ring.svg +18 -0
- datalab/data/icons/create/sawtooth.svg +7 -0
- datalab/data/icons/create/siemens.svg +35 -0
- datalab/data/icons/create/sinc.svg +12 -0
- datalab/data/icons/create/sine.svg +7 -0
- datalab/data/icons/create/square.svg +7 -0
- datalab/data/icons/create/square_pulse.svg +7 -0
- datalab/data/icons/create/step.svg +7 -0
- datalab/data/icons/create/step_pulse.svg +12 -0
- datalab/data/icons/create/triangle.svg +7 -0
- datalab/data/icons/create/voigt.svg +12 -0
- datalab/data/icons/edit/annotations.svg +72 -0
- datalab/data/icons/edit/annotations_copy.svg +114 -0
- datalab/data/icons/edit/annotations_delete.svg +83 -0
- datalab/data/icons/edit/annotations_edit.svg +98 -0
- datalab/data/icons/edit/annotations_export.svg +85 -0
- datalab/data/icons/edit/annotations_import.svg +85 -0
- datalab/data/icons/edit/annotations_paste.svg +100 -0
- datalab/data/icons/edit/copy_titles.svg +109 -0
- datalab/data/icons/edit/delete.svg +84 -0
- datalab/data/icons/edit/delete_all.svg +214 -0
- datalab/data/icons/edit/duplicate.svg +64 -0
- datalab/data/icons/edit/goto_source.svg +60 -0
- datalab/data/icons/edit/metadata.svg +60 -0
- datalab/data/icons/edit/metadata_add.svg +80 -0
- datalab/data/icons/edit/metadata_copy.svg +96 -0
- datalab/data/icons/edit/metadata_delete.svg +62 -0
- datalab/data/icons/edit/metadata_export.svg +68 -0
- datalab/data/icons/edit/metadata_import.svg +68 -0
- datalab/data/icons/edit/metadata_paste.svg +79 -0
- datalab/data/icons/edit/move_down.svg +55 -0
- datalab/data/icons/edit/move_up.svg +54 -0
- datalab/data/icons/edit/new_group.svg +76 -0
- datalab/data/icons/edit/recompute.svg +60 -0
- datalab/data/icons/edit/rename.svg +49 -0
- datalab/data/icons/edit.svg +16 -0
- datalab/data/icons/expand.svg +44 -0
- datalab/data/icons/expand_selection.svg +63 -0
- datalab/data/icons/fit/cdf_fit.svg +56 -0
- datalab/data/icons/fit/exponential_fit.svg +55 -0
- datalab/data/icons/fit/gaussian_fit.svg +62 -0
- datalab/data/icons/fit/interactive_fit.svg +101 -0
- datalab/data/icons/fit/linear_fit.svg +57 -0
- datalab/data/icons/fit/lorentzian_fit.svg +209 -0
- datalab/data/icons/fit/multigaussian_fit.svg +85 -0
- datalab/data/icons/fit/multilorentzian_fit.svg +85 -0
- datalab/data/icons/fit/piecewiseexponential_fit.svg +209 -0
- datalab/data/icons/fit/planckian_fit.svg +62 -0
- datalab/data/icons/fit/polynomial_fit.svg +59 -0
- datalab/data/icons/fit/sigmoid_fit.svg +56 -0
- datalab/data/icons/fit/sinusoidal_fit.svg +72 -0
- datalab/data/icons/fit/twohalfgaussian_fit.svg +63 -0
- datalab/data/icons/fit/voigt_fit.svg +57 -0
- datalab/data/icons/group.svg +56 -0
- datalab/data/icons/h5/h5array.svg +59 -0
- datalab/data/icons/h5/h5attrs.svg +75 -0
- datalab/data/icons/h5/h5browser.svg +133 -0
- datalab/data/icons/h5/h5file.svg +69 -0
- datalab/data/icons/h5/h5group.svg +49 -0
- datalab/data/icons/h5/h5scalar.svg +1 -0
- datalab/data/icons/help_pdf.svg +46 -0
- datalab/data/icons/history.svg +7 -0
- datalab/data/icons/image.svg +135 -0
- datalab/data/icons/io/fileopen_directory.svg +60 -0
- datalab/data/icons/io/fileopen_h5.svg +84 -0
- datalab/data/icons/io/fileopen_ima.svg +187 -0
- datalab/data/icons/io/fileopen_py.svg +123 -0
- datalab/data/icons/io/fileopen_sig.svg +138 -0
- datalab/data/icons/io/filesave_h5.svg +97 -0
- datalab/data/icons/io/filesave_ima.svg +200 -0
- datalab/data/icons/io/filesave_py.svg +136 -0
- datalab/data/icons/io/filesave_sig.svg +151 -0
- datalab/data/icons/io/import_text.svg +144 -0
- datalab/data/icons/io/save_to_directory.svg +134 -0
- datalab/data/icons/io.svg +84 -0
- datalab/data/icons/libre-camera-flash-off.svg +1 -0
- datalab/data/icons/libre-camera-flash-on.svg +1 -0
- datalab/data/icons/libre-gui-about.svg +1 -0
- datalab/data/icons/libre-gui-action-delete.svg +1 -0
- datalab/data/icons/libre-gui-add.svg +1 -0
- datalab/data/icons/libre-gui-arrow-down.svg +1 -0
- datalab/data/icons/libre-gui-arrow-left.svg +1 -0
- datalab/data/icons/libre-gui-arrow-right.svg +1 -0
- datalab/data/icons/libre-gui-arrow-up.svg +1 -0
- datalab/data/icons/libre-gui-close.svg +40 -0
- datalab/data/icons/libre-gui-cogs.svg +1 -0
- datalab/data/icons/libre-gui-globe.svg +1 -0
- datalab/data/icons/libre-gui-help.svg +1 -0
- datalab/data/icons/libre-gui-link.svg +1 -0
- datalab/data/icons/libre-gui-menu.svg +1 -0
- datalab/data/icons/libre-gui-pencil.svg +1 -0
- datalab/data/icons/libre-gui-plugin.svg +1 -0
- datalab/data/icons/libre-gui-questions.svg +1 -0
- datalab/data/icons/libre-gui-settings.svg +1 -0
- datalab/data/icons/libre-gui-unlink.svg +1 -0
- datalab/data/icons/libre-tech-ram.svg +1 -0
- datalab/data/icons/libre-toolbox.svg +1 -0
- datalab/data/icons/logs.svg +1 -0
- datalab/data/icons/markers.svg +74 -0
- datalab/data/icons/menu.svg +13 -0
- datalab/data/icons/new_ima.svg +148 -0
- datalab/data/icons/new_sig.svg +123 -0
- datalab/data/icons/operations/abs.svg +116 -0
- datalab/data/icons/operations/arithmetic.svg +123 -0
- datalab/data/icons/operations/average.svg +124 -0
- datalab/data/icons/operations/complex_from_magnitude_phase.svg +116 -0
- datalab/data/icons/operations/complex_from_real_imag.svg +124 -0
- datalab/data/icons/operations/constant.svg +116 -0
- datalab/data/icons/operations/constant_add.svg +109 -0
- datalab/data/icons/operations/constant_divide.svg +109 -0
- datalab/data/icons/operations/constant_multiply.svg +109 -0
- datalab/data/icons/operations/constant_subtract.svg +109 -0
- datalab/data/icons/operations/convert_dtype.svg +117 -0
- datalab/data/icons/operations/convolution.svg +46 -0
- datalab/data/icons/operations/deconvolution.svg +57 -0
- datalab/data/icons/operations/derivative.svg +127 -0
- datalab/data/icons/operations/difference.svg +52 -0
- datalab/data/icons/operations/division.svg +139 -0
- datalab/data/icons/operations/exp.svg +116 -0
- datalab/data/icons/operations/flip_horizontally.svg +69 -0
- datalab/data/icons/operations/flip_vertically.svg +74 -0
- datalab/data/icons/operations/im.svg +124 -0
- datalab/data/icons/operations/integral.svg +50 -0
- datalab/data/icons/operations/inverse.svg +143 -0
- datalab/data/icons/operations/log10.svg +109 -0
- datalab/data/icons/operations/phase.svg +116 -0
- datalab/data/icons/operations/power.svg +118 -0
- datalab/data/icons/operations/product.svg +124 -0
- datalab/data/icons/operations/profile.svg +379 -0
- datalab/data/icons/operations/profile_average.svg +399 -0
- datalab/data/icons/operations/profile_radial.svg +261 -0
- datalab/data/icons/operations/profile_segment.svg +262 -0
- datalab/data/icons/operations/quadratic_difference.svg +84 -0
- datalab/data/icons/operations/re.svg +124 -0
- datalab/data/icons/operations/rotate_left.svg +72 -0
- datalab/data/icons/operations/rotate_right.svg +72 -0
- datalab/data/icons/operations/signals_to_image.svg +314 -0
- datalab/data/icons/operations/sqrt.svg +110 -0
- datalab/data/icons/operations/std.svg +124 -0
- datalab/data/icons/operations/sum.svg +102 -0
- datalab/data/icons/play_demo.svg +9 -0
- datalab/data/icons/processing/axis_transform.svg +62 -0
- datalab/data/icons/processing/bandpass.svg +79 -0
- datalab/data/icons/processing/bandstop.svg +71 -0
- datalab/data/icons/processing/binning.svg +126 -0
- datalab/data/icons/processing/clip.svg +119 -0
- datalab/data/icons/processing/detrending.svg +173 -0
- datalab/data/icons/processing/distribute_on_grid.svg +769 -0
- datalab/data/icons/processing/edge_detection.svg +46 -0
- datalab/data/icons/processing/erase.svg +1 -0
- datalab/data/icons/processing/exposure.svg +143 -0
- datalab/data/icons/processing/fourier.svg +104 -0
- datalab/data/icons/processing/highpass.svg +59 -0
- datalab/data/icons/processing/interpolation.svg +71 -0
- datalab/data/icons/processing/level_adjustment.svg +70 -0
- datalab/data/icons/processing/lowpass.svg +60 -0
- datalab/data/icons/processing/morphology.svg +49 -0
- datalab/data/icons/processing/noise_addition.svg +114 -0
- datalab/data/icons/processing/noise_reduction.svg +38 -0
- datalab/data/icons/processing/normalize.svg +84 -0
- datalab/data/icons/processing/offset_correction.svg +131 -0
- datalab/data/icons/processing/resampling1d.svg +101 -0
- datalab/data/icons/processing/resampling2d.svg +240 -0
- datalab/data/icons/processing/reset_positions.svg +185 -0
- datalab/data/icons/processing/resize.svg +9 -0
- datalab/data/icons/processing/reverse_signal_x.svg +171 -0
- datalab/data/icons/processing/stability.svg +11 -0
- datalab/data/icons/processing/swap_x_y.svg +65 -0
- datalab/data/icons/processing/thresholding.svg +63 -0
- datalab/data/icons/processing/windowing.svg +45 -0
- datalab/data/icons/properties.svg +26 -0
- datalab/data/icons/reset.svg +9 -0
- datalab/data/icons/restore.svg +40 -0
- datalab/data/icons/roi/roi.svg +76 -0
- datalab/data/icons/roi/roi_coordinate.svg +78 -0
- datalab/data/icons/roi/roi_copy.svg +112 -0
- datalab/data/icons/roi/roi_delete.svg +81 -0
- datalab/data/icons/roi/roi_export.svg +87 -0
- datalab/data/icons/roi/roi_graphical.svg +78 -0
- datalab/data/icons/roi/roi_grid.svg +67 -0
- datalab/data/icons/roi/roi_ima.svg +188 -0
- datalab/data/icons/roi/roi_import.svg +87 -0
- datalab/data/icons/roi/roi_new.svg +81 -0
- datalab/data/icons/roi/roi_new_circle.svg +95 -0
- datalab/data/icons/roi/roi_new_polygon.svg +110 -0
- datalab/data/icons/roi/roi_new_rectangle.svg +70 -0
- datalab/data/icons/roi/roi_paste.svg +98 -0
- datalab/data/icons/roi/roi_sig.svg +124 -0
- datalab/data/icons/shapes.svg +134 -0
- datalab/data/icons/signal.svg +103 -0
- datalab/data/icons/table.svg +85 -0
- datalab/data/icons/table_unavailable.svg +102 -0
- datalab/data/icons/to_signal.svg +124 -0
- datalab/data/icons/tour/next.svg +44 -0
- datalab/data/icons/tour/previous.svg +44 -0
- datalab/data/icons/tour/rewind.svg +51 -0
- datalab/data/icons/tour/stop.svg +47 -0
- datalab/data/icons/tour/tour.svg +16 -0
- datalab/data/icons/uncheck_all.svg +78 -0
- datalab/data/icons/view/curve_antialiasing.svg +50 -0
- datalab/data/icons/view/new_window.svg +98 -0
- datalab/data/icons/view/refresh-auto.svg +57 -0
- datalab/data/icons/view/refresh-manual.svg +51 -0
- datalab/data/icons/view/reset_curve_styles.svg +96 -0
- datalab/data/icons/view/show_first.svg +55 -0
- datalab/data/icons/view/show_titles.svg +46 -0
- datalab/data/icons/visualization.svg +51 -0
- datalab/data/logo/DataLab-Banner-150.png +0 -0
- datalab/data/logo/DataLab-Banner-200.png +0 -0
- datalab/data/logo/DataLab-Banner2-100.png +0 -0
- datalab/data/logo/DataLab-Splash.png +0 -0
- datalab/data/logo/DataLab-watermark.png +0 -0
- datalab/data/logo/DataLab.svg +83 -0
- datalab/data/tests/reordering_test.h5 +0 -0
- datalab/data/tutorials/fabry_perot/fabry-perot1.jpg +0 -0
- datalab/data/tutorials/fabry_perot/fabry-perot2.jpg +0 -0
- datalab/data/tutorials/laser_beam/TEM00_z_13.jpg +0 -0
- datalab/data/tutorials/laser_beam/TEM00_z_18.jpg +0 -0
- datalab/data/tutorials/laser_beam/TEM00_z_23.jpg +0 -0
- datalab/data/tutorials/laser_beam/TEM00_z_30.jpg +0 -0
- datalab/data/tutorials/laser_beam/TEM00_z_35.jpg +0 -0
- datalab/data/tutorials/laser_beam/TEM00_z_40.jpg +0 -0
- datalab/data/tutorials/laser_beam/TEM00_z_45.jpg +0 -0
- datalab/data/tutorials/laser_beam/TEM00_z_50.jpg +0 -0
- datalab/data/tutorials/laser_beam/TEM00_z_55.jpg +0 -0
- datalab/data/tutorials/laser_beam/TEM00_z_60.jpg +0 -0
- datalab/data/tutorials/laser_beam/TEM00_z_65.jpg +0 -0
- datalab/data/tutorials/laser_beam/TEM00_z_70.jpg +0 -0
- datalab/data/tutorials/laser_beam/TEM00_z_75.jpg +0 -0
- datalab/data/tutorials/laser_beam/TEM00_z_80.jpg +0 -0
- datalab/env.py +542 -0
- datalab/gui/__init__.py +89 -0
- datalab/gui/actionhandler.py +1701 -0
- datalab/gui/docks.py +473 -0
- datalab/gui/h5io.py +150 -0
- datalab/gui/macroeditor.py +310 -0
- datalab/gui/main.py +2081 -0
- datalab/gui/newobject.py +217 -0
- datalab/gui/objectview.py +766 -0
- datalab/gui/panel/__init__.py +48 -0
- datalab/gui/panel/base.py +3254 -0
- datalab/gui/panel/image.py +157 -0
- datalab/gui/panel/macro.py +607 -0
- datalab/gui/panel/signal.py +164 -0
- datalab/gui/plothandler.py +800 -0
- datalab/gui/processor/__init__.py +84 -0
- datalab/gui/processor/base.py +2456 -0
- datalab/gui/processor/catcher.py +75 -0
- datalab/gui/processor/image.py +1214 -0
- datalab/gui/processor/signal.py +755 -0
- datalab/gui/profiledialog.py +333 -0
- datalab/gui/roieditor.py +633 -0
- datalab/gui/roigrideditor.py +208 -0
- datalab/gui/settings.py +612 -0
- datalab/gui/tour.py +908 -0
- datalab/h5/__init__.py +12 -0
- datalab/h5/common.py +314 -0
- datalab/h5/generic.py +580 -0
- datalab/h5/native.py +39 -0
- datalab/h5/utils.py +95 -0
- datalab/objectmodel.py +640 -0
- datalab/plugins/_readme_.txt +9 -0
- datalab/plugins/datalab_imageformats.py +175 -0
- datalab/plugins/datalab_testdata.py +190 -0
- datalab/plugins.py +355 -0
- datalab/tests/__init__.py +199 -0
- datalab/tests/backbone/__init__.py +1 -0
- datalab/tests/backbone/config_unit_test.py +170 -0
- datalab/tests/backbone/config_versioning_unit_test.py +34 -0
- datalab/tests/backbone/dictlistserial_app_test.py +38 -0
- datalab/tests/backbone/errorcatcher_unit_test.py +69 -0
- datalab/tests/backbone/errormsgbox_unit_test.py +50 -0
- datalab/tests/backbone/execenv_unit.py +262 -0
- datalab/tests/backbone/loadtest_gdi.py +147 -0
- datalab/tests/backbone/long_callback.py +96 -0
- datalab/tests/backbone/main_app_test.py +137 -0
- datalab/tests/backbone/memory_leak.py +43 -0
- datalab/tests/backbone/procisolation1_unit.py +128 -0
- datalab/tests/backbone/procisolation2_unit.py +171 -0
- datalab/tests/backbone/procisolation_unit_test.py +22 -0
- datalab/tests/backbone/profiling_app.py +27 -0
- datalab/tests/backbone/strings_unit_test.py +65 -0
- datalab/tests/backbone/title_formatting_unit_test.py +82 -0
- datalab/tests/conftest.py +131 -0
- datalab/tests/features/__init__.py +1 -0
- datalab/tests/features/applauncher/__init__.py +1 -0
- datalab/tests/features/applauncher/launcher1_app_test.py +28 -0
- datalab/tests/features/applauncher/launcher2_app_test.py +30 -0
- datalab/tests/features/common/__init__.py +1 -0
- datalab/tests/features/common/add_metadata_app_test.py +134 -0
- datalab/tests/features/common/add_metadata_unit_test.py +267 -0
- datalab/tests/features/common/annotations_management_unit_test.py +152 -0
- datalab/tests/features/common/auto_analysis_recompute_unit_test.py +240 -0
- datalab/tests/features/common/createobject_unit_test.py +50 -0
- datalab/tests/features/common/geometry_results_app_test.py +135 -0
- datalab/tests/features/common/interactive_processing_test.py +1109 -0
- datalab/tests/features/common/io_app_test.py +75 -0
- datalab/tests/features/common/large_results_app_test.py +187 -0
- datalab/tests/features/common/metadata_all_patterns_test.py +103 -0
- datalab/tests/features/common/metadata_app_test.py +139 -0
- datalab/tests/features/common/metadata_io_unit_test.py +60 -0
- datalab/tests/features/common/misc_app_test.py +236 -0
- datalab/tests/features/common/multiple_geometry_results_unit_test.py +122 -0
- datalab/tests/features/common/multiple_table_results_unit_test.py +64 -0
- datalab/tests/features/common/operation_modes_app_test.py +392 -0
- datalab/tests/features/common/plot_results_app_test.py +278 -0
- datalab/tests/features/common/reorder_app_test.py +75 -0
- datalab/tests/features/common/result_deletion_unit_test.py +96 -0
- datalab/tests/features/common/result_merged_label_unit_test.py +154 -0
- datalab/tests/features/common/result_shape_settings_unit_test.py +223 -0
- datalab/tests/features/common/roi_plotitem_unit_test.py +64 -0
- datalab/tests/features/common/roieditor_unit_test.py +102 -0
- datalab/tests/features/common/save_to_dir_app_test.py +163 -0
- datalab/tests/features/common/save_to_dir_unit_test.py +474 -0
- datalab/tests/features/common/stat_app_test.py +40 -0
- datalab/tests/features/common/stats_tools_unit_test.py +77 -0
- datalab/tests/features/common/table_results_app_test.py +52 -0
- datalab/tests/features/common/textimport_unit_test.py +131 -0
- datalab/tests/features/common/uuid_preservation_test.py +281 -0
- datalab/tests/features/common/worker_unit_test.py +402 -0
- datalab/tests/features/control/__init__.py +1 -0
- datalab/tests/features/control/connect_dialog.py +28 -0
- datalab/tests/features/control/embedded1_unit_test.py +304 -0
- datalab/tests/features/control/embedded2_unit_test.py +52 -0
- datalab/tests/features/control/remoteclient_app_test.py +219 -0
- datalab/tests/features/control/remoteclient_unit.py +75 -0
- datalab/tests/features/control/simpleclient_unit_test.py +321 -0
- datalab/tests/features/hdf5/__init__.py +1 -0
- datalab/tests/features/hdf5/h5browser1_unit_test.py +31 -0
- datalab/tests/features/hdf5/h5browser2_unit.py +55 -0
- datalab/tests/features/hdf5/h5browser_app_test.py +77 -0
- datalab/tests/features/hdf5/h5import_app_test.py +25 -0
- datalab/tests/features/hdf5/h5importer_app_test.py +34 -0
- datalab/tests/features/image/__init__.py +1 -0
- datalab/tests/features/image/annotations_app_test.py +28 -0
- datalab/tests/features/image/annotations_unit_test.py +80 -0
- datalab/tests/features/image/average_app_test.py +46 -0
- datalab/tests/features/image/background_dialog_test.py +70 -0
- datalab/tests/features/image/blobs_app_test.py +50 -0
- datalab/tests/features/image/contour_app_test.py +42 -0
- datalab/tests/features/image/contour_fabryperot_app_test.py +51 -0
- datalab/tests/features/image/denoise_app_test.py +31 -0
- datalab/tests/features/image/distribute_on_grid_app_test.py +95 -0
- datalab/tests/features/image/edges_app_test.py +31 -0
- datalab/tests/features/image/erase_app_test.py +21 -0
- datalab/tests/features/image/fft2d_app_test.py +27 -0
- datalab/tests/features/image/flatfield_app_test.py +40 -0
- datalab/tests/features/image/geometry_transform_unit_test.py +396 -0
- datalab/tests/features/image/imagetools_app_test.py +51 -0
- datalab/tests/features/image/imagetools_unit_test.py +27 -0
- datalab/tests/features/image/load_app_test.py +73 -0
- datalab/tests/features/image/morph_app_test.py +32 -0
- datalab/tests/features/image/offsetcorrection_app_test.py +30 -0
- datalab/tests/features/image/peak2d_app_test.py +53 -0
- datalab/tests/features/image/profile_app_test.py +73 -0
- datalab/tests/features/image/profile_dialog_test.py +56 -0
- datalab/tests/features/image/roi_app_test.py +98 -0
- datalab/tests/features/image/roi_circ_app_test.py +62 -0
- datalab/tests/features/image/roi_manipulation_app_test.py +268 -0
- datalab/tests/features/image/roigrid_unit_test.py +60 -0
- datalab/tests/features/image/side_by_side_app_test.py +52 -0
- datalab/tests/features/macro/__init__.py +1 -0
- datalab/tests/features/macro/macro_app_test.py +28 -0
- datalab/tests/features/macro/macroeditor_unit_test.py +102 -0
- datalab/tests/features/signal/__init__.py +1 -0
- datalab/tests/features/signal/baseline_dialog_test.py +53 -0
- datalab/tests/features/signal/deltax_dialog_unit_test.py +34 -0
- datalab/tests/features/signal/fft1d_app_test.py +26 -0
- datalab/tests/features/signal/filter_app_test.py +44 -0
- datalab/tests/features/signal/fitdialog_unit_test.py +50 -0
- datalab/tests/features/signal/interpolation_app_test.py +110 -0
- datalab/tests/features/signal/loadbigsignal_app_test.py +80 -0
- datalab/tests/features/signal/multiple_rois_unit_test.py +132 -0
- datalab/tests/features/signal/pulse_features_app_test.py +118 -0
- datalab/tests/features/signal/pulse_features_roi_app_test.py +55 -0
- datalab/tests/features/signal/roi_app_test.py +78 -0
- datalab/tests/features/signal/roi_manipulation_app_test.py +261 -0
- datalab/tests/features/signal/select_xy_cursor_unit_test.py +46 -0
- datalab/tests/features/signal/signalpeakdetection_dialog_test.py +33 -0
- datalab/tests/features/signal/signals_to_image_app_test.py +98 -0
- datalab/tests/features/signal/xarray_compat_app_test.py +128 -0
- datalab/tests/features/tour_unit_test.py +22 -0
- datalab/tests/features/utilities/__init__.py +1 -0
- datalab/tests/features/utilities/installconf_unit_test.py +21 -0
- datalab/tests/features/utilities/logview_app_test.py +21 -0
- datalab/tests/features/utilities/logview_error.py +24 -0
- datalab/tests/features/utilities/logview_unit_test.py +21 -0
- datalab/tests/features/utilities/memstatus_app_test.py +42 -0
- datalab/tests/features/utilities/settings_unit_test.py +88 -0
- datalab/tests/scenarios/__init__.py +1 -0
- datalab/tests/scenarios/beautiful_app.py +121 -0
- datalab/tests/scenarios/common.py +463 -0
- datalab/tests/scenarios/demo.py +212 -0
- datalab/tests/scenarios/example_app_test.py +47 -0
- datalab/tests/scenarios/scenario_h5_app_test.py +75 -0
- datalab/tests/scenarios/scenario_ima1_app_test.py +34 -0
- datalab/tests/scenarios/scenario_ima2_app_test.py +34 -0
- datalab/tests/scenarios/scenario_mac_app_test.py +58 -0
- datalab/tests/scenarios/scenario_sig1_app_test.py +36 -0
- datalab/tests/scenarios/scenario_sig2_app_test.py +35 -0
- datalab/utils/__init__.py +1 -0
- datalab/utils/conf.py +304 -0
- datalab/utils/dephash.py +105 -0
- datalab/utils/qthelpers.py +633 -0
- datalab/utils/strings.py +34 -0
- datalab/utils/tests.py +0 -0
- datalab/widgets/__init__.py +1 -0
- datalab/widgets/connection.py +138 -0
- datalab/widgets/filedialog.py +91 -0
- datalab/widgets/fileviewer.py +84 -0
- datalab/widgets/fitdialog.py +788 -0
- datalab/widgets/h5browser.py +1048 -0
- datalab/widgets/imagebackground.py +111 -0
- datalab/widgets/instconfviewer.py +175 -0
- datalab/widgets/logviewer.py +80 -0
- datalab/widgets/signalbaseline.py +90 -0
- datalab/widgets/signalcursor.py +208 -0
- datalab/widgets/signaldeltax.py +151 -0
- datalab/widgets/signalpeak.py +199 -0
- datalab/widgets/status.py +249 -0
- datalab/widgets/textimport.py +786 -0
- datalab/widgets/warningerror.py +223 -0
- datalab/widgets/wizard.py +286 -0
- datalab_platform-1.0.1.dist-info/METADATA +121 -0
- datalab_platform-1.0.1.dist-info/RECORD +494 -0
- datalab_platform-0.0.1.dev0.dist-info/METADATA +0 -67
- datalab_platform-0.0.1.dev0.dist-info/RECORD +0 -7
- {datalab_platform-0.0.1.dev0.dist-info → datalab_platform-1.0.1.dist-info}/WHEEL +0 -0
- {datalab_platform-0.0.1.dev0.dist-info → datalab_platform-1.0.1.dist-info}/entry_points.txt +0 -0
- {datalab_platform-0.0.1.dev0.dist-info → datalab_platform-1.0.1.dist-info}/licenses/LICENSE +0 -0
- {datalab_platform-0.0.1.dev0.dist-info → datalab_platform-1.0.1.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
# Copyright (c) DataLab Platform Developers, BSD 3-Clause license, see LICENSE file.
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
PlotPy Adapter Image ROI Module
|
|
5
|
+
-------------------------------
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
import numpy as np
|
|
11
|
+
from plotpy.builder import make
|
|
12
|
+
from plotpy.items import AnnotatedCircle, AnnotatedPolygon, AnnotatedRectangle
|
|
13
|
+
from sigima.objects import CircularROI, ImageObj, ImageROI, PolygonalROI, RectangularROI
|
|
14
|
+
from sigima.tools import coordinates
|
|
15
|
+
|
|
16
|
+
from datalab.adapters_plotpy.roi.base import (
|
|
17
|
+
BaseROIPlotPyAdapter,
|
|
18
|
+
BaseSingleROIPlotPyAdapter,
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def _vs(var: str, sub: str = "") -> str:
|
|
23
|
+
"""Return variable name with subscript"""
|
|
24
|
+
txt = f"<var>{var}</var>"
|
|
25
|
+
if sub:
|
|
26
|
+
txt += f"<sub>{sub}</sub>"
|
|
27
|
+
return txt
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class PolygonalROIPlotPyAdapter(
|
|
31
|
+
BaseSingleROIPlotPyAdapter[PolygonalROI, AnnotatedPolygon]
|
|
32
|
+
):
|
|
33
|
+
"""Polygonal ROI plot item adapter
|
|
34
|
+
|
|
35
|
+
Args:
|
|
36
|
+
single_roi: single ROI object
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
def to_plot_item(self, obj: ImageObj) -> AnnotatedPolygon:
|
|
40
|
+
"""Make and return the annnotated polygon associated to ROI
|
|
41
|
+
|
|
42
|
+
Args:
|
|
43
|
+
obj: object (image), for physical-indices coordinates conversion
|
|
44
|
+
"""
|
|
45
|
+
|
|
46
|
+
def info_callback(item: AnnotatedPolygon) -> str:
|
|
47
|
+
"""Return info string for circular ROI"""
|
|
48
|
+
xc, yc = item.get_center()
|
|
49
|
+
if self.single_roi.indices:
|
|
50
|
+
xc, yc = obj.physical_to_indices([xc, yc])
|
|
51
|
+
return "<br>".join(
|
|
52
|
+
[
|
|
53
|
+
f"({_vs('x', 'c')}, {_vs('y', 'c')}) = ({xc:g}, {yc:g})",
|
|
54
|
+
]
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
coords = np.array(self.single_roi.get_physical_coords(obj))
|
|
58
|
+
points = coords.reshape(-1, 2)
|
|
59
|
+
item = AnnotatedPolygon(points)
|
|
60
|
+
item.set_info_callback(info_callback)
|
|
61
|
+
item.annotationparam.title = self.single_roi.title
|
|
62
|
+
item.annotationparam.update_item(item)
|
|
63
|
+
item.set_style("plot", "shape/drag")
|
|
64
|
+
return item
|
|
65
|
+
|
|
66
|
+
@classmethod
|
|
67
|
+
def from_plot_item(cls, item: AnnotatedPolygon) -> PolygonalROI:
|
|
68
|
+
"""Create ROI from plot item
|
|
69
|
+
|
|
70
|
+
Args:
|
|
71
|
+
item: plot item
|
|
72
|
+
"""
|
|
73
|
+
title = str(item.title().text())
|
|
74
|
+
return PolygonalROI(item.get_points().flatten(), False, title)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
class RectangularROIPlotPyAdapter(
|
|
78
|
+
BaseSingleROIPlotPyAdapter[RectangularROI, AnnotatedRectangle]
|
|
79
|
+
):
|
|
80
|
+
"""Rectangular ROI plot item adapter
|
|
81
|
+
|
|
82
|
+
Args:
|
|
83
|
+
single_roi: single ROI object
|
|
84
|
+
"""
|
|
85
|
+
|
|
86
|
+
def to_plot_item(self, obj: ImageObj) -> AnnotatedRectangle:
|
|
87
|
+
"""Make and return the annnotated rectangle associated to ROI
|
|
88
|
+
|
|
89
|
+
Args:
|
|
90
|
+
obj: object (image), for physical-indices coordinates conversion
|
|
91
|
+
"""
|
|
92
|
+
|
|
93
|
+
def info_callback(item: AnnotatedRectangle) -> str:
|
|
94
|
+
"""Return info string for rectangular ROI"""
|
|
95
|
+
x0, y0, x1, y1 = item.get_rect()
|
|
96
|
+
if self.single_roi.indices:
|
|
97
|
+
x0, y0, x1, y1 = obj.physical_to_indices([x0, y0, x1, y1])
|
|
98
|
+
x0, y0, dx, dy = self.single_roi.rect_to_coords(x0, y0, x1, y1)
|
|
99
|
+
return "<br>".join(
|
|
100
|
+
[
|
|
101
|
+
f"({_vs('x', '0')}, {_vs('y', '0')}) = ({x0:g}, {y0:g})",
|
|
102
|
+
f"{_vs('Δx')} × {_vs('Δy')} = {dx:g} × {dy:g}",
|
|
103
|
+
]
|
|
104
|
+
)
|
|
105
|
+
|
|
106
|
+
x0, y0, dx, dy = self.single_roi.get_physical_coords(obj)
|
|
107
|
+
x1, y1 = x0 + dx, y0 + dy
|
|
108
|
+
item: AnnotatedRectangle = make.annotated_rectangle(
|
|
109
|
+
x0, y0, x1, y1, title=self.single_roi.title
|
|
110
|
+
)
|
|
111
|
+
item.set_info_callback(info_callback)
|
|
112
|
+
param = item.label.labelparam
|
|
113
|
+
param.anchor = "BL"
|
|
114
|
+
param.xc, param.yc = 5, -5
|
|
115
|
+
param.update_item(item.label)
|
|
116
|
+
return item
|
|
117
|
+
|
|
118
|
+
@classmethod
|
|
119
|
+
def from_plot_item(cls, item: AnnotatedRectangle) -> RectangularROI:
|
|
120
|
+
"""Create ROI from plot item
|
|
121
|
+
|
|
122
|
+
Args:
|
|
123
|
+
item: plot item
|
|
124
|
+
"""
|
|
125
|
+
rect = item.get_rect()
|
|
126
|
+
title = str(item.title().text())
|
|
127
|
+
return RectangularROI(RectangularROI.rect_to_coords(*rect), False, title)
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
class CircularROIPlotPyAdapter(
|
|
131
|
+
BaseSingleROIPlotPyAdapter[CircularROI, AnnotatedCircle]
|
|
132
|
+
):
|
|
133
|
+
"""Circular ROI plot item adapter
|
|
134
|
+
|
|
135
|
+
Args:
|
|
136
|
+
single_roi: single ROI object
|
|
137
|
+
"""
|
|
138
|
+
|
|
139
|
+
def to_plot_item(self, obj: ImageObj) -> AnnotatedCircle:
|
|
140
|
+
"""Make and return the annnotated circle associated to ROI
|
|
141
|
+
|
|
142
|
+
Args:
|
|
143
|
+
obj: object (image), for physical-indices coordinates conversion
|
|
144
|
+
"""
|
|
145
|
+
|
|
146
|
+
def info_callback(item: AnnotatedCircle) -> str:
|
|
147
|
+
"""Return info string for circular ROI"""
|
|
148
|
+
x0, y0, x1, y1 = item.get_rect()
|
|
149
|
+
if self.single_roi.indices:
|
|
150
|
+
x0, y0, x1, y1 = obj.physical_to_indices([x0, y0, x1, y1])
|
|
151
|
+
xc, yc, r = self.single_roi.rect_to_coords(x0, y0, x1, y1)
|
|
152
|
+
return "<br>".join(
|
|
153
|
+
[
|
|
154
|
+
f"({_vs('x', 'c')}, {_vs('y', 'c')}) = ({xc:g}, {yc:g})",
|
|
155
|
+
f"{_vs('r')} = {r:g}",
|
|
156
|
+
]
|
|
157
|
+
)
|
|
158
|
+
|
|
159
|
+
xc, yc, r = self.single_roi.get_physical_coords(obj)
|
|
160
|
+
x0, y0, x1, y1 = coordinates.circle_to_diameter(xc, yc, r)
|
|
161
|
+
item = AnnotatedCircle(x0, y0, x1, y1)
|
|
162
|
+
item.set_info_callback(info_callback)
|
|
163
|
+
item.annotationparam.title = self.single_roi.title
|
|
164
|
+
item.annotationparam.update_item(item)
|
|
165
|
+
item.set_style("plot", "shape/drag")
|
|
166
|
+
return item
|
|
167
|
+
|
|
168
|
+
@classmethod
|
|
169
|
+
def from_plot_item(cls, item: AnnotatedCircle) -> CircularROI:
|
|
170
|
+
"""Create ROI from plot item
|
|
171
|
+
|
|
172
|
+
Args:
|
|
173
|
+
item: plot item
|
|
174
|
+
"""
|
|
175
|
+
rect = item.get_rect()
|
|
176
|
+
title = str(item.title().text())
|
|
177
|
+
return CircularROI(CircularROI.rect_to_coords(*rect), False, title)
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
class ImageROIPlotPyAdapter(BaseROIPlotPyAdapter[ImageROI]):
|
|
181
|
+
"""Image ROI plot item adapter class
|
|
182
|
+
|
|
183
|
+
Args:
|
|
184
|
+
roi: ROI object
|
|
185
|
+
"""
|
|
186
|
+
|
|
187
|
+
def to_plot_item(
|
|
188
|
+
self,
|
|
189
|
+
single_roi: PolygonalROI | RectangularROI | CircularROI,
|
|
190
|
+
obj: ImageObj,
|
|
191
|
+
) -> AnnotatedCircle | AnnotatedRectangle | AnnotatedPolygon:
|
|
192
|
+
"""Make ROI plot item from single ROI
|
|
193
|
+
|
|
194
|
+
Args:
|
|
195
|
+
single_roi: single ROI object
|
|
196
|
+
obj: object (signal/image), for physical-indices coordinates conversion
|
|
197
|
+
|
|
198
|
+
Returns:
|
|
199
|
+
Plot item
|
|
200
|
+
"""
|
|
201
|
+
if isinstance(single_roi, PolygonalROI):
|
|
202
|
+
return PolygonalROIPlotPyAdapter(single_roi).to_plot_item(obj)
|
|
203
|
+
if isinstance(single_roi, RectangularROI):
|
|
204
|
+
return RectangularROIPlotPyAdapter(single_roi).to_plot_item(obj)
|
|
205
|
+
if isinstance(single_roi, CircularROI):
|
|
206
|
+
return CircularROIPlotPyAdapter(single_roi).to_plot_item(obj)
|
|
207
|
+
raise TypeError(f"Invalid ROI type {type(single_roi)}")
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# Copyright (c) DataLab Platform Developers, BSD 3-Clause license, see LICENSE file.
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
PlotPy Adapter Signal ROI Module
|
|
5
|
+
--------------------------------
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
from plotpy.builder import make
|
|
11
|
+
from plotpy.items import AnnotatedXRange
|
|
12
|
+
from sigima.objects import SegmentROI, SignalObj, SignalROI
|
|
13
|
+
|
|
14
|
+
from datalab.adapters_plotpy.roi.base import (
|
|
15
|
+
BaseROIPlotPyAdapter,
|
|
16
|
+
BaseSingleROIPlotPyAdapter,
|
|
17
|
+
)
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class SegmentROIPlotPyAdapter(BaseSingleROIPlotPyAdapter[SegmentROI, AnnotatedXRange]):
|
|
21
|
+
"""Segment ROI plot item adapter
|
|
22
|
+
|
|
23
|
+
Args:
|
|
24
|
+
coords: ROI coordinates (xmin, xmax)
|
|
25
|
+
title: ROI title
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
def to_plot_item(self, obj: SignalObj) -> AnnotatedXRange:
|
|
29
|
+
"""Make and return the annnotated segment associated with the ROI
|
|
30
|
+
|
|
31
|
+
Args:
|
|
32
|
+
obj: object (signal), for physical-indices coordinates conversion
|
|
33
|
+
"""
|
|
34
|
+
xmin, xmax = self.single_roi.get_physical_coords(obj)
|
|
35
|
+
item = make.annotated_xrange(xmin, xmax, title=self.single_roi.title)
|
|
36
|
+
return item
|
|
37
|
+
|
|
38
|
+
@classmethod
|
|
39
|
+
def from_plot_item(cls, item: AnnotatedXRange) -> SegmentROI:
|
|
40
|
+
"""Create ROI from plot item
|
|
41
|
+
|
|
42
|
+
Args:
|
|
43
|
+
item: plot item
|
|
44
|
+
|
|
45
|
+
Returns:
|
|
46
|
+
ROI
|
|
47
|
+
"""
|
|
48
|
+
if not isinstance(item, AnnotatedXRange):
|
|
49
|
+
raise TypeError("Invalid plot item type")
|
|
50
|
+
coords = sorted(item.get_range())
|
|
51
|
+
title = str(item.title().text())
|
|
52
|
+
return SegmentROI(coords, False, title)
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
class SignalROIPlotPyAdapter(BaseROIPlotPyAdapter[SignalROI]):
|
|
56
|
+
"""Signal ROI plot item adapter class
|
|
57
|
+
|
|
58
|
+
Args:
|
|
59
|
+
roi: ROI object
|
|
60
|
+
"""
|
|
61
|
+
|
|
62
|
+
def to_plot_item(self, single_roi: SegmentROI, obj: SignalObj) -> AnnotatedXRange:
|
|
63
|
+
"""Make ROI plot item from single ROI
|
|
64
|
+
|
|
65
|
+
Args:
|
|
66
|
+
single_roi: single ROI object
|
|
67
|
+
obj: object (signal/image), for physical-indices coordinates conversion
|
|
68
|
+
|
|
69
|
+
Returns:
|
|
70
|
+
Plot item
|
|
71
|
+
"""
|
|
72
|
+
return SegmentROIPlotPyAdapter(single_roi).to_plot_item(obj)
|
datalab/app.py
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# Copyright (c) DataLab Platform Developers, BSD 3-Clause license, see LICENSE file.
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
DataLab launcher module
|
|
5
|
+
"""
|
|
6
|
+
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
|
|
9
|
+
from typing import TYPE_CHECKING
|
|
10
|
+
|
|
11
|
+
from guidata.configtools import get_image_file_path
|
|
12
|
+
from qtpy import QtCore as QC
|
|
13
|
+
from qtpy import QtGui as QG
|
|
14
|
+
from qtpy import QtWidgets as QW
|
|
15
|
+
|
|
16
|
+
from datalab.config import Conf
|
|
17
|
+
from datalab.env import execenv
|
|
18
|
+
from datalab.gui.main import DLMainWindow
|
|
19
|
+
from datalab.utils.qthelpers import datalab_app_context
|
|
20
|
+
|
|
21
|
+
if TYPE_CHECKING:
|
|
22
|
+
from sigima.objects import ImageObj, SignalObj
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
def create(
|
|
26
|
+
splash: bool = True,
|
|
27
|
+
console: bool | None = None,
|
|
28
|
+
objects: list[ImageObj | SignalObj] | None = None,
|
|
29
|
+
h5files: list[str] | None = None,
|
|
30
|
+
size: tuple[int, int] | None = None,
|
|
31
|
+
) -> DLMainWindow:
|
|
32
|
+
"""Create DataLab application and return mainwindow instance
|
|
33
|
+
|
|
34
|
+
Args:
|
|
35
|
+
splash: if True, show splash screen
|
|
36
|
+
console: if True, show console
|
|
37
|
+
objects: list of objects to add to the mainwindow
|
|
38
|
+
h5files: list of h5files to open
|
|
39
|
+
size: mainwindow size (width, height)
|
|
40
|
+
|
|
41
|
+
Returns:
|
|
42
|
+
Main window instance
|
|
43
|
+
"""
|
|
44
|
+
if splash:
|
|
45
|
+
# Showing splash screen
|
|
46
|
+
pixmap = QG.QPixmap(get_image_file_path("DataLab-Splash.png"))
|
|
47
|
+
splashscreen = QW.QSplashScreen(pixmap, QC.Qt.WindowStaysOnTopHint)
|
|
48
|
+
splashscreen.show()
|
|
49
|
+
window = DLMainWindow(console=console)
|
|
50
|
+
if size is not None:
|
|
51
|
+
width, height = size
|
|
52
|
+
window.resize(width, height)
|
|
53
|
+
if splash:
|
|
54
|
+
splashscreen.finish(window)
|
|
55
|
+
if Conf.main.window_maximized.get(None):
|
|
56
|
+
window.showMaximized()
|
|
57
|
+
else:
|
|
58
|
+
window.showNormal()
|
|
59
|
+
if h5files is not None:
|
|
60
|
+
window.open_h5_files(h5files, import_all=True)
|
|
61
|
+
if objects is not None:
|
|
62
|
+
for obj in objects:
|
|
63
|
+
window.add_object(obj)
|
|
64
|
+
if execenv.h5browser_file is not None:
|
|
65
|
+
window.import_h5_file(execenv.h5browser_file)
|
|
66
|
+
return window
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
def run(
|
|
70
|
+
console: bool | None = None,
|
|
71
|
+
objects: list[ImageObj | SignalObj] | None = None,
|
|
72
|
+
h5files: list[str] | None = None,
|
|
73
|
+
size: tuple[int, int] | None = None,
|
|
74
|
+
) -> None:
|
|
75
|
+
"""Run the DataLab application
|
|
76
|
+
|
|
77
|
+
Note: this function is an entry point in `setup.py` and therefore
|
|
78
|
+
may not be moved without modifying the package setup script.
|
|
79
|
+
|
|
80
|
+
Args:
|
|
81
|
+
console: if True, show console
|
|
82
|
+
objects: list of objects to add to the mainwindow
|
|
83
|
+
h5files: list of h5files to open
|
|
84
|
+
size: mainwindow size (width, height)
|
|
85
|
+
"""
|
|
86
|
+
if execenv.h5files:
|
|
87
|
+
h5files = ([] if h5files is None else h5files) + execenv.h5files
|
|
88
|
+
|
|
89
|
+
with datalab_app_context(exec_loop=True):
|
|
90
|
+
window = create(
|
|
91
|
+
splash=True, console=console, objects=objects, h5files=h5files, size=size
|
|
92
|
+
)
|
|
93
|
+
QW.QApplication.processEvents()
|
|
94
|
+
window.execute_post_show_actions()
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
if __name__ == "__main__":
|
|
98
|
+
run()
|