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
|
File without changes
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
Icon Credits
|
|
2
|
-
############
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
* target.png: "Target Flat Icon.svg de Wikimedia Commons par Videoplasty.com, CC-BY-SA 4.0"
|
|
6
|
-
https://fr.wikipedia.org/wiki/Fichier:Target_Flat_Icon.svg
|
|
7
|
-
* algo.png: <a href="https://www.flaticon.com/fr/icones-gratuites/algorithme" title="algorithme icônes">Algorithme icônes créées par phatplus - Flaticon</a>
|
|
@@ -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,96 +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
|
-
hdf5_backend = 'tables' # could be among ['tables', 'h5py', 'h5pyd'], mostly tested with tables
|
|
36
|
-
|
|
37
|
-
[user]
|
|
38
|
-
name = "User name" # default name used as author in the hdf5 saving files
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
[plotting]
|
|
42
|
-
backend = 'matplotlib' # either 'matplotlib' or 'qt' or any other custom backend
|
|
43
|
-
plot_colors = [[255, 255, 255], [255, 0, 0], [0, 255, 0], [0, 0, 255], [14, 207, 189], [207, 14, 166], [207, 204, 14]]
|
|
44
|
-
|
|
45
|
-
[network]
|
|
46
|
-
[network.logging]
|
|
47
|
-
[network.logging.user]
|
|
48
|
-
username = "pymodaq_user"
|
|
49
|
-
pwd = "pymodaq"
|
|
50
|
-
|
|
51
|
-
[network.logging.sql] #location of the postgresql database server and options where the DAQ_Logger will log data
|
|
52
|
-
ip = "10.47.3.22"
|
|
53
|
-
port = 5432
|
|
54
|
-
|
|
55
|
-
[network.tcp-server]
|
|
56
|
-
ip = "10.47.0.39"
|
|
57
|
-
port = 6341
|
|
58
|
-
|
|
59
|
-
[network.leco-server]
|
|
60
|
-
run_coordinator_at_startup = false
|
|
61
|
-
host = "localhost"
|
|
62
|
-
port = 12300 # pyleco default Coordinator port
|
|
63
|
-
|
|
64
|
-
[presets]
|
|
65
|
-
default_preset_for_scan = "preset_default"
|
|
66
|
-
default_preset_for_logger = "preset_default"
|
|
67
|
-
default_preset_for_pid = "beam_steering_mock"
|
|
68
|
-
|
|
69
|
-
[actuator]
|
|
70
|
-
epsilon_default = 1
|
|
71
|
-
polling_interval_ms = 100 # ms Careful when using TCP/IP connection as you can saturate the connection with too much polling
|
|
72
|
-
polling_timeout_s = 20 # s
|
|
73
|
-
refresh_timeout_ms = 500 # ms
|
|
74
|
-
timeout = 10000 # default duration in ms to wait for data to be acquirred
|
|
75
|
-
siprefix = true # tell if printing of current value use a SI prefix or not (µ, m, k, M...)
|
|
76
|
-
display_units = true # display units in the SpinBoxes
|
|
77
|
-
|
|
78
|
-
[viewer]
|
|
79
|
-
daq_type = 'DAQ0D' #either "DAQ0D", "DAQ1D", "DAQ2D", "DAQND"
|
|
80
|
-
viewer_in_thread = true
|
|
81
|
-
timeout = 10000 # default duration in ms to wait for data to be acquirred
|
|
82
|
-
allow_settings_edition = false
|
|
83
|
-
|
|
84
|
-
[scan]
|
|
85
|
-
scan_in_thread = true
|
|
86
|
-
show_popups = true
|
|
87
|
-
default = "Scan2D"
|
|
88
|
-
Naverage = 1 # minimum is 1
|
|
89
|
-
steps_limit = 1000 # the limit of the number of steps you can set in a given scan
|
|
90
|
-
sort1D = true
|
|
91
|
-
|
|
92
|
-
[scan.timeflow]
|
|
93
|
-
wait_time = 0
|
|
94
|
-
wait_time_between = 0
|
|
95
|
-
timeout = 10000 # in millisecond
|
|
96
|
-
|
|
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/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())
|