pymodaq 4.4.7__py3-none-any.whl → 5.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.
Potentially problematic release.
This version of pymodaq might be problematic. Click here for more details.
- pymodaq/__init__.py +57 -91
- pymodaq/control_modules/daq_move.py +64 -46
- pymodaq/control_modules/daq_move_ui.py +34 -12
- pymodaq/control_modules/daq_viewer.py +55 -30
- pymodaq/control_modules/daq_viewer_ui.py +6 -6
- pymodaq/control_modules/mocks.py +1 -1
- pymodaq/control_modules/move_utility_classes.py +51 -43
- pymodaq/control_modules/utils.py +43 -20
- pymodaq/control_modules/viewer_utility_classes.py +54 -18
- pymodaq/daq_utils/daq_utils.py +6 -0
- pymodaq/dashboard.py +639 -323
- pymodaq/examples/function_plotter.py +13 -12
- pymodaq/examples/tcp_client.py +1 -1
- pymodaq/extensions/__init__.py +1 -1
- pymodaq/extensions/bayesian/bayesian_optimisation.py +44 -32
- pymodaq/extensions/bayesian/utils.py +10 -10
- pymodaq/extensions/console.py +7 -6
- pymodaq/extensions/daq_logger/__init__.py +1 -0
- pymodaq/extensions/{daq_logger.py → daq_logger/daq_logger.py} +30 -30
- pymodaq/{utils/db/db_logger → extensions/daq_logger/db}/db_logger.py +16 -15
- pymodaq/{utils/db/db_logger → extensions/daq_logger/db}/db_logger_models.py +2 -0
- pymodaq/{utils/h5modules → extensions/daq_logger}/h5logging.py +7 -8
- pymodaq/extensions/daq_scan.py +42 -34
- pymodaq/extensions/daq_scan_ui.py +18 -18
- pymodaq/extensions/h5browser.py +2 -3
- pymodaq/extensions/pid/__init__.py +4 -2
- pymodaq/extensions/pid/daq_move_PID.py +3 -3
- pymodaq/extensions/pid/pid_controller.py +59 -50
- pymodaq/extensions/pid/utils.py +10 -5
- pymodaq/extensions/utils.py +33 -3
- pymodaq/post_treatment/load_and_plot.py +10 -7
- pymodaq/resources/preset_default.xml +1 -1
- pymodaq/updater.py +107 -0
- pymodaq/utils/array_manipulation.py +4 -384
- pymodaq/utils/calibration_camera.py +12 -9
- pymodaq/utils/chrono_timer.py +11 -10
- pymodaq/utils/config.py +3 -458
- pymodaq/utils/daq_utils.py +9 -715
- pymodaq/utils/data.py +17 -2959
- pymodaq/utils/enums.py +4 -74
- pymodaq/utils/exceptions.py +0 -4
- pymodaq/utils/gui_utils/__init__.py +8 -8
- pymodaq/utils/gui_utils/loader_utils.py +26 -1
- pymodaq/utils/gui_utils/utils.py +8 -162
- pymodaq/utils/gui_utils/widgets/lcd.py +6 -109
- pymodaq/utils/h5modules/__init__.py +0 -4
- pymodaq/utils/h5modules/module_saving.py +9 -8
- pymodaq/utils/leco/__init__.py +2 -2
- pymodaq/utils/leco/daq_move_LECODirector.py +3 -6
- pymodaq/utils/leco/daq_xDviewer_LECODirector.py +5 -5
- pymodaq/utils/leco/director_utils.py +2 -2
- pymodaq/utils/leco/leco_director.py +3 -3
- pymodaq/utils/leco/pymodaq_listener.py +4 -3
- pymodaq/utils/leco/utils.py +11 -9
- pymodaq/utils/logger.py +4 -76
- pymodaq/utils/managers/batchscan_manager.py +16 -19
- pymodaq/utils/managers/modules_manager.py +30 -17
- pymodaq/utils/managers/overshoot_manager.py +48 -6
- pymodaq/utils/managers/preset_manager.py +39 -59
- pymodaq/utils/managers/preset_manager_utils.py +28 -22
- pymodaq/utils/managers/remote_manager.py +12 -10
- pymodaq/utils/math_utils.py +4 -582
- pymodaq/utils/messenger.py +4 -64
- pymodaq/utils/parameter/__init__.py +6 -9
- pymodaq/utils/parameter/utils.py +4 -328
- pymodaq/utils/scanner/scan_config.py +1 -1
- pymodaq/utils/scanner/scan_factory.py +16 -12
- pymodaq/utils/{plotting → scanner}/scan_selector.py +19 -20
- pymodaq/utils/scanner/scanner.py +10 -8
- pymodaq/utils/scanner/scanners/_1d_scanners.py +8 -5
- pymodaq/utils/scanner/scanners/_2d_scanners.py +5 -5
- pymodaq/utils/scanner/scanners/sequential.py +8 -8
- pymodaq/utils/scanner/scanners/tabular.py +9 -9
- pymodaq/utils/scanner/utils.py +6 -4
- pymodaq/utils/svg/svg_viewer2D.py +3 -4
- pymodaq/utils/tcp_ip/mysocket.py +4 -110
- pymodaq/utils/tcp_ip/serializer.py +4 -801
- pymodaq/utils/tcp_ip/tcp_server_client.py +15 -13
- pymodaq-5.0.1.dist-info/METADATA +242 -0
- pymodaq-5.0.1.dist-info/RECORD +122 -0
- {pymodaq-4.4.7.dist-info → pymodaq-5.0.1.dist-info}/WHEEL +1 -1
- {pymodaq-4.4.7.dist-info → pymodaq-5.0.1.dist-info}/entry_points.txt +1 -0
- pymodaq/examples/custom_app.py +0 -258
- pymodaq/examples/custom_viewer.py +0 -112
- pymodaq/examples/parameter_ex.py +0 -138
- pymodaq/examples/preset_MockCamera.xml +0 -1
- pymodaq/post_treatment/daq_measurement/daq_measurement_GUI.py +0 -142
- pymodaq/post_treatment/daq_measurement/daq_measurement_GUI.ui +0 -232
- pymodaq/post_treatment/daq_measurement/daq_measurement_main.py +0 -391
- pymodaq/post_treatment/daq_measurement/process_from_QtDesigner_DAQ_Measurement_GUI.bat +0 -2
- pymodaq/post_treatment/process_to_scalar.py +0 -263
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/1d.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/2d.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/3d.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Add2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Add_Step.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Approve.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Approve_All.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Browse_Dir_Path.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Calculator.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/ChnGroup.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/ChnNum.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/ChnText.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/ChnTime.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/ChnWave.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Close3.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/CollapseAll.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/CollapseAll_32.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/ColorPicker.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Contract.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Create.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/DeleteLayer.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/EditOpen.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/EditRedo.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/EditUndo.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Ellipse.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/EllipseFilled.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Error.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/ErrorMessage.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Error_16.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Exit.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Expand.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/ExpandAll.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/ExpandAll_32.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/FFT.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/HLM.ico +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Help.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Help_32.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Histogram.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/LUT_LookUpTable.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/MagnifyingGlass.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/MagnifyingGlass_24.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Marker.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Math.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/MeasurementStudio_32.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Move.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/MoveDown.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/MoveUp.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Multiply.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/NewFile.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/NewLayer.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/New_File.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/New_Folder.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Open.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Open_1D.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Open_2D.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Open_File.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Open_File_32.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Open_sim.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Options.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Oscilloscope.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Oscilloscope_16.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Pass.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/RGB.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Rectangle.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/RectangleFilled.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Redo.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Refresh.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Refresh2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Refresh_32.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Region.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Rendezvous.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/SELECT.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Save.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/SaveAll.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/SaveAll_32.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/SaveAs.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/SaveAs_32.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Save_24.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Save_32.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Search.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/SelectPolygon.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Select_24.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Settings.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Snap&Save.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Snapshot.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Snapshot2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Snapshot2_16.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Snapshot2_32.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Spreadsheet.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Statistics.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Statistics2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Status.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Subtract.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Vision.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Volts.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Wait2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Zoom_1_1.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Zoom_in.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Zoom_out.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/Zoom_to_Selection.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/abort.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/advanced2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/algo.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/autoscale.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/b_icon.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/back.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/bg_icon.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/camera.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/camera_snap.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/cartesian.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/clear2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/clear_ROI.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/close2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/cluster2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/color.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/color2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/continuous.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/data.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/delay.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/download.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/download2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/error2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/ethernet.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/exit2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/fan.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/filter2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/g_icon.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/gear2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/go_to.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/go_to_1.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/go_to_2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/grab.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/graph.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/greenLight2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/greenLight2_32.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/green_light.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/grey_icon.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/greyscale.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/help1.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/help1_32.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/home2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/information2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/ini.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/input.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/integrator.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/joystick.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/light_green.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/light_green_16.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/light_red.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/light_red_16.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/light_yellow.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/light_yellow_16.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/limiter.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/load_ROI.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/meshPlot.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/meter.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/meter2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/meter_32.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/move_contour.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/move_straight_line.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/movie.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/multi_point.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/multiplexer.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/new.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/openArrow.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/openTree.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/oscilloscope2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/oscilloscope3.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/overlay.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/pass2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/pass2_16.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/pass_32.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/pause.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/permute.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/phase.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/play.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/polar.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/pole_zero.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/powerMeter.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/powerSwitch.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/powerSwitch_16.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/print2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/print2_32.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/properties.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/r_icon.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/radiocontrolbutton.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/random.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/read2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/red_light.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/remove.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/reset.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/rgb_icon.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/robot.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/rotation2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/run2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/run_all.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/saturation.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/saveTree.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/save_ROI.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/scale_horizontally.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/scale_vertically.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/search2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/select2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/select_all.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/select_all2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/select_none.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/sequence.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/sequence2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/snap.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/sort_ascend.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/spectrumAnalyzer.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/start.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/status_cancelled.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/stop.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/stop2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/stop3.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/stop_all.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/sum.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/surfacePlot.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/target.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/tree.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/updateTree.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/utility2.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/utility_small.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/vector.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/verify.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/video.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/wait.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/waterfallPlot.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/watershed.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/yellow_light.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/zip_file.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/zoomAuto.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/Icon_Library/zoomReset.png +0 -0
- pymodaq/resources/QtDesigner_Ressources/QtDesigner_ressources.bat +0 -2
- pymodaq/resources/QtDesigner_Ressources/QtDesigner_ressources.qrc +0 -238
- pymodaq/resources/QtDesigner_Ressources/QtDesigner_ressources_rc.py +0 -127453
- pymodaq/resources/QtDesigner_Ressources/__init__.py +0 -0
- pymodaq/resources/QtDesigner_Ressources/credit.rst +0 -7
- pymodaq/resources/QtDesigner_Ressources/icons.svg +0 -142
- pymodaq/resources/VERSION +0 -2
- pymodaq/resources/config_template.toml +0 -96
- pymodaq/resources/triangulation_data.npy +0 -0
- pymodaq/utils/abstract/__init__.py +0 -48
- pymodaq/utils/db/__init__.py +0 -0
- pymodaq/utils/db/db_logger/__init__.py +0 -0
- pymodaq/utils/factory.py +0 -82
- pymodaq/utils/gui_utils/custom_app.py +0 -133
- pymodaq/utils/gui_utils/dock.py +0 -107
- pymodaq/utils/gui_utils/file_io.py +0 -94
- pymodaq/utils/gui_utils/layout.py +0 -34
- pymodaq/utils/gui_utils/list_picker.py +0 -38
- pymodaq/utils/gui_utils/widgets/__init__.py +0 -5
- pymodaq/utils/gui_utils/widgets/label.py +0 -24
- pymodaq/utils/gui_utils/widgets/push.py +0 -149
- pymodaq/utils/gui_utils/widgets/qled.py +0 -62
- pymodaq/utils/gui_utils/widgets/spinbox.py +0 -24
- pymodaq/utils/gui_utils/widgets/table.py +0 -263
- pymodaq/utils/gui_utils/widgets/tree_layout.py +0 -188
- pymodaq/utils/gui_utils/widgets/tree_toml.py +0 -110
- pymodaq/utils/h5modules/backends.py +0 -1022
- pymodaq/utils/h5modules/browsing.py +0 -627
- pymodaq/utils/h5modules/data_saving.py +0 -1107
- pymodaq/utils/h5modules/exporter.py +0 -119
- pymodaq/utils/h5modules/exporters/__init__.py +0 -0
- pymodaq/utils/h5modules/exporters/base.py +0 -111
- pymodaq/utils/h5modules/exporters/flimj.py +0 -63
- pymodaq/utils/h5modules/exporters/hyperspy.py +0 -143
- pymodaq/utils/h5modules/saving.py +0 -866
- pymodaq/utils/h5modules/utils.py +0 -115
- pymodaq/utils/managers/action_manager.py +0 -489
- pymodaq/utils/managers/parameter_manager.py +0 -279
- pymodaq/utils/managers/roi_manager.py +0 -740
- pymodaq/utils/parameter/ioxml.py +0 -545
- pymodaq/utils/parameter/pymodaq_ptypes/__init__.py +0 -38
- pymodaq/utils/parameter/pymodaq_ptypes/bool.py +0 -31
- pymodaq/utils/parameter/pymodaq_ptypes/date.py +0 -126
- pymodaq/utils/parameter/pymodaq_ptypes/filedir.py +0 -143
- pymodaq/utils/parameter/pymodaq_ptypes/itemselect.py +0 -265
- pymodaq/utils/parameter/pymodaq_ptypes/led.py +0 -44
- pymodaq/utils/parameter/pymodaq_ptypes/list.py +0 -150
- pymodaq/utils/parameter/pymodaq_ptypes/numeric.py +0 -18
- pymodaq/utils/parameter/pymodaq_ptypes/pixmap.py +0 -175
- pymodaq/utils/parameter/pymodaq_ptypes/slide.py +0 -166
- pymodaq/utils/parameter/pymodaq_ptypes/table.py +0 -135
- pymodaq/utils/parameter/pymodaq_ptypes/tableview.py +0 -149
- pymodaq/utils/parameter/pymodaq_ptypes/text.py +0 -142
- pymodaq/utils/plotting/__init__.py +0 -0
- pymodaq/utils/plotting/data_viewers/__init__.py +0 -10
- pymodaq/utils/plotting/data_viewers/base.py +0 -286
- pymodaq/utils/plotting/data_viewers/viewer.py +0 -275
- pymodaq/utils/plotting/data_viewers/viewer0D.py +0 -298
- pymodaq/utils/plotting/data_viewers/viewer1D.py +0 -826
- pymodaq/utils/plotting/data_viewers/viewer1Dbasic.py +0 -231
- pymodaq/utils/plotting/data_viewers/viewer2D.py +0 -1118
- pymodaq/utils/plotting/data_viewers/viewer2D_basic.py +0 -146
- pymodaq/utils/plotting/data_viewers/viewerND.py +0 -800
- pymodaq/utils/plotting/gant_chart.py +0 -123
- pymodaq/utils/plotting/image_viewer.py +0 -97
- pymodaq/utils/plotting/items/__init__.py +0 -0
- pymodaq/utils/plotting/items/axis_scaled.py +0 -93
- pymodaq/utils/plotting/items/crosshair.py +0 -94
- pymodaq/utils/plotting/items/image.py +0 -388
- pymodaq/utils/plotting/navigator.py +0 -353
- pymodaq/utils/plotting/plotter/plotter.py +0 -94
- pymodaq/utils/plotting/plotter/plotters/__init__.py +0 -0
- pymodaq/utils/plotting/plotter/plotters/matplotlib_plotters.py +0 -134
- pymodaq/utils/plotting/plotter/plotters/qt_plotters.py +0 -78
- pymodaq/utils/plotting/utils/__init__.py +0 -0
- pymodaq/utils/plotting/utils/axes_viewer.py +0 -88
- pymodaq/utils/plotting/utils/filter.py +0 -585
- pymodaq/utils/plotting/utils/lineout.py +0 -226
- pymodaq/utils/plotting/utils/plot_utils.py +0 -579
- pymodaq/utils/plotting/utils/signalND.py +0 -1347
- pymodaq/utils/plotting/widgets.py +0 -76
- pymodaq/utils/qvariant.py +0 -12
- pymodaq/utils/slicing.py +0 -63
- pymodaq/utils/units.py +0 -216
- pymodaq-4.4.7.dist-info/METADATA +0 -163
- pymodaq-4.4.7.dist-info/RECORD +0 -446
- /pymodaq/{post_treatment/daq_analysis → daq_utils}/__init__.py +0 -0
- /pymodaq/{utils/abstract/logger.py → extensions/daq_logger/abstract.py} +0 -0
- /pymodaq/{post_treatment/daq_measurement → extensions/daq_logger/db}/__init__.py +0 -0
- {pymodaq-4.4.7.dist-info → pymodaq-5.0.1.dist-info}/licenses/LICENSE +0 -0
|
@@ -11,17 +11,13 @@ from qtpy.QtCore import Slot, QDate, QThread, QTimer
|
|
|
11
11
|
|
|
12
12
|
from pymodaq.utils import data as data_mod
|
|
13
13
|
from pymodaq.utils.logger import set_logger, get_module_name
|
|
14
|
-
from
|
|
15
|
-
from
|
|
16
|
-
from
|
|
17
|
-
from
|
|
14
|
+
from pymodaq_gui.utils.custom_app import CustomApp
|
|
15
|
+
from pymodaq_gui.utils.dock import DockArea, Dock
|
|
16
|
+
from pymodaq_data.data import DataRaw, Axis
|
|
17
|
+
from pymodaq_utils.config import Config
|
|
18
18
|
|
|
19
|
-
from
|
|
20
|
-
from pymodaq.utils import daq_utils as utils
|
|
19
|
+
from pymodaq_gui.plotting.data_viewers.viewer1D import Viewer1D
|
|
21
20
|
|
|
22
|
-
from pymodaq.utils.parameter import ioxml
|
|
23
|
-
from pymodaq.utils.plotting.data_viewers.viewer1D import Viewer1D
|
|
24
|
-
from pymodaq.utils.h5modules import H5Browser, H5Saver
|
|
25
21
|
|
|
26
22
|
config = Config()
|
|
27
23
|
logger = set_logger(get_module_name(__file__))
|
|
@@ -113,8 +109,14 @@ class FunctionPlotter(CustomApp):
|
|
|
113
109
|
|
|
114
110
|
function_vals = eval(f'np.{function_str}')
|
|
115
111
|
|
|
116
|
-
self.viewer.show_data(
|
|
117
|
-
|
|
112
|
+
self.viewer.show_data(DataRaw(name=function_str,
|
|
113
|
+
data=[function_vals],
|
|
114
|
+
labels=[function_str],
|
|
115
|
+
axes=[
|
|
116
|
+
data_mod.Axis(
|
|
117
|
+
data=x, label='An axis', units='arb. units')],
|
|
118
|
+
)
|
|
119
|
+
)
|
|
118
120
|
|
|
119
121
|
def value_changed(self, param):
|
|
120
122
|
if param.name() == 'add_function':
|
|
@@ -141,7 +143,6 @@ class FunctionPlotter(CustomApp):
|
|
|
141
143
|
self.timer.stop()
|
|
142
144
|
|
|
143
145
|
|
|
144
|
-
|
|
145
146
|
def main():
|
|
146
147
|
import sys
|
|
147
148
|
app = QtWidgets.QApplication(sys.argv)
|
pymodaq/examples/tcp_client.py
CHANGED
|
@@ -15,7 +15,7 @@ You should see the TCP server printing the sinus in its 0D data viewer
|
|
|
15
15
|
import numpy as np
|
|
16
16
|
|
|
17
17
|
from pymodaq.utils.tcp_ip.tcp_server_client import TCPClientTemplate
|
|
18
|
-
from
|
|
18
|
+
from pymodaq_data.data import DataToExport, DataRaw
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
class TCPClient(TCPClientTemplate):
|
pymodaq/extensions/__init__.py
CHANGED
|
@@ -9,7 +9,7 @@ from .pid.utils import get_models
|
|
|
9
9
|
|
|
10
10
|
from .console import QtConsole
|
|
11
11
|
from .daq_scan import DAQScan
|
|
12
|
-
from .daq_logger import DAQ_Logger
|
|
12
|
+
from .daq_logger.daq_logger import DAQ_Logger
|
|
13
13
|
from .pid.pid_controller import DAQ_PID
|
|
14
14
|
from .h5browser import H5Browser
|
|
15
15
|
|
|
@@ -6,33 +6,49 @@ from qtpy import QtWidgets, QtCore
|
|
|
6
6
|
import time
|
|
7
7
|
import numpy as np
|
|
8
8
|
|
|
9
|
-
|
|
10
9
|
from pymodaq.utils.data import DataToExport, DataToActuators, DataCalculated, DataActuator
|
|
11
|
-
from pymodaq.utils.
|
|
12
|
-
from
|
|
10
|
+
from pymodaq.utils.managers.modules_manager import ModulesManager
|
|
11
|
+
from pymodaq_utils import utils
|
|
12
|
+
from pymodaq_utils import config as config_mod
|
|
13
|
+
from pymodaq_utils.enums import BaseEnum
|
|
14
|
+
|
|
15
|
+
from pymodaq_gui.config import ConfigSaverLoader
|
|
16
|
+
from pymodaq_utils.logger import set_logger, get_module_name
|
|
17
|
+
|
|
18
|
+
from pymodaq_gui.plotting.data_viewers.viewer0D import Viewer0D
|
|
19
|
+
from pymodaq_gui.plotting.data_viewers.viewer import ViewerDispatcher, ViewersEnum
|
|
20
|
+
from pymodaq_gui.utils import QLED
|
|
21
|
+
from pymodaq_gui.utils.utils import mkQApp
|
|
22
|
+
from pymodaq_gui import utils as gutils
|
|
23
|
+
from pymodaq_gui.parameter import utils as putils
|
|
24
|
+
from pymodaq_gui.h5modules.saving import H5Saver
|
|
25
|
+
|
|
26
|
+
from pymodaq_data.h5modules.data_saving import DataEnlargeableSaver
|
|
27
|
+
|
|
28
|
+
|
|
13
29
|
from pymodaq.extensions.bayesian.utils import (get_bayesian_models, BayesianModelGeneric,
|
|
14
30
|
BayesianAlgorithm, UtilityKind,
|
|
15
31
|
UtilityParameters, StopType, StoppingParameters)
|
|
16
|
-
from pymodaq.utils.gui_utils import QLED
|
|
17
|
-
from pymodaq.utils.managers.modules_manager import ModulesManager
|
|
18
|
-
from pymodaq.utils import gui_utils as gutils
|
|
19
|
-
from pymodaq.utils import daq_utils as utils
|
|
20
|
-
from pymodaq.utils.parameter import utils as putils
|
|
21
|
-
from pymodaq.utils.h5modules.saving import H5Saver
|
|
22
|
-
from pymodaq.utils.h5modules.data_saving import DataEnlargeableSaver
|
|
23
32
|
from pymodaq.post_treatment.load_and_plot import LoaderPlotter
|
|
24
33
|
from pymodaq.extensions.bayesian.utils import BayesianConfig
|
|
25
|
-
from pymodaq.utils import
|
|
26
|
-
from pymodaq.utils.logger import set_logger, get_module_name
|
|
27
|
-
|
|
34
|
+
from pymodaq.extensions.utils import CustomExt
|
|
28
35
|
|
|
29
36
|
EXTENSION_NAME = 'BayesianOptimisation'
|
|
30
37
|
CLASS_NAME = 'BayesianOptimisation'
|
|
31
38
|
|
|
32
39
|
logger = set_logger(get_module_name(__file__))
|
|
40
|
+
config = config_mod.Config()
|
|
33
41
|
|
|
34
42
|
|
|
35
|
-
class
|
|
43
|
+
class DataNames(BaseEnum):
|
|
44
|
+
Fitness = 0
|
|
45
|
+
Individual = 1
|
|
46
|
+
ProbedData = 2
|
|
47
|
+
Actuators = 3
|
|
48
|
+
Kappa = 4
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
class BayesianOptimisation(CustomExt):
|
|
36
52
|
""" PyMoDAQ extension of the DashBoard to perform the optimization of a target signal
|
|
37
53
|
taken form the detectors as a function of one or more parameters controlled by the actuators.
|
|
38
54
|
"""
|
|
@@ -109,7 +125,7 @@ class BayesianOptimisation(gutils.CustomApp):
|
|
|
109
125
|
self.setup_ui()
|
|
110
126
|
|
|
111
127
|
self.bayesian_config = BayesianConfig()
|
|
112
|
-
self.mainsettings_saver_loader =
|
|
128
|
+
self.mainsettings_saver_loader = ConfigSaverLoader(
|
|
113
129
|
self.settings.child('main_settings'), self.bayesian_config)
|
|
114
130
|
|
|
115
131
|
self.h5temp: H5Saver = None
|
|
@@ -173,7 +189,7 @@ class BayesianOptimisation(gutils.CustomApp):
|
|
|
173
189
|
params = getattr(model_class, 'params')
|
|
174
190
|
self.settings.child('models', 'model_params').addChildren(params)
|
|
175
191
|
|
|
176
|
-
def setup_menu(self):
|
|
192
|
+
def setup_menu(self, menubar: QtWidgets.QMenuBar = None):
|
|
177
193
|
'''
|
|
178
194
|
to be subclassed
|
|
179
195
|
create menu for actions contained into the self.actions_manager, for instance:
|
|
@@ -447,20 +463,20 @@ class BayesianOptimisation(gutils.CustomApp):
|
|
|
447
463
|
def process_output(self, dte: DataToExport):
|
|
448
464
|
|
|
449
465
|
self.enl_index += 1
|
|
450
|
-
dwa_kappa = dte.remove(dte.get_data_from_name(
|
|
466
|
+
dwa_kappa = dte.remove(dte.get_data_from_name(DataNames.Kappa.name))
|
|
451
467
|
self.settings.child('main_settings', 'utility', 'kappa_actual').setValue(
|
|
452
468
|
float(dwa_kappa[0][0])
|
|
453
469
|
)
|
|
454
470
|
|
|
455
|
-
dwa_data = dte.remove(dte.get_data_from_name(
|
|
456
|
-
dwa_actuators: DataActuator = dte.remove(dte.get_data_from_name(
|
|
471
|
+
dwa_data = dte.remove(dte.get_data_from_name(DataNames.ProbedData.name))
|
|
472
|
+
dwa_actuators: DataActuator = dte.remove(dte.get_data_from_name(DataNames.Actuators.name))
|
|
457
473
|
self.viewer_observable.show_data(dte)
|
|
458
474
|
|
|
459
475
|
# dwa_observations = self.algorithm.get_dwa_obervations(
|
|
460
476
|
# self.modules_manager.selected_actuators_name)
|
|
461
477
|
self.model_class.update_plots()
|
|
462
478
|
|
|
463
|
-
best_individual = dte.get_data_from_name(
|
|
479
|
+
best_individual = dte.get_data_from_name(DataNames.Individual.name)
|
|
464
480
|
best_indiv_as_list = [float(best_individual[ind][0]) for ind in range(len(best_individual))]
|
|
465
481
|
|
|
466
482
|
|
|
@@ -579,7 +595,7 @@ class OptimisationRunner(QtCore.QObject):
|
|
|
579
595
|
polling=sync_acts)
|
|
580
596
|
|
|
581
597
|
# Do the evaluation (measurements)
|
|
582
|
-
self.det_done_datas = self.modules_manager.
|
|
598
|
+
self.det_done_datas = self.modules_manager.grab_data()
|
|
583
599
|
self.input_from_dets = self.model_class.convert_input(self.det_done_datas)
|
|
584
600
|
|
|
585
601
|
# Run the algo internal mechanic
|
|
@@ -588,17 +604,17 @@ class OptimisationRunner(QtCore.QObject):
|
|
|
588
604
|
dte = DataToExport('algo',
|
|
589
605
|
data=[self.individual_as_data(
|
|
590
606
|
np.array([self.optimisation_algorithm.best_fitness]),
|
|
591
|
-
|
|
607
|
+
DataNames.Fitness.name),
|
|
592
608
|
self.individual_as_data(
|
|
593
609
|
self.optimisation_algorithm.best_individual,
|
|
594
|
-
|
|
595
|
-
DataCalculated(
|
|
610
|
+
DataNames.Individual.name),
|
|
611
|
+
DataCalculated(DataNames.ProbedData.name,
|
|
596
612
|
data=[np.array([self.input_from_dets])],
|
|
597
613
|
),
|
|
598
|
-
self.output_to_actuators.merge_as_dwa(
|
|
599
|
-
|
|
614
|
+
self.output_to_actuators.merge_as_dwa(
|
|
615
|
+
'Data0D', DataNames.Actuators.name),
|
|
600
616
|
DataCalculated(
|
|
601
|
-
|
|
617
|
+
DataNames.Kappa.name,
|
|
602
618
|
data=[
|
|
603
619
|
np.array([self.optimisation_algorithm.kappa])])
|
|
604
620
|
])
|
|
@@ -635,10 +651,7 @@ def main(init_qt=True):
|
|
|
635
651
|
from pymodaq.utils.daq_utils import get_set_preset_path
|
|
636
652
|
|
|
637
653
|
if init_qt: # used for the test suite
|
|
638
|
-
app =
|
|
639
|
-
|
|
640
|
-
import qdarkstyle
|
|
641
|
-
app.setStyleSheet(qdarkstyle.load_stylesheet())
|
|
654
|
+
app = mkQApp("PyMoDAQ Dashboard")
|
|
642
655
|
|
|
643
656
|
from pymodaq.dashboard import DashBoard
|
|
644
657
|
|
|
@@ -646,7 +659,6 @@ def main(init_qt=True):
|
|
|
646
659
|
area = gutils.dock.DockArea()
|
|
647
660
|
win.setCentralWidget(area)
|
|
648
661
|
win.resize(1000, 500)
|
|
649
|
-
win.setWindowTitle('PyMoDAQ Dashboard')
|
|
650
662
|
|
|
651
663
|
dashboard = DashBoard(area)
|
|
652
664
|
daq_scan = None
|
|
@@ -11,24 +11,24 @@ import importlib
|
|
|
11
11
|
import pkgutil
|
|
12
12
|
import inspect
|
|
13
13
|
import numpy as np
|
|
14
|
-
from qtpy import QtWidgets
|
|
15
|
-
import tempfile
|
|
16
14
|
from collections import namedtuple
|
|
17
15
|
|
|
18
16
|
from bayes_opt import BayesianOptimization
|
|
19
17
|
from bayes_opt import UtilityFunction
|
|
20
18
|
|
|
19
|
+
from pymodaq_utils.utils import find_dict_in_list_from_key_val, get_entrypoints
|
|
20
|
+
from pymodaq_utils.logger import set_logger, get_module_name
|
|
21
|
+
from pymodaq_utils.enums import BaseEnum
|
|
22
|
+
from pymodaq_utils.config import BaseConfig
|
|
21
23
|
|
|
22
|
-
from
|
|
23
|
-
from
|
|
24
|
+
from pymodaq_gui.parameter import Parameter
|
|
25
|
+
from pymodaq_gui.plotting.data_viewers.viewer import ViewersEnum
|
|
26
|
+
|
|
27
|
+
from pymodaq_data.data import (DataToExport, DataCalculated,
|
|
24
28
|
DataRaw, Axis)
|
|
29
|
+
|
|
30
|
+
from pymodaq.utils.data import DataActuator, DataToActuators
|
|
25
31
|
from pymodaq.utils.managers.modules_manager import ModulesManager
|
|
26
|
-
from pymodaq.utils.daq_utils import find_dict_in_list_from_key_val, get_entrypoints
|
|
27
|
-
from pymodaq.utils.logger import set_logger, get_module_name
|
|
28
|
-
from pymodaq.utils.plotting.data_viewers.viewer import ViewersEnum
|
|
29
|
-
from pymodaq.utils.enums import BaseEnum
|
|
30
|
-
from pymodaq.utils.parameter import Parameter
|
|
31
|
-
from pymodaq.utils.config import BaseConfig
|
|
32
32
|
|
|
33
33
|
|
|
34
34
|
if TYPE_CHECKING:
|
pymodaq/extensions/console.py
CHANGED
|
@@ -4,15 +4,17 @@ Created the 25/10/2022
|
|
|
4
4
|
|
|
5
5
|
@author: Sebastien Weber
|
|
6
6
|
"""
|
|
7
|
-
|
|
7
|
+
|
|
8
8
|
from qtconsole.rich_jupyter_widget import RichJupyterWidget
|
|
9
9
|
from qtconsole.inprocess import QtInProcessKernelManager
|
|
10
|
-
|
|
11
|
-
from
|
|
10
|
+
|
|
11
|
+
from pymodaq_utils import config as configmod
|
|
12
|
+
from pymodaq_utils.utils import get_version
|
|
12
13
|
|
|
13
14
|
|
|
14
15
|
config = configmod.Config()
|
|
15
|
-
|
|
16
|
+
|
|
17
|
+
BANNER = f'PyMoDAQ v{get_version("pymodaq")}\n' \
|
|
16
18
|
'Main objects available for interaction:\n'\
|
|
17
19
|
'* dashboard: Main Dashboard Object\n'\
|
|
18
20
|
'* mods: ModuleManager of the dashboard\'s Control Modules\n'\
|
|
@@ -54,8 +56,7 @@ class QtConsole(RichJupyterWidget):
|
|
|
54
56
|
|
|
55
57
|
|
|
56
58
|
def main():
|
|
57
|
-
from
|
|
58
|
-
|
|
59
|
+
from pymodaq_gui.utils.utils import mkQApp
|
|
59
60
|
|
|
60
61
|
app = mkQApp('Console')
|
|
61
62
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .daq_logger import main
|
|
@@ -11,47 +11,46 @@ from collections import OrderedDict
|
|
|
11
11
|
import datetime
|
|
12
12
|
from typing import TYPE_CHECKING, Union
|
|
13
13
|
|
|
14
|
-
from
|
|
15
|
-
from
|
|
16
|
-
from
|
|
17
|
-
from
|
|
18
|
-
|
|
19
|
-
import numpy as np
|
|
14
|
+
from pymodaq_utils.logger import set_logger, get_module_name
|
|
15
|
+
from pymodaq_gui.utils.dock import Dock, DockArea
|
|
16
|
+
from pymodaq_utils.config import Config
|
|
17
|
+
from pymodaq_gui.parameter import ioxml
|
|
18
|
+
|
|
20
19
|
from qtpy import QtWidgets
|
|
21
20
|
from qtpy.QtCore import QObject, Slot, QThread, Signal, Qt
|
|
22
|
-
from pymodaq.utils import data as data_mod
|
|
23
|
-
from pymodaq.utils.gui_utils.widgets import QLED
|
|
24
|
-
from pymodaq.utils.gui_utils.dock import DockArea
|
|
25
|
-
from pymodaq.utils import daq_utils as utils
|
|
26
|
-
from pymodaq.utils.h5modules.h5logging import H5Logger
|
|
27
|
-
from pymodaq.utils.managers.modules_manager import ModulesManager
|
|
28
|
-
from pymodaq.utils.data import DataToExport, DataActuator, DataWithAxes
|
|
29
21
|
|
|
22
|
+
from pymodaq_gui.utils.widgets import QLED
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
from pymodaq.extensions.daq_logger.h5logging import H5Logger
|
|
26
|
+
from pymodaq.utils.managers.modules_manager import ModulesManager
|
|
27
|
+
from pymodaq.utils.data import DataActuator, DataToExport
|
|
28
|
+
from pymodaq.extensions.utils import CustomExt
|
|
30
29
|
|
|
31
30
|
if TYPE_CHECKING:
|
|
32
31
|
from pymodaq.dashboard import DashBoard
|
|
33
32
|
|
|
34
33
|
|
|
35
|
-
|
|
36
34
|
config = Config()
|
|
37
35
|
logger = set_logger(get_module_name(__file__))
|
|
38
36
|
|
|
39
37
|
|
|
40
38
|
try:
|
|
41
39
|
import sqlalchemy
|
|
42
|
-
from pymodaq.
|
|
40
|
+
from pymodaq.extensions.daq_logger.db.db_logger import DataBaseLogger
|
|
43
41
|
is_sql = True
|
|
44
42
|
except Exception as e:
|
|
45
43
|
is_sql = False
|
|
46
|
-
logger.info('To enable logging to database install: sqalchemy and sqlalchemy_utils packages as
|
|
47
|
-
'backend for your specific database, for instance psycopg2 for
|
|
44
|
+
logger.info('To enable logging to database install: sqalchemy and sqlalchemy_utils packages as'
|
|
45
|
+
' well as the backend for your specific database, for instance psycopg2 for'
|
|
46
|
+
' PostGreSQL database')
|
|
48
47
|
|
|
49
48
|
LOG_TYPES = ['None', 'H5 File']
|
|
50
49
|
if is_sql:
|
|
51
50
|
LOG_TYPES.append('SQL DataBase')
|
|
52
51
|
|
|
53
52
|
|
|
54
|
-
class DAQ_Logger(
|
|
53
|
+
class DAQ_Logger(CustomExt):
|
|
55
54
|
"""
|
|
56
55
|
Main class initializing a DAQ_Logger module
|
|
57
56
|
"""
|
|
@@ -147,10 +146,10 @@ class DAQ_Logger(CustomApp):
|
|
|
147
146
|
|
|
148
147
|
self._actions['infos'].connect_to(self.dashboard.show_log)
|
|
149
148
|
|
|
150
|
-
def setup_menu(self):
|
|
149
|
+
def setup_menu(self, menubar: QtWidgets.QMenuBar = None):
|
|
151
150
|
"""
|
|
152
151
|
"""
|
|
153
|
-
file_menu =
|
|
152
|
+
file_menu = menubar.addMenu('File')
|
|
154
153
|
self.affect_to('infos', file_menu)
|
|
155
154
|
|
|
156
155
|
def value_changed(self, param):
|
|
@@ -204,17 +203,17 @@ class DAQ_Logger(CustomApp):
|
|
|
204
203
|
self.logger.settings.child('N_saved').setValue(0)
|
|
205
204
|
|
|
206
205
|
settings_str = b'<All_settings>'
|
|
207
|
-
settings_str +=
|
|
208
|
-
settings_str +=
|
|
206
|
+
settings_str += ioxml.parameter_to_xml_string(self.dashboard.settings)
|
|
207
|
+
settings_str += ioxml.parameter_to_xml_string(
|
|
209
208
|
self.dashboard.preset_manager.preset_params)
|
|
210
209
|
if self.dashboard.settings.child('loaded_files', 'overshoot_file').value() != '':
|
|
211
|
-
settings_str +=
|
|
210
|
+
settings_str += ioxml.parameter_to_xml_string(
|
|
212
211
|
self.dashboard.overshoot_manager.overshoot_params)
|
|
213
212
|
if self.dashboard.settings.child('loaded_files', 'roi_file').value() != '':
|
|
214
|
-
settings_str +=
|
|
213
|
+
settings_str += ioxml.parameter_to_xml_string(
|
|
215
214
|
self.dashboard.roi_saver.roi_presets)
|
|
216
|
-
settings_str +=
|
|
217
|
-
settings_str +=
|
|
215
|
+
settings_str += ioxml.parameter_to_xml_string(self.settings)
|
|
216
|
+
settings_str += ioxml.parameter_to_xml_string(self.logger.settings)
|
|
218
217
|
settings_str += b'</All_settings>'
|
|
219
218
|
|
|
220
219
|
if not self.logger.init_logger(settings_str):
|
|
@@ -241,12 +240,12 @@ class DAQ_Logger(CustomApp):
|
|
|
241
240
|
# create the detectors in the chosen logger
|
|
242
241
|
for mod in modules_log:
|
|
243
242
|
settings_str = b'<All_settings>'
|
|
244
|
-
settings_str +=
|
|
243
|
+
settings_str += ioxml.parameter_to_xml_string(mod.settings)
|
|
245
244
|
|
|
246
245
|
if mod.module_type == 'DAQ_Viewer':
|
|
247
246
|
for viewer in mod.ui.viewers:
|
|
248
247
|
if hasattr(viewer, 'roi_manager'):
|
|
249
|
-
settings_str +=
|
|
248
|
+
settings_str += ioxml.parameter_to_xml_string(
|
|
250
249
|
viewer.roi_manager.settings)
|
|
251
250
|
settings_str += b'</All_settings>'
|
|
252
251
|
if mod.module_type == 'DAQ_Viewer':
|
|
@@ -446,7 +445,7 @@ class DAQ_Logging(QObject):
|
|
|
446
445
|
logger.exception(str(e))
|
|
447
446
|
|
|
448
447
|
def format_actuators_data(self, data_act: DataActuator):
|
|
449
|
-
data =
|
|
448
|
+
data = DataToExport(name=data_act.name, data=[data_act])
|
|
450
449
|
self.do_save_continuous(data)
|
|
451
450
|
|
|
452
451
|
def connect_actuators(self, connect=True):
|
|
@@ -508,7 +507,7 @@ class DAQ_Logging(QObject):
|
|
|
508
507
|
|
|
509
508
|
|
|
510
509
|
def main():
|
|
511
|
-
from
|
|
510
|
+
from pymodaq_gui.utils.utils import mkQApp
|
|
512
511
|
from pymodaq.utils.gui_utils.loader_utils import load_dashboard_with_preset
|
|
513
512
|
|
|
514
513
|
app = mkQApp('DAQLogger')
|
|
@@ -520,5 +519,6 @@ def main():
|
|
|
520
519
|
|
|
521
520
|
return dashboard, extension, win
|
|
522
521
|
|
|
522
|
+
|
|
523
523
|
if __name__ == '__main__':
|
|
524
524
|
main()
|
|
@@ -1,26 +1,27 @@
|
|
|
1
|
+
from contextlib import contextmanager
|
|
1
2
|
import logging
|
|
2
3
|
import datetime
|
|
3
4
|
from typing import List
|
|
4
5
|
|
|
5
|
-
from pymodaq.utils.logger import set_logger, get_module_name, get_module_name
|
|
6
|
-
from pymodaq.utils.config import Config
|
|
7
|
-
from pymodaq.utils.data import DataToExport
|
|
8
|
-
from qtpy import QtCore
|
|
9
|
-
from contextlib import contextmanager
|
|
10
|
-
|
|
11
|
-
from pymodaq.utils.db.db_logger.db_logger_models import Base, Data0D, Data1D, Data2D, LogInfo,\
|
|
12
|
-
Configuration, ControlModule
|
|
13
|
-
from pymodaq.utils import daq_utils as utils
|
|
14
|
-
from pymodaq.utils.gui_utils.utils import dashboard_submodules_params
|
|
15
|
-
from pymodaq.utils.messenger import messagebox, deprecation_msg
|
|
16
|
-
from pymodaq.utils.abstract.logger import AbstractLogger
|
|
17
|
-
from pymodaq.utils.parameter import ParameterTree, Parameter
|
|
18
|
-
from pymodaq.utils.managers.parameter_manager import ParameterManager
|
|
19
|
-
|
|
20
6
|
from sqlalchemy import create_engine
|
|
21
7
|
from sqlalchemy.orm import sessionmaker
|
|
22
8
|
from sqlalchemy_utils import database_exists, create_database
|
|
23
9
|
|
|
10
|
+
from pymodaq_utils.logger import set_logger, get_module_name
|
|
11
|
+
from pymodaq_utils.config import Config
|
|
12
|
+
|
|
13
|
+
from pymodaq_gui.h5modules.saving import dashboard_submodules_params
|
|
14
|
+
from pymodaq_gui.messenger import messagebox
|
|
15
|
+
from pymodaq_gui.managers.parameter_manager import ParameterManager
|
|
16
|
+
|
|
17
|
+
from pymodaq_data.data import DataToExport
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
from .db_logger_models import (Base, Data0D, Data1D, Data2D, LogInfo,
|
|
21
|
+
Configuration, ControlModule)
|
|
22
|
+
from ..abstract import AbstractLogger
|
|
23
|
+
|
|
24
|
+
|
|
24
25
|
logger = set_logger(get_module_name(__file__))
|
|
25
26
|
config = Config()
|
|
26
27
|
|
|
@@ -3,6 +3,8 @@ from sqlalchemy.ext.declarative import declarative_base
|
|
|
3
3
|
from sqlalchemy.orm import sessionmaker, relationship
|
|
4
4
|
from sqlalchemy import Column, Integer, String, Float, ForeignKey
|
|
5
5
|
from sqlalchemy.dialects.postgresql import ARRAY as Array
|
|
6
|
+
|
|
7
|
+
|
|
6
8
|
Base = declarative_base()
|
|
7
9
|
|
|
8
10
|
|
|
@@ -8,15 +8,14 @@ Created the 15/11/2022
|
|
|
8
8
|
import logging
|
|
9
9
|
import numpy as np
|
|
10
10
|
|
|
11
|
-
from
|
|
12
|
-
from
|
|
13
|
-
from
|
|
14
|
-
from
|
|
11
|
+
from pymodaq_utils.logger import set_logger, get_module_name
|
|
12
|
+
from pymodaq_utils.config import Config
|
|
13
|
+
from pymodaq_gui.h5modules.saving import H5Saver
|
|
14
|
+
from pymodaq_data.data import DataToExport
|
|
15
15
|
|
|
16
|
-
from pymodaq.utils.
|
|
17
|
-
from pymodaq.utils import
|
|
18
|
-
from .
|
|
19
|
-
from pymodaq.utils.data import DataToExport
|
|
16
|
+
from pymodaq.utils.managers.modules_manager import ModulesManager
|
|
17
|
+
from pymodaq.utils.h5modules import module_saving
|
|
18
|
+
from .abstract import AbstractLogger
|
|
20
19
|
|
|
21
20
|
|
|
22
21
|
config = Config()
|
pymodaq/extensions/daq_scan.py
CHANGED
|
@@ -18,30 +18,29 @@ import numpy as np
|
|
|
18
18
|
from qtpy import QtWidgets, QtCore, QtGui
|
|
19
19
|
from qtpy.QtCore import QObject, Slot, QThread, Signal, QDateTime, QDate, QTime
|
|
20
20
|
|
|
21
|
-
from
|
|
22
|
-
from
|
|
23
|
-
from
|
|
24
|
-
|
|
25
|
-
from
|
|
26
|
-
from
|
|
27
|
-
|
|
28
|
-
from
|
|
29
|
-
from
|
|
30
|
-
from
|
|
31
|
-
from
|
|
32
|
-
from
|
|
33
|
-
from
|
|
21
|
+
from pymodaq_utils.logger import set_logger, get_module_name
|
|
22
|
+
from pymodaq_utils.config import Config
|
|
23
|
+
from pymodaq_utils import utils
|
|
24
|
+
|
|
25
|
+
from pymodaq_data import data as data_mod
|
|
26
|
+
from pymodaq_data.h5modules import data_saving
|
|
27
|
+
|
|
28
|
+
from pymodaq_gui.parameter import ioxml
|
|
29
|
+
from pymodaq_gui.plotting.data_viewers import ViewersEnum
|
|
30
|
+
from pymodaq_gui.managers.parameter_manager import ParameterManager, Parameter, ParameterTree
|
|
31
|
+
from pymodaq_gui.plotting.navigator import Navigator
|
|
32
|
+
from pymodaq_gui.messenger import messagebox
|
|
33
|
+
from pymodaq_gui import utils as gutils
|
|
34
|
+
from pymodaq_gui.h5modules.saving import H5Saver
|
|
35
|
+
|
|
36
|
+
from pymodaq.utils.scanner.scanner import Scanner
|
|
34
37
|
from pymodaq.utils.managers.batchscan_manager import BatchScanner
|
|
35
38
|
from pymodaq.utils.managers.modules_manager import ModulesManager
|
|
36
39
|
from pymodaq.post_treatment.load_and_plot import LoaderPlotter
|
|
37
|
-
from pymodaq.utils.messenger import messagebox
|
|
38
40
|
from pymodaq.extensions.daq_scan_ui import DAQScanUI
|
|
39
|
-
|
|
40
|
-
from pymodaq.utils import
|
|
41
|
-
from pymodaq.utils import
|
|
42
|
-
from pymodaq.utils.h5modules.saving import H5Saver
|
|
43
|
-
from pymodaq.utils.h5modules import module_saving, data_saving
|
|
44
|
-
from pymodaq.utils.data import DataToExport, DataActuator
|
|
41
|
+
from pymodaq.utils.h5modules import module_saving
|
|
42
|
+
from pymodaq.utils.scanner.scan_selector import ScanSelector, SelectorItem
|
|
43
|
+
from pymodaq.utils.data import DataActuator
|
|
45
44
|
|
|
46
45
|
|
|
47
46
|
if TYPE_CHECKING:
|
|
@@ -54,6 +53,11 @@ logger = set_logger(get_module_name(__file__))
|
|
|
54
53
|
SHOW_POPUPS = config('scan', 'show_popups')
|
|
55
54
|
|
|
56
55
|
|
|
56
|
+
class DAQ_ScanException(Exception):
|
|
57
|
+
"""Raised when an error occur within the DAQScan"""
|
|
58
|
+
pass
|
|
59
|
+
|
|
60
|
+
|
|
57
61
|
class ScanDataTemp:
|
|
58
62
|
"""Convenience class to hold temporary data to be plotted in the live plots"""
|
|
59
63
|
def __init__(self, scan_index: int, indexes: Tuple[int], data: data_mod.DataToExport):
|
|
@@ -589,7 +593,7 @@ class DAQScan(QObject, ParameterManager):
|
|
|
589
593
|
positions = [posx, posy]
|
|
590
594
|
positions = positions[:self.scanner.n_axes]
|
|
591
595
|
actuators = self.modules_manager.actuators
|
|
592
|
-
dte = DataToExport(name="move_at")
|
|
596
|
+
dte = data_mod.DataToExport(name="move_at")
|
|
593
597
|
for ind, pos in enumerate(positions):
|
|
594
598
|
dte.append(DataActuator(actuators[ind].title, data=float(pos)))
|
|
595
599
|
|
|
@@ -745,7 +749,8 @@ class DAQScan(QObject, ParameterManager):
|
|
|
745
749
|
|
|
746
750
|
def set_scan(self, scan=None) -> bool:
|
|
747
751
|
"""
|
|
748
|
-
Sets the current scan given the selected settings. Makes some checks,
|
|
752
|
+
Sets the current scan given the selected settings. Makes some checks,
|
|
753
|
+
increments the h5 file scans.
|
|
749
754
|
In case the dialog is cancelled, return False and aborts the scan
|
|
750
755
|
"""
|
|
751
756
|
try:
|
|
@@ -755,22 +760,25 @@ class DAQScan(QObject, ParameterManager):
|
|
|
755
760
|
|
|
756
761
|
is_oversteps = self.scanner.set_scan()
|
|
757
762
|
if is_oversteps:
|
|
758
|
-
messagebox(
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
+
messagebox(
|
|
764
|
+
text=f"An error occurred when establishing the scan steps. Actual settings "
|
|
765
|
+
f"gives approximately {int(self.scanner.n_steps)} steps."
|
|
766
|
+
f" Please check the steps number "
|
|
767
|
+
f"limit in the config file ({config['scan']['steps_limit']}) or modify"
|
|
768
|
+
f" your scan settings.")
|
|
763
769
|
|
|
764
770
|
if self.modules_manager.Nactuators != self.scanner.n_axes:
|
|
765
|
-
messagebox(
|
|
771
|
+
messagebox(
|
|
772
|
+
text="There are not enough or too much selected move modules for this scan")
|
|
766
773
|
return False
|
|
767
774
|
|
|
768
775
|
if self.scanner.scan_sub_type == 'Adaptive':
|
|
769
776
|
#todo include this in scanners objects for the adaptive scanners
|
|
770
777
|
if len(self.modules_manager.get_selected_probed_data('0D')) == 0:
|
|
771
|
-
messagebox(
|
|
772
|
-
|
|
773
|
-
|
|
778
|
+
messagebox(
|
|
779
|
+
text="In adaptive mode, you have to pick a 0D signal from which the "
|
|
780
|
+
"algorithm will determine the next positions to scan, see 'probe_data'"
|
|
781
|
+
" in the modules selector panel")
|
|
774
782
|
return False
|
|
775
783
|
|
|
776
784
|
self.ui.n_scan_steps = self.scanner.n_steps
|
|
@@ -778,11 +786,11 @@ class DAQScan(QObject, ParameterManager):
|
|
|
778
786
|
# check if the modules are initialized
|
|
779
787
|
for module in self.modules_manager.actuators:
|
|
780
788
|
if not module.initialized_state:
|
|
781
|
-
raise
|
|
789
|
+
raise DAQ_ScanException('module ' + module.title + " is not initialized")
|
|
782
790
|
|
|
783
791
|
for module in self.modules_manager.detectors:
|
|
784
792
|
if not module.initialized_state:
|
|
785
|
-
raise
|
|
793
|
+
raise DAQ_ScanException('module ' + module.title + " is not initialized")
|
|
786
794
|
|
|
787
795
|
self.ui.enable_start_stop(True)
|
|
788
796
|
return True
|
|
@@ -1166,7 +1174,7 @@ class DAQScanAcquisition(QObject):
|
|
|
1166
1174
|
|
|
1167
1175
|
|
|
1168
1176
|
def main():
|
|
1169
|
-
from
|
|
1177
|
+
from pymodaq_gui.utils.utils import mkQApp
|
|
1170
1178
|
from pymodaq.utils.gui_utils.loader_utils import load_dashboard_with_preset
|
|
1171
1179
|
|
|
1172
1180
|
app = mkQApp('DAQScan')
|