pymodaq 4.2.3__py3-none-any.whl → 5.0.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of pymodaq might be problematic. Click here for more details.
- pymodaq/__init__.py +30 -23
- pymodaq/control_modules/daq_move.py +27 -14
- pymodaq/control_modules/daq_move_ui.py +33 -16
- pymodaq/control_modules/daq_viewer.py +38 -28
- pymodaq/control_modules/daq_viewer_ui.py +6 -6
- pymodaq/control_modules/mocks.py +1 -1
- pymodaq/control_modules/move_utility_classes.py +19 -10
- pymodaq/control_modules/utils.py +18 -12
- pymodaq/control_modules/viewer_utility_classes.py +13 -4
- pymodaq/dashboard.py +166 -118
- pymodaq/examples/custom_app.py +13 -16
- pymodaq/examples/custom_viewer.py +7 -7
- pymodaq/examples/function_plotter.py +13 -12
- pymodaq/examples/parameter_ex.py +50 -25
- pymodaq/examples/tcp_client.py +1 -1
- pymodaq/extensions/__init__.py +1 -1
- pymodaq/extensions/bayesian/bayesian_optimisation.py +15 -12
- pymodaq/extensions/bayesian/utils.py +10 -10
- pymodaq/extensions/console.py +10 -13
- pymodaq/extensions/{daq_logger.py → daq_logger/daq_logger.py} +36 -56
- 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 +153 -247
- pymodaq/extensions/daq_scan_ui.py +11 -9
- pymodaq/extensions/h5browser.py +8 -8
- pymodaq/extensions/pid/__init__.py +6 -3
- pymodaq/extensions/pid/daq_move_PID.py +4 -2
- pymodaq/extensions/pid/pid_controller.py +15 -12
- pymodaq/extensions/pid/utils.py +10 -5
- pymodaq/extensions/utils.py +5 -3
- pymodaq/post_treatment/load_and_plot.py +10 -7
- pymodaq/resources/preset_default.xml +1 -1
- pymodaq/utils/array_manipulation.py +4 -384
- pymodaq/utils/calibration_camera.py +12 -9
- pymodaq/utils/chrono_timer.py +7 -5
- pymodaq/utils/config.py +3 -450
- pymodaq/utils/daq_utils.py +6 -664
- pymodaq/utils/data.py +9 -2774
- pymodaq/utils/exceptions.py +0 -4
- pymodaq/utils/gui_utils/__init__.py +8 -8
- pymodaq/utils/gui_utils/loader_utils.py +38 -0
- pymodaq/utils/gui_utils/utils.py +6 -138
- pymodaq/utils/h5modules/__init__.py +0 -4
- pymodaq/utils/h5modules/module_saving.py +15 -8
- pymodaq/utils/leco/__init__.py +2 -2
- pymodaq/utils/leco/daq_move_LECODirector.py +2 -2
- pymodaq/utils/leco/daq_xDviewer_LECODirector.py +2 -2
- pymodaq/utils/leco/director_utils.py +2 -2
- pymodaq/utils/leco/leco_director.py +3 -3
- pymodaq/utils/leco/pymodaq_listener.py +2 -2
- pymodaq/utils/leco/utils.py +1 -1
- pymodaq/utils/logger.py +4 -76
- pymodaq/utils/managers/batchscan_manager.py +16 -19
- pymodaq/utils/managers/modules_manager.py +10 -7
- pymodaq/utils/managers/overshoot_manager.py +3 -5
- pymodaq/utils/managers/preset_manager.py +37 -15
- pymodaq/utils/managers/preset_manager_utils.py +11 -9
- pymodaq/utils/managers/remote_manager.py +12 -10
- pymodaq/utils/math_utils.py +4 -572
- pymodaq/utils/parameter/__init__.py +4 -11
- pymodaq/utils/parameter/utils.py +4 -299
- 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/serializer.py +64 -16
- pymodaq/utils/tcp_ip/tcp_server_client.py +10 -8
- {pymodaq-4.2.3.dist-info → pymodaq-5.0.0.dist-info}/METADATA +5 -3
- pymodaq-5.0.0.dist-info/RECORD +123 -0
- {pymodaq-4.2.3.dist-info → pymodaq-5.0.0.dist-info}/WHEEL +1 -1
- 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/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/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/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/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 -234
- pymodaq/resources/QtDesigner_Ressources/QtDesigner_ressources_rc.py +0 -127150
- pymodaq/resources/QtDesigner_Ressources/icons.svg +0 -142
- pymodaq/resources/VERSION +0 -1
- pymodaq/resources/config_template.toml +0 -90
- 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/enums.py +0 -76
- 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 -93
- 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/lcd.py +0 -111
- 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 -102
- pymodaq/utils/h5modules/backends.py +0 -1022
- pymodaq/utils/h5modules/browsing.py +0 -625
- pymodaq/utils/h5modules/data_saving.py +0 -1101
- 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 -282
- pymodaq/utils/managers/roi_manager.py +0 -726
- pymodaq/utils/messenger.py +0 -66
- pymodaq/utils/parameter/ioxml.py +0 -542
- 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 -145
- 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 -274
- pymodaq/utils/plotting/data_viewers/viewer0D.py +0 -298
- pymodaq/utils/plotting/data_viewers/viewer1D.py +0 -820
- 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.2.3.dist-info/RECORD +0 -438
- /pymodaq/{post_treatment/daq_analysis → extensions/daq_logger}/__init__.py +0 -0
- /pymodaq/{utils/abstract/logger.py → extensions/daq_logger/abstract.py} +0 -0
- /pymodaq/{resources/QtDesigner_Ressources → extensions/daq_logger/db}/__init__.py +0 -0
- {pymodaq-4.2.3.dist-info → pymodaq-5.0.0.dist-info}/entry_points.txt +0 -0
- {pymodaq-4.2.3.dist-info → pymodaq-5.0.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
-
<svg
|
|
3
|
-
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
|
4
|
-
xmlns:cc="http://creativecommons.org/ns#"
|
|
5
|
-
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
|
6
|
-
xmlns:svg="http://www.w3.org/2000/svg"
|
|
7
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
8
|
-
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
9
|
-
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
10
|
-
sodipodi:docname="icons.svg"
|
|
11
|
-
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
|
12
|
-
id="svg8"
|
|
13
|
-
version="1.1"
|
|
14
|
-
viewBox="0 0 210 297"
|
|
15
|
-
height="297mm"
|
|
16
|
-
width="210mm">
|
|
17
|
-
<defs
|
|
18
|
-
id="defs2" />
|
|
19
|
-
<sodipodi:namedview
|
|
20
|
-
inkscape:window-maximized="1"
|
|
21
|
-
inkscape:window-y="-8"
|
|
22
|
-
inkscape:window-x="1912"
|
|
23
|
-
inkscape:window-height="1017"
|
|
24
|
-
inkscape:window-width="1920"
|
|
25
|
-
showgrid="false"
|
|
26
|
-
inkscape:document-rotation="0"
|
|
27
|
-
inkscape:current-layer="layer1"
|
|
28
|
-
inkscape:document-units="mm"
|
|
29
|
-
inkscape:cy="251.2671"
|
|
30
|
-
inkscape:cx="161.985"
|
|
31
|
-
inkscape:zoom="2.8"
|
|
32
|
-
inkscape:pageshadow="2"
|
|
33
|
-
inkscape:pageopacity="0.0"
|
|
34
|
-
borderopacity="1.0"
|
|
35
|
-
bordercolor="#666666"
|
|
36
|
-
pagecolor="#ffffff"
|
|
37
|
-
id="base" />
|
|
38
|
-
<metadata
|
|
39
|
-
id="metadata5">
|
|
40
|
-
<rdf:RDF>
|
|
41
|
-
<cc:Work
|
|
42
|
-
rdf:about="">
|
|
43
|
-
<dc:format>image/svg+xml</dc:format>
|
|
44
|
-
<dc:type
|
|
45
|
-
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
|
46
|
-
<dc:title></dc:title>
|
|
47
|
-
</cc:Work>
|
|
48
|
-
</rdf:RDF>
|
|
49
|
-
</metadata>
|
|
50
|
-
<g
|
|
51
|
-
id="layer1"
|
|
52
|
-
inkscape:groupmode="layer"
|
|
53
|
-
inkscape:label="Calque 1">
|
|
54
|
-
<rect
|
|
55
|
-
inkscape:export-ydpi="300"
|
|
56
|
-
inkscape:export-xdpi="300"
|
|
57
|
-
y="18.174328"
|
|
58
|
-
x="18.174328"
|
|
59
|
-
height="10.958051"
|
|
60
|
-
width="10.958051"
|
|
61
|
-
id="rect833"
|
|
62
|
-
style="fill:#ff1c00;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;paint-order:fill markers stroke;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
|
|
63
|
-
<rect
|
|
64
|
-
inkscape:export-ydpi="300"
|
|
65
|
-
inkscape:export-xdpi="300"
|
|
66
|
-
style="fill:#ff1c00;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
|
|
67
|
-
id="rect833-2"
|
|
68
|
-
width="10.958051"
|
|
69
|
-
height="10.958051"
|
|
70
|
-
x="22.851545"
|
|
71
|
-
y="20.446119" />
|
|
72
|
-
<rect
|
|
73
|
-
inkscape:export-ydpi="300"
|
|
74
|
-
inkscape:export-xdpi="300"
|
|
75
|
-
style="fill:#ff1c00;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
|
|
76
|
-
id="rect833-1"
|
|
77
|
-
width="10.958051"
|
|
78
|
-
height="10.958051"
|
|
79
|
-
x="28.464205"
|
|
80
|
-
y="22.317005" />
|
|
81
|
-
<path
|
|
82
|
-
inkscape:export-ydpi="300"
|
|
83
|
-
inkscape:export-xdpi="300"
|
|
84
|
-
inkscape:export-filename="C:\Users\weber\Labo\Programmes Python\PyMoDAQ_Git\pymodaq\src\pymodaq\resources\QtDesigner_Ressources\Icon_Library\run_all.png"
|
|
85
|
-
transform="matrix(1.3430998,0,0,1,-6.6389431,1.2737737e-6)"
|
|
86
|
-
inkscape:transform-center-x="-2.441257"
|
|
87
|
-
d="m 19.34992,58.681279 0,-12.592905 10.905775,6.296453 z"
|
|
88
|
-
inkscape:randomized="0"
|
|
89
|
-
inkscape:rounded="0"
|
|
90
|
-
inkscape:flatsided="true"
|
|
91
|
-
sodipodi:arg2="3.1415927"
|
|
92
|
-
sodipodi:arg1="2.0943951"
|
|
93
|
-
sodipodi:r2="3.6352587"
|
|
94
|
-
sodipodi:r1="7.2705169"
|
|
95
|
-
sodipodi:cy="52.384827"
|
|
96
|
-
sodipodi:cx="22.985178"
|
|
97
|
-
sodipodi:sides="3"
|
|
98
|
-
id="path856"
|
|
99
|
-
style="fill:#16ff00;fill-opacity:1;stroke:#000000;stroke-width:0.862871;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
|
|
100
|
-
sodipodi:type="star" />
|
|
101
|
-
<path
|
|
102
|
-
inkscape:export-ydpi="300"
|
|
103
|
-
inkscape:export-xdpi="300"
|
|
104
|
-
inkscape:export-filename="C:\Users\weber\Labo\Programmes Python\PyMoDAQ_Git\pymodaq\src\pymodaq\resources\QtDesigner_Ressources\Icon_Library\run_all.png"
|
|
105
|
-
sodipodi:type="star"
|
|
106
|
-
style="fill:#16ff00;fill-opacity:1;stroke:#000000;stroke-width:0.862871;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
|
|
107
|
-
id="path856-6"
|
|
108
|
-
sodipodi:sides="3"
|
|
109
|
-
sodipodi:cx="22.985178"
|
|
110
|
-
sodipodi:cy="52.384827"
|
|
111
|
-
sodipodi:r1="7.2705169"
|
|
112
|
-
sodipodi:r2="3.6352587"
|
|
113
|
-
sodipodi:arg1="2.0943951"
|
|
114
|
-
sodipodi:arg2="3.1415927"
|
|
115
|
-
inkscape:flatsided="true"
|
|
116
|
-
inkscape:rounded="0"
|
|
117
|
-
inkscape:randomized="0"
|
|
118
|
-
d="m 19.34992,58.681279 0,-12.592905 10.905775,6.296453 z"
|
|
119
|
-
inkscape:transform-center-x="-2.441257"
|
|
120
|
-
transform="matrix(1.3430998,0,0,1,-3.817297,2.8172591)" />
|
|
121
|
-
<path
|
|
122
|
-
inkscape:export-ydpi="300"
|
|
123
|
-
inkscape:export-xdpi="300"
|
|
124
|
-
inkscape:export-filename="C:\Users\weber\Labo\Programmes Python\PyMoDAQ_Git\pymodaq\src\pymodaq\resources\QtDesigner_Ressources\Icon_Library\run_all.png"
|
|
125
|
-
sodipodi:type="star"
|
|
126
|
-
style="fill:#16ff00;fill-opacity:1;stroke:#000000;stroke-width:0.862871;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:fill markers stroke"
|
|
127
|
-
id="path856-4"
|
|
128
|
-
sodipodi:sides="3"
|
|
129
|
-
sodipodi:cx="22.985178"
|
|
130
|
-
sodipodi:cy="52.384827"
|
|
131
|
-
sodipodi:r1="7.2705169"
|
|
132
|
-
sodipodi:r2="3.6352587"
|
|
133
|
-
sodipodi:arg1="2.0943951"
|
|
134
|
-
sodipodi:arg2="3.1415927"
|
|
135
|
-
inkscape:flatsided="true"
|
|
136
|
-
inkscape:rounded="0"
|
|
137
|
-
inkscape:randomized="0"
|
|
138
|
-
d="m 19.34992,58.681279 0,-12.592905 10.905775,6.296453 z"
|
|
139
|
-
inkscape:transform-center-x="-2.441257"
|
|
140
|
-
transform="matrix(1.3430998,0,0,1,-0.99565079,5.6345168)" />
|
|
141
|
-
</g>
|
|
142
|
-
</svg>
|
pymodaq/resources/VERSION
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
version = '4.2.3'
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
#this is the configuration file of PyMoDAQ
|
|
2
|
-
[style]
|
|
3
|
-
darkstyle = true
|
|
4
|
-
syntax_highlighting = 'github-dark'
|
|
5
|
-
language = "English"
|
|
6
|
-
country = "UnitedStates"
|
|
7
|
-
|
|
8
|
-
[qtbackend]
|
|
9
|
-
backends = [ "pyqt5", "pyqt6", "pyside2", "pyside6",]
|
|
10
|
-
backend = "pyqt5"
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
[data_saving]
|
|
14
|
-
[data_saving.h5file]
|
|
15
|
-
save_path = "C:\\Data" #base path where data are automatically saved
|
|
16
|
-
compression_level = 5 # for hdf5 files between 0(min) and 9 (max)
|
|
17
|
-
|
|
18
|
-
[data_saving.hsds] #hsds connection option (https://www.hdfgroup.org/solutions/highly-scalable-data-service-hsds/)
|
|
19
|
-
#to save data in pymodaq using hpyd backend towards distant server or cloud (mimicking hdf5 files)
|
|
20
|
-
root_url = "http://hsds.sebastienweber.fr"
|
|
21
|
-
username = "pymodaq_user"
|
|
22
|
-
pwd = "pymodaq"
|
|
23
|
-
|
|
24
|
-
[data_saving.data_type]
|
|
25
|
-
dynamic = 'float64' # choose from below. This will force the datatype to be saved to
|
|
26
|
-
dynamics = ['uint8', 'int8', 'uint16', 'int16', 'uint32', 'int32', 'uint64', 'int64', 'float64']
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
[general]
|
|
30
|
-
debug_level = "INFO" #either "DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"
|
|
31
|
-
debug_levels = ["DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL"]
|
|
32
|
-
check_version = true # automatically check version at startup (or not if False)
|
|
33
|
-
message_status_persistence = 1000 # ms
|
|
34
|
-
|
|
35
|
-
[user]
|
|
36
|
-
name = "User name" # default name used as author in the hdf5 saving files
|
|
37
|
-
|
|
38
|
-
[viewer]
|
|
39
|
-
daq_type = 'DAQ0D' #either "DAQ0D", "DAQ1D", "DAQ2D", "DAQND"
|
|
40
|
-
viewer_in_thread = true
|
|
41
|
-
timeout = 10000 # default duration in ms to wait for data to be acquirred
|
|
42
|
-
allow_settings_edition = false
|
|
43
|
-
|
|
44
|
-
[plotting]
|
|
45
|
-
backend = 'matplotlib' # either 'matplotlib' or 'qt' or any other custom backend
|
|
46
|
-
|
|
47
|
-
[network]
|
|
48
|
-
[network.logging]
|
|
49
|
-
[network.logging.user]
|
|
50
|
-
username = "pymodaq_user"
|
|
51
|
-
pwd = "pymodaq"
|
|
52
|
-
|
|
53
|
-
[network.logging.sql] #location of the postgresql database server and options where the DAQ_Logger will log data
|
|
54
|
-
ip = "10.47.3.22"
|
|
55
|
-
port = 5432
|
|
56
|
-
|
|
57
|
-
[network.tcp-server]
|
|
58
|
-
ip = "10.47.0.39"
|
|
59
|
-
port = 6341
|
|
60
|
-
|
|
61
|
-
[network.leco-server]
|
|
62
|
-
run_coordinator_at_startup = false
|
|
63
|
-
host = "localhost"
|
|
64
|
-
port = 12300 # pyleco default Coordinator port
|
|
65
|
-
|
|
66
|
-
[presets]
|
|
67
|
-
default_preset_for_scan = "preset_default"
|
|
68
|
-
default_preset_for_logger = "preset_default"
|
|
69
|
-
default_preset_for_pid = "beam_steering_mock"
|
|
70
|
-
|
|
71
|
-
[actuator]
|
|
72
|
-
epsilon_default = 1
|
|
73
|
-
polling_interval_ms = 100 # ms Careful when using TCP/IP connection as you can saturate the connection with too much polling
|
|
74
|
-
polling_timeout_s = 20 # s
|
|
75
|
-
refresh_timeout_ms = 500 # ms
|
|
76
|
-
timeout = 10000 # default duration in ms to wait for data to be acquirred
|
|
77
|
-
|
|
78
|
-
[scan]
|
|
79
|
-
scan_in_thread = true
|
|
80
|
-
show_popups = true
|
|
81
|
-
default = "Scan2D"
|
|
82
|
-
Naverage = 1 # minimum is 1
|
|
83
|
-
steps_limit = 1000 # the limit of the number of steps you can set in a given scan
|
|
84
|
-
sort1D = true
|
|
85
|
-
|
|
86
|
-
[scan.timeflow]
|
|
87
|
-
wait_time = 0
|
|
88
|
-
wait_time_between = 0
|
|
89
|
-
timeout = 10000 # in millisecond
|
|
90
|
-
|
|
Binary file
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
"""
|
|
3
|
-
Created the 21/11/2022
|
|
4
|
-
|
|
5
|
-
@author: Sebastien Weber
|
|
6
|
-
|
|
7
|
-
Introduce some nice ABCMeta class allowing that a particular attribute has been declared when instantiating
|
|
8
|
-
See https://stackoverflow.com/a/50381071/8090831
|
|
9
|
-
"""
|
|
10
|
-
|
|
11
|
-
from abc import ABCMeta as NativeABCMeta
|
|
12
|
-
from abc import abstractmethod
|
|
13
|
-
from typing import cast, Any, Callable, TypeVar
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
R = TypeVar('R')
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
class DummyAttribute:
|
|
20
|
-
pass
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
def abstract_attribute(obj: Callable[[Any], R] = None) -> R:
|
|
24
|
-
_obj = cast(Any, obj)
|
|
25
|
-
if obj is None:
|
|
26
|
-
_obj = DummyAttribute()
|
|
27
|
-
_obj.__is_abstract_attribute__ = True
|
|
28
|
-
return cast(R, _obj)
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
class ABCMeta(NativeABCMeta):
|
|
32
|
-
|
|
33
|
-
def __call__(cls, *args, **kwargs):
|
|
34
|
-
instance = NativeABCMeta.__call__(cls, *args, **kwargs)
|
|
35
|
-
abstract_attributes = {
|
|
36
|
-
name
|
|
37
|
-
for name in dir(instance)
|
|
38
|
-
if getattr(getattr(instance, name), '__is_abstract_attribute__', False)
|
|
39
|
-
}
|
|
40
|
-
if abstract_attributes:
|
|
41
|
-
raise NotImplementedError(
|
|
42
|
-
"Can't instantiate abstract class {} with"
|
|
43
|
-
" abstract attributes: {}".format(
|
|
44
|
-
cls.__name__,
|
|
45
|
-
', '.join(abstract_attributes)
|
|
46
|
-
)
|
|
47
|
-
)
|
|
48
|
-
return instance
|
pymodaq/utils/db/__init__.py
DELETED
|
File without changes
|
|
File without changes
|
pymodaq/utils/enums.py
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
from enum import Enum
|
|
2
|
-
from pymodaq.utils.math_utils import find_index
|
|
3
|
-
from pymodaq.utils.math_utils import my_moment
|
|
4
|
-
import numpy as np
|
|
5
|
-
from scipy.optimize import curve_fit
|
|
6
|
-
from typing import List, Union
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
class BaseEnum(Enum):
|
|
10
|
-
"""Enum to be used within pymodaq with some utility methods"""
|
|
11
|
-
|
|
12
|
-
@classmethod
|
|
13
|
-
def names(cls) -> List[str]:
|
|
14
|
-
"""Returns all the names of the enum"""
|
|
15
|
-
return list(cls.__members__.keys())
|
|
16
|
-
|
|
17
|
-
@classmethod
|
|
18
|
-
def values(cls) -> List[str]:
|
|
19
|
-
"""Returns all the names of the enum"""
|
|
20
|
-
return [cls[name].value for name in cls.names()]
|
|
21
|
-
|
|
22
|
-
@classmethod
|
|
23
|
-
def to_dict(cls):
|
|
24
|
-
""" Returns the enum in form of a dict with names os keys
|
|
25
|
-
|
|
26
|
-
New in 4.0.2
|
|
27
|
-
"""
|
|
28
|
-
return {name: cls[name].value for name in cls.names()}
|
|
29
|
-
|
|
30
|
-
@classmethod
|
|
31
|
-
def to_dict_value(cls):
|
|
32
|
-
""" Returns the enum in form of a dict with values os keys
|
|
33
|
-
|
|
34
|
-
New in 4.0.2
|
|
35
|
-
"""
|
|
36
|
-
return {cls[name].value: name for name in cls.names()}
|
|
37
|
-
|
|
38
|
-
def __eq__(self, other: Union[str, Enum]):
|
|
39
|
-
"""testing for equality using the enum name"""
|
|
40
|
-
if isinstance(other, str):
|
|
41
|
-
if other == self.name:
|
|
42
|
-
return True
|
|
43
|
-
return super().__eq__(other)
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
def enum_checker(enum: BaseEnum, item: Union[BaseEnum, str]):
|
|
47
|
-
"""Check if the item parameter is a valid enum or at least one valid string name of the enum
|
|
48
|
-
|
|
49
|
-
If a string, transforms it to a valid enum (case not important)
|
|
50
|
-
|
|
51
|
-
Parameters
|
|
52
|
-
----------
|
|
53
|
-
enum: BaseEnum class or one of its derivated class
|
|
54
|
-
|
|
55
|
-
item: str or BaseEnum instance
|
|
56
|
-
|
|
57
|
-
Returns
|
|
58
|
-
-------
|
|
59
|
-
BaseEnum class or one of its derivated class
|
|
60
|
-
"""
|
|
61
|
-
|
|
62
|
-
if not isinstance(item, enum):
|
|
63
|
-
if not isinstance(item, str):
|
|
64
|
-
raise ValueError(f'{item} is an invalid {enum}. Should be a {enum} enum or '
|
|
65
|
-
f'a string in {enum.names()}')
|
|
66
|
-
for ind, name in enumerate(enum.names()):
|
|
67
|
-
if item.lower() == name.lower():
|
|
68
|
-
item = enum[name]
|
|
69
|
-
break
|
|
70
|
-
else:
|
|
71
|
-
raise ValueError(f'{item} is an invalid {enum}. Should be a {enum} enum or '
|
|
72
|
-
f'a string in {enum.names()}')
|
|
73
|
-
return item
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
pymodaq/utils/factory.py
DELETED
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
# -*- coding: utf-8 -*-
|
|
2
|
-
"""
|
|
3
|
-
Created the 04/11/2022
|
|
4
|
-
|
|
5
|
-
@author: Sebastien Weber
|
|
6
|
-
"""
|
|
7
|
-
from typing import Callable, Union
|
|
8
|
-
from abc import ABCMeta, abstractmethod
|
|
9
|
-
|
|
10
|
-
from pymodaq.utils.logger import set_logger, get_module_name
|
|
11
|
-
|
|
12
|
-
logger = set_logger(get_module_name(__file__))
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
class BuilderBase(ABCMeta):
|
|
16
|
-
"""Abstract class defining an object/service builder with a callable interface accepting some arguments
|
|
17
|
-
|
|
18
|
-
See https://realpython.com/factory-method-python/ for some details
|
|
19
|
-
|
|
20
|
-
See Also
|
|
21
|
-
--------
|
|
22
|
-
pymodaq.post_treatment.process_1d_to_scalar
|
|
23
|
-
"""
|
|
24
|
-
@abstractmethod
|
|
25
|
-
def __call__(self, *args, **kwargs):
|
|
26
|
-
pass
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
class ObjectFactory(metaclass=ABCMeta):
|
|
30
|
-
"""Generic ObjectFactory with a decorator register to add object builders to the factory with a
|
|
31
|
-
unique key identifier
|
|
32
|
-
|
|
33
|
-
See https://realpython.com/factory-method-python/ for some details
|
|
34
|
-
|
|
35
|
-
Examples
|
|
36
|
-
--------
|
|
37
|
-
@ObjectFactory.register('custom')
|
|
38
|
-
def my_custom_builder():
|
|
39
|
-
pass
|
|
40
|
-
|
|
41
|
-
See Also
|
|
42
|
-
--------
|
|
43
|
-
pymodaq.post_treatment.process_1d_to_scalar.Data1DProcessorFactory
|
|
44
|
-
"""
|
|
45
|
-
_builders = {}
|
|
46
|
-
|
|
47
|
-
@classmethod
|
|
48
|
-
def register(cls, key: str) -> Callable:
|
|
49
|
-
def inner_wrapper(wrapped_class: Union[BuilderBase, Callable]) -> Callable:
|
|
50
|
-
if cls.__name__ not in cls._builders:
|
|
51
|
-
cls._builders[cls.__name__] = {}
|
|
52
|
-
if key not in cls._builders[cls.__name__]:
|
|
53
|
-
cls._builders[cls.__name__][key] = wrapped_class
|
|
54
|
-
else:
|
|
55
|
-
logger.warning(f'The {cls.__name__}/{key} builder is already registered. Replacing it')
|
|
56
|
-
return wrapped_class
|
|
57
|
-
return inner_wrapper
|
|
58
|
-
|
|
59
|
-
@property
|
|
60
|
-
def builders(self):
|
|
61
|
-
return self._builders
|
|
62
|
-
|
|
63
|
-
def keys_function(self, do_sort=True):
|
|
64
|
-
if do_sort:
|
|
65
|
-
return self.keys
|
|
66
|
-
else:
|
|
67
|
-
return list(self.builders[self.__class__.__name__].keys())
|
|
68
|
-
|
|
69
|
-
@property
|
|
70
|
-
def keys(self):
|
|
71
|
-
return sorted(list(self.builders[self.__class__.__name__].keys()))
|
|
72
|
-
|
|
73
|
-
@classmethod
|
|
74
|
-
def create(cls, key, **kwargs):
|
|
75
|
-
builder = cls._builders[cls.__name__].get(key)
|
|
76
|
-
if not builder:
|
|
77
|
-
raise ValueError(key)
|
|
78
|
-
return builder(**kwargs)
|
|
79
|
-
|
|
80
|
-
@classmethod
|
|
81
|
-
def get_class(cls, key):
|
|
82
|
-
return cls._builders[cls.__name__].get(key)
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
from qtpy.QtCore import QObject, QLocale
|
|
2
|
-
from pymodaq.utils.gui_utils.dock import DockArea
|
|
3
|
-
from pymodaq.utils.managers.action_manager import ActionManager
|
|
4
|
-
from pymodaq.utils.managers.parameter_manager import ParameterManager
|
|
5
|
-
from pyqtgraph.dockarea import DockArea
|
|
6
|
-
from qtpy import QtCore, QtWidgets
|
|
7
|
-
from typing import Union, TYPE_CHECKING
|
|
8
|
-
from pymodaq.utils.managers.modules_manager import ModulesManager
|
|
9
|
-
|
|
10
|
-
if TYPE_CHECKING:
|
|
11
|
-
from pymodaq.dashboard import DashBoard
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
class CustomApp(QObject, ActionManager, ParameterManager):
|
|
15
|
-
"""Base Class to ease the implementation of User Interfaces
|
|
16
|
-
|
|
17
|
-
Inherits the MixIns ActionManager and ParameterManager classes. You have to subclass some methods and make
|
|
18
|
-
concrete implementation of a given number of methods:
|
|
19
|
-
|
|
20
|
-
* setup_actions: mandatory, see :class:`pymodaq.utils.managers.action_manager.ActionManager`
|
|
21
|
-
* value_changed: non mandatory, see :class:`pymodaq.utils.managers.parameter_manager.ParameterManager`
|
|
22
|
-
* child_added: non mandatory, see :class:`pymodaq.utils.managers.parameter_manager.ParameterManager`
|
|
23
|
-
* param_deleted: non mandatory, see :class:`pymodaq.utils.managers.parameter_manager.ParameterManager`
|
|
24
|
-
* setup_docks: mandatory
|
|
25
|
-
* setup_menu: non mandatory
|
|
26
|
-
* connect_things: mandatory
|
|
27
|
-
|
|
28
|
-
Parameters
|
|
29
|
-
----------
|
|
30
|
-
parent: DockArea or QtWidget
|
|
31
|
-
dashboard: DashBoard, optional
|
|
32
|
-
|
|
33
|
-
See Also
|
|
34
|
-
--------
|
|
35
|
-
:class:`pymodaq.utils.managers.action_manager.ActionManager`,
|
|
36
|
-
:class:`pymodaq.utils.managers.parameter_manager.ParameterManager`,
|
|
37
|
-
:class:`pymodaq.utils.managers.modules_manager.ModulesManager`,
|
|
38
|
-
:class:`pymodaq.dashboard.DashBoard`
|
|
39
|
-
"""
|
|
40
|
-
|
|
41
|
-
log_signal = QtCore.Signal(str)
|
|
42
|
-
params = []
|
|
43
|
-
|
|
44
|
-
def __init__(self, parent: Union[DockArea, QtWidgets.QWidget], dashboard: 'DashBoard'=None):
|
|
45
|
-
QObject.__init__(self)
|
|
46
|
-
ActionManager.__init__(self)
|
|
47
|
-
ParameterManager.__init__(self)
|
|
48
|
-
QLocale.setDefault(QLocale(QLocale.English, QLocale.UnitedStates))
|
|
49
|
-
|
|
50
|
-
if not isinstance(parent, DockArea):
|
|
51
|
-
if not isinstance(parent, QtWidgets.QWidget):
|
|
52
|
-
raise Exception('no valid parent container, expected a DockArea or a least a QWidget')
|
|
53
|
-
|
|
54
|
-
self.parent = parent
|
|
55
|
-
if isinstance(parent, DockArea):
|
|
56
|
-
self.dockarea: DockArea = parent
|
|
57
|
-
self.mainwindow: QtWidgets.QMainWindow = parent.parent()
|
|
58
|
-
else:
|
|
59
|
-
self.dockarea: DockArea = None
|
|
60
|
-
self.mainwindow: QtWidgets.QMainWindow = None
|
|
61
|
-
self.dashboard = dashboard
|
|
62
|
-
|
|
63
|
-
self.docks = dict([])
|
|
64
|
-
self.statusbar = None
|
|
65
|
-
self._toolbar = QtWidgets.QToolBar()
|
|
66
|
-
|
|
67
|
-
if self.mainwindow is not None:
|
|
68
|
-
self.mainwindow.addToolBar(self._toolbar)
|
|
69
|
-
self.statusbar = self.mainwindow.statusBar()
|
|
70
|
-
|
|
71
|
-
self.set_toolbar(self._toolbar)
|
|
72
|
-
|
|
73
|
-
def setup_ui(self):
|
|
74
|
-
self.setup_docks()
|
|
75
|
-
|
|
76
|
-
self.setup_actions() # see ActionManager MixIn class
|
|
77
|
-
|
|
78
|
-
self.setup_menu()
|
|
79
|
-
|
|
80
|
-
self.connect_things()
|
|
81
|
-
|
|
82
|
-
def setup_docks(self):
|
|
83
|
-
"""Mandatory method to be subclassed to setup the docks layout
|
|
84
|
-
|
|
85
|
-
Examples
|
|
86
|
-
--------
|
|
87
|
-
>>>self.docks['ADock'] = gutils.Dock('ADock name')
|
|
88
|
-
>>>self.dockarea.addDock(self.docks['ADock'])
|
|
89
|
-
>>>self.docks['AnotherDock'] = gutils.Dock('AnotherDock name')
|
|
90
|
-
>>>self.dockarea.addDock(self.docks['AnotherDock'''], 'bottom', self.docks['ADock'])
|
|
91
|
-
|
|
92
|
-
See Also
|
|
93
|
-
--------
|
|
94
|
-
pyqtgraph.dockarea.Dock
|
|
95
|
-
"""
|
|
96
|
-
raise NotImplementedError
|
|
97
|
-
|
|
98
|
-
def setup_menu(self):
|
|
99
|
-
"""Non mandatory method to be subclassed in order to create a menubar
|
|
100
|
-
|
|
101
|
-
create menu for actions contained into the self._actions, for instance:
|
|
102
|
-
|
|
103
|
-
Examples
|
|
104
|
-
--------
|
|
105
|
-
>>>file_menu = self._menubar.addMenu('File')
|
|
106
|
-
>>>self.affect_to('load', file_menu)
|
|
107
|
-
>>>self.affect_to('save', file_menu)
|
|
108
|
-
|
|
109
|
-
>>>file_menu.addSeparator()
|
|
110
|
-
>>>self.affect_to('quit', file_menu)
|
|
111
|
-
|
|
112
|
-
See Also
|
|
113
|
-
--------
|
|
114
|
-
pymodaq.utils.managers.action_manager.ActionManager
|
|
115
|
-
"""
|
|
116
|
-
pass
|
|
117
|
-
|
|
118
|
-
def connect_things(self):
|
|
119
|
-
"""Connect actions and/or other widgets signal to methods"""
|
|
120
|
-
raise NotImplementedError
|
|
121
|
-
|
|
122
|
-
@property
|
|
123
|
-
def modules_manager(self) -> ModulesManager:
|
|
124
|
-
"""useful tool to interact with DAQ_Moves and DAQ_Viewers
|
|
125
|
-
|
|
126
|
-
Will be available if a DashBoard has been set
|
|
127
|
-
|
|
128
|
-
Returns
|
|
129
|
-
-------
|
|
130
|
-
ModulesManager
|
|
131
|
-
"""
|
|
132
|
-
if self.dashboard is not None:
|
|
133
|
-
return self.dashboard.modules_manager
|
pymodaq/utils/gui_utils/dock.py
DELETED
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import warnings
|
|
2
|
-
|
|
3
|
-
from qtpy.QtCore import Signal, QObject
|
|
4
|
-
from qtpy import QtGui, QtCore, QtWidgets
|
|
5
|
-
from pyqtgraph.dockarea import Dock, DockArea, DockLabel
|
|
6
|
-
from pyqtgraph.dockarea.DockArea import TempAreaWindow
|
|
7
|
-
from pyqtgraph.widgets.VerticalLabel import VerticalLabel
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
class Dock(Dock):
|
|
11
|
-
dock_focused = Signal(str)
|
|
12
|
-
def __init__(self, name, *args, fontSize='20px', **kwargs):
|
|
13
|
-
kwargs['fontSize'] = fontSize
|
|
14
|
-
super().__init__(name, *args, **kwargs)
|
|
15
|
-
|
|
16
|
-
def removeWidgets(self):
|
|
17
|
-
for widget in self.widgets:
|
|
18
|
-
self.layout.removeWidget(widget)
|
|
19
|
-
widget.close()
|
|
20
|
-
self.widgets = []
|
|
21
|
-
|
|
22
|
-
def setOrientation(self, o='auto', force=False):
|
|
23
|
-
"""
|
|
24
|
-
Sets the orientation of the title bar for this Dock.
|
|
25
|
-
Must be one of 'auto', 'horizontal', or 'vertical'.
|
|
26
|
-
By default ('auto'), the orientation is determined
|
|
27
|
-
based on the aspect ratio of the Dock.
|
|
28
|
-
"""
|
|
29
|
-
if self.container() is not None: # patch here for when Dock is closed and when the QApplication
|
|
30
|
-
# event loop is processed
|
|
31
|
-
if o == 'auto' and self.autoOrient:
|
|
32
|
-
if self.container().type() == 'tab':
|
|
33
|
-
o = 'horizontal'
|
|
34
|
-
elif self.width() > self.height() * 1.5:
|
|
35
|
-
o = 'vertical'
|
|
36
|
-
else:
|
|
37
|
-
o = 'horizontal'
|
|
38
|
-
if force or self.orientation != o:
|
|
39
|
-
self.orientation = o
|
|
40
|
-
self.label.setOrientation(o)
|
|
41
|
-
self.updateStyle()
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
class DockArea(DockArea, QObject):
|
|
45
|
-
"""
|
|
46
|
-
Custom Dockarea class subclassing from the standard DockArea class and QObject so it can emit a signal when docks
|
|
47
|
-
are moved around (one subclassed method: moveDock)
|
|
48
|
-
See Also
|
|
49
|
-
--------
|
|
50
|
-
pyqtgraph.dockarea
|
|
51
|
-
"""
|
|
52
|
-
dock_signal = Signal()
|
|
53
|
-
|
|
54
|
-
def __init__(self, parent=None, temporary=False, home=None):
|
|
55
|
-
super(DockArea, self).__init__(parent, temporary, home)
|
|
56
|
-
|
|
57
|
-
def moveDock(self, dock, position, neighbor):
|
|
58
|
-
"""
|
|
59
|
-
Move an existing Dock to a new location.
|
|
60
|
-
"""
|
|
61
|
-
# Moving to the edge of a tabbed dock causes a drop outside the tab box
|
|
62
|
-
if position in ['left', 'right', 'top',
|
|
63
|
-
'bottom'] and neighbor is not None and neighbor.container() is not None and neighbor.container().type() == 'tab':
|
|
64
|
-
neighbor = neighbor.container()
|
|
65
|
-
self.addDock(dock, position, neighbor)
|
|
66
|
-
self.dock_signal.emit()
|
|
67
|
-
|
|
68
|
-
def addTempArea(self):
|
|
69
|
-
if self.home is None:
|
|
70
|
-
area = DockArea(temporary=True, home=self)
|
|
71
|
-
self.tempAreas.append(area)
|
|
72
|
-
win = TempAreaWindow(area)
|
|
73
|
-
area.win = win
|
|
74
|
-
win.show()
|
|
75
|
-
else:
|
|
76
|
-
area = self.home.addTempArea()
|
|
77
|
-
# print "added temp area", area, area.window()
|
|
78
|
-
return area
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
if __name__ == '__main__':
|
|
82
|
-
import sys
|
|
83
|
-
from pymodaq.utils.parameter import ParameterTree
|
|
84
|
-
app = QtWidgets.QApplication(sys.argv)
|
|
85
|
-
import qdarkstyle
|
|
86
|
-
app.setStyleSheet(qdarkstyle.load_stylesheet(qdarkstyle.DarkPalette))
|
|
87
|
-
|
|
88
|
-
labelv = DockLabel('mysuperlabel', fontSize='25px')
|
|
89
|
-
docky = Dock('MysuperDockLogger', fontSize='30px')
|
|
90
|
-
dockx = Dock('MysuperDockLoggerx', fontSize='30px')
|
|
91
|
-
area = DockArea()
|
|
92
|
-
area.addDock(docky)
|
|
93
|
-
area.addDock(dockx)
|
|
94
|
-
dockx.addWidget(ParameterTree())
|
|
95
|
-
labelv.setAlignment(QtCore.Qt.AlignmentFlag.AlignTop | QtCore.Qt.AlignmentFlag.AlignHCenter)
|
|
96
|
-
f = labelv.font()
|
|
97
|
-
f.setPixelSize(25)
|
|
98
|
-
labelv.setFont(f)
|
|
99
|
-
docky.label.setFont(f)
|
|
100
|
-
labelv.show()
|
|
101
|
-
area.show()
|
|
102
|
-
QtWidgets.QApplication.processEvents()
|
|
103
|
-
print(f'labelv size hint: {labelv.sizeHint()}')
|
|
104
|
-
print(f'labelv size: {labelv.size()}')
|
|
105
|
-
print(f'labelv margins: {labelv.contentsMargins().top()}, {labelv.contentsMargins().bottom()}')
|
|
106
|
-
|
|
107
|
-
sys.exit(app.exec())
|