pymodaq 5.0.0__tar.gz → 5.0.2__tar.gz

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.

Files changed (140) hide show
  1. {pymodaq-5.0.0 → pymodaq-5.0.2}/.gitignore +1 -0
  2. pymodaq-5.0.2/PKG-INFO +242 -0
  3. pymodaq-5.0.2/README.rst +163 -0
  4. {pymodaq-5.0.0 → pymodaq-5.0.2}/pyproject.toml +34 -11
  5. pymodaq-5.0.2/src/pymodaq/__init__.py +86 -0
  6. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/control_modules/daq_move.py +129 -55
  7. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/control_modules/daq_move_ui.py +42 -11
  8. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/control_modules/daq_viewer.py +32 -13
  9. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/control_modules/move_utility_classes.py +346 -79
  10. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/control_modules/utils.py +26 -9
  11. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/control_modules/viewer_utility_classes.py +51 -14
  12. pymodaq-5.0.2/src/pymodaq/daq_utils/daq_utils.py +6 -0
  13. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/dashboard.py +532 -263
  14. pymodaq-5.0.2/src/pymodaq/examples/qt_less_standalone_module.py +128 -0
  15. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/extensions/bayesian/bayesian_optimisation.py +30 -21
  16. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/extensions/bayesian/utils.py +6 -3
  17. pymodaq-5.0.2/src/pymodaq/extensions/daq_logger/__init__.py +1 -0
  18. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/extensions/daq_logger/daq_logger.py +4 -5
  19. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/extensions/daq_scan.py +28 -8
  20. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/extensions/daq_scan_ui.py +7 -9
  21. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/extensions/pid/__init__.py +0 -1
  22. pymodaq-5.0.2/src/pymodaq/extensions/pid/actuator_controller.py +13 -0
  23. pymodaq-5.0.2/src/pymodaq/extensions/pid/daq_move_PID.py +77 -0
  24. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/extensions/pid/pid_controller.py +49 -41
  25. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/extensions/pid/utils.py +7 -31
  26. pymodaq-5.0.2/src/pymodaq/extensions/utils.py +93 -0
  27. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/post_treatment/load_and_plot.py +43 -10
  28. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/resources/setup_plugin.py +1 -0
  29. pymodaq-5.0.2/src/pymodaq/updater.py +107 -0
  30. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/chrono_timer.py +6 -7
  31. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/daq_utils.py +6 -3
  32. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/data.py +21 -17
  33. pymodaq-5.0.2/src/pymodaq/utils/enums.py +6 -0
  34. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/gui_utils/loader_utils.py +29 -2
  35. pymodaq-5.0.2/src/pymodaq/utils/gui_utils/utils.py +18 -0
  36. pymodaq-5.0.2/src/pymodaq/utils/gui_utils/widgets/lcd.py +8 -0
  37. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/h5modules/module_saving.py +5 -2
  38. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/leco/daq_move_LECODirector.py +22 -16
  39. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/leco/daq_xDviewer_LECODirector.py +15 -9
  40. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/leco/leco_director.py +4 -3
  41. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/leco/pymodaq_listener.py +9 -13
  42. pymodaq-5.0.2/src/pymodaq/utils/leco/utils.py +74 -0
  43. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/managers/modules_manager.py +22 -12
  44. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/managers/overshoot_manager.py +45 -1
  45. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/managers/preset_manager.py +22 -46
  46. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/managers/preset_manager_utils.py +17 -13
  47. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/managers/remote_manager.py +1 -1
  48. pymodaq-5.0.2/src/pymodaq/utils/messenger.py +6 -0
  49. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/parameter/__init__.py +5 -1
  50. pymodaq-5.0.2/src/pymodaq/utils/tcp_ip/mysocket.py +12 -0
  51. pymodaq-5.0.2/src/pymodaq/utils/tcp_ip/serializer.py +13 -0
  52. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/tcp_ip/tcp_server_client.py +5 -5
  53. pymodaq-5.0.0/PKG-INFO +0 -166
  54. pymodaq-5.0.0/README.rst +0 -96
  55. pymodaq-5.0.0/src/pymodaq/__init__.py +0 -120
  56. pymodaq-5.0.0/src/pymodaq/examples/custom_app.py +0 -255
  57. pymodaq-5.0.0/src/pymodaq/examples/custom_viewer.py +0 -112
  58. pymodaq-5.0.0/src/pymodaq/examples/parameter_ex.py +0 -158
  59. pymodaq-5.0.0/src/pymodaq/examples/preset_MockCamera.xml +0 -1
  60. pymodaq-5.0.0/src/pymodaq/extensions/pid/daq_move_PID.py +0 -98
  61. pymodaq-5.0.0/src/pymodaq/extensions/utils.py +0 -59
  62. pymodaq-5.0.0/src/pymodaq/post_treatment/daq_measurement/daq_measurement_GUI.py +0 -142
  63. pymodaq-5.0.0/src/pymodaq/post_treatment/daq_measurement/daq_measurement_GUI.ui +0 -232
  64. pymodaq-5.0.0/src/pymodaq/post_treatment/daq_measurement/daq_measurement_main.py +0 -391
  65. pymodaq-5.0.0/src/pymodaq/post_treatment/daq_measurement/process_from_QtDesigner_DAQ_Measurement_GUI.bat +0 -2
  66. pymodaq-5.0.0/src/pymodaq/utils/gui_utils/utils.py +0 -21
  67. pymodaq-5.0.0/src/pymodaq/utils/leco/utils.py +0 -41
  68. pymodaq-5.0.0/src/pymodaq/utils/managers/__init__.py +0 -0
  69. pymodaq-5.0.0/src/pymodaq/utils/tcp_ip/mysocket.py +0 -118
  70. pymodaq-5.0.0/src/pymodaq/utils/tcp_ip/serializer.py +0 -778
  71. {pymodaq-5.0.0 → pymodaq-5.0.2}/LICENSE +0 -0
  72. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/control_modules/__init__.py +0 -0
  73. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/control_modules/daq_viewer_ui.py +0 -0
  74. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/control_modules/mocks.py +0 -0
  75. {pymodaq-5.0.0/src/pymodaq/examples → pymodaq-5.0.2/src/pymodaq/daq_utils}/__init__.py +0 -0
  76. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/examples/Labview_TCP_Client/DAQ_TCP_Client.aliases +0 -0
  77. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/examples/Labview_TCP_Client/DAQ_TCP_Client.lvlps +0 -0
  78. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/examples/Labview_TCP_Client/DAQ_TCP_Client.lvproj +0 -0
  79. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/examples/Labview_TCP_Client/DAQ_TCP_Client.vi +0 -0
  80. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/examples/Labview_TCP_Client/DAQ_TCP_Server_1Dgaussian.vi +0 -0
  81. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/examples/Labview_TCP_Client/DAQ_TCP_Server_2Dgaussian.vi +0 -0
  82. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/examples/Labview_TCP_Client/DAQ_TCP_read_cmd.vi +0 -0
  83. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/examples/Labview_TCP_Client/DAQ_TCP_read_float.vi +0 -0
  84. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/examples/Labview_TCP_Client/DAQ_TCP_read_int.vi +0 -0
  85. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/examples/Labview_TCP_Client/DAQ_TCP_send_data.vi +0 -0
  86. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/examples/Labview_TCP_Client/DAQ_TCP_send_int.vi +0 -0
  87. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/examples/Labview_TCP_Client/DAQ_TCP_send_scalar.vi +0 -0
  88. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/examples/Labview_TCP_Client/DAQ_TCP_send_string.vi +0 -0
  89. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/examples/Labview_TCP_Client/client_state.ctl +0 -0
  90. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/examples/Labview_TCP_Client/cmd_types.ctl +0 -0
  91. {pymodaq-5.0.0/src/pymodaq/extensions/daq_logger → pymodaq-5.0.2/src/pymodaq/examples}/__init__.py +0 -0
  92. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/examples/function_plotter.py +0 -0
  93. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/examples/nonlinearscanner.py +0 -0
  94. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/examples/tcp_client.py +0 -0
  95. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/extensions/__init__.py +0 -0
  96. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/extensions/bayesian/__init__.py +0 -0
  97. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/extensions/console.py +0 -0
  98. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/extensions/daq_logger/abstract.py +0 -0
  99. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/extensions/daq_logger/db/__init__.py +0 -0
  100. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/extensions/daq_logger/db/db_logger.py +0 -0
  101. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/extensions/daq_logger/db/db_logger_models.py +0 -0
  102. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/extensions/daq_logger/h5logging.py +0 -0
  103. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/extensions/h5browser.py +0 -0
  104. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/icon.ico +0 -0
  105. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/post_treatment/__init__.py +0 -0
  106. {pymodaq-5.0.0/src/pymodaq/post_treatment/daq_measurement → pymodaq-5.0.2/src/pymodaq/resources}/__init__.py +0 -0
  107. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/resources/preset_default.xml +0 -0
  108. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/splash.png +0 -0
  109. {pymodaq-5.0.0/src/pymodaq/resources → pymodaq-5.0.2/src/pymodaq/utils}/__init__.py +0 -0
  110. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/array_manipulation.py +0 -0
  111. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/calibration_camera.py +0 -0
  112. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/config.py +0 -0
  113. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/conftests.py +0 -0
  114. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/exceptions.py +0 -0
  115. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/gui_utils/__init__.py +0 -0
  116. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/h5modules/__init__.py +0 -0
  117. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/leco/__init__.py +0 -0
  118. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/leco/desktop.ini +0 -0
  119. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/leco/director_utils.py +0 -0
  120. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/logger.py +0 -0
  121. {pymodaq-5.0.0/src/pymodaq/utils → pymodaq-5.0.2/src/pymodaq/utils/managers}/__init__.py +0 -0
  122. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/managers/batchscan_manager.py +0 -0
  123. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/math_utils.py +0 -0
  124. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/parameter/utils.py +0 -0
  125. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/scanner/__init__.py +0 -0
  126. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/scanner/scan_config.py +0 -0
  127. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/scanner/scan_factory.py +0 -0
  128. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/scanner/scan_selector.py +0 -0
  129. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/scanner/scanner.py +0 -0
  130. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/scanner/scanners/_1d_scanners.py +0 -0
  131. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/scanner/scanners/_2d_scanners.py +0 -0
  132. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/scanner/scanners/__init__.py +0 -0
  133. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/scanner/scanners/sequential.py +0 -0
  134. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/scanner/scanners/tabular.py +0 -0
  135. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/scanner/utils.py +0 -0
  136. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/svg/__init__.py +0 -0
  137. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/svg/svg_renderer.py +0 -0
  138. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/svg/svg_view.py +0 -0
  139. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/svg/svg_viewer2D.py +0 -0
  140. {pymodaq-5.0.0 → pymodaq-5.0.2}/src/pymodaq/utils/tcp_ip/__init__.py +0 -0
@@ -127,3 +127,4 @@ venv.bak/
127
127
  *yacctab.py
128
128
  *lextab.py
129
129
 
130
+ .mu_repo
pymodaq-5.0.2/PKG-INFO ADDED
@@ -0,0 +1,242 @@
1
+ Metadata-Version: 2.4
2
+ Name: pymodaq
3
+ Version: 5.0.2
4
+ Summary: Modular Data Acquisition with Python
5
+ Project-URL: Homepage, http://pymodaq.cnrs.fr
6
+ Project-URL: Source, https://github.com/PyMoDAQ/PyMoDAQ
7
+ Project-URL: Tracker, https://github.com/PyMoDAQ/PyMoDAQ/issues
8
+ Author-email: Sébastien Weber <sebastien.weber@cemes.fr>
9
+ License: The MIT License (MIT)
10
+
11
+ Copyright (c) 2021 Sebastien Weber <sebastien.weber@cemes.fr>
12
+
13
+ Permission is hereby granted, free of charge, to any person obtaining a copy
14
+ of this software and associated documentation files (the "Software"), to deal
15
+ in the Software without restriction, including without limitation the rights
16
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
17
+ copies of the Software, and to permit persons to whom the Software is
18
+ furnished to do so, subject to the following conditions:
19
+
20
+ The above copyright notice and this permission notice shall be included in
21
+ all copies or substantial portions of the Software.
22
+
23
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
24
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
26
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
28
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
29
+ THE SOFTWARE.
30
+ License-File: LICENSE
31
+ Classifier: Development Status :: 5 - Production/Stable
32
+ Classifier: Environment :: Other Environment
33
+ Classifier: Intended Audience :: Science/Research
34
+ Classifier: License :: OSI Approved :: MIT License
35
+ Classifier: Natural Language :: English
36
+ Classifier: Operating System :: OS Independent
37
+ Classifier: Programming Language :: Python :: 3.9
38
+ Classifier: Programming Language :: Python :: 3.10
39
+ Classifier: Programming Language :: Python :: 3.11
40
+ Classifier: Programming Language :: Python :: 3.12
41
+ Classifier: Topic :: Scientific/Engineering :: Human Machine Interfaces
42
+ Classifier: Topic :: Scientific/Engineering :: Visualization
43
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
44
+ Classifier: Topic :: Software Development :: User Interfaces
45
+ Requires-Python: >=3.8
46
+ Requires-Dist: bayesian-optimization<2.0.0
47
+ Requires-Dist: easydict
48
+ Requires-Dist: multipledispatch
49
+ Requires-Dist: numpy<2.0.0
50
+ Requires-Dist: packaging
51
+ Requires-Dist: pint
52
+ Requires-Dist: pyleco>0.3; python_version >= '3.8'
53
+ Requires-Dist: pymodaq-data>=5.0.18
54
+ Requires-Dist: pymodaq-gui>=5.0.17
55
+ Requires-Dist: pymodaq-plugin-manager>=0.0.17
56
+ Requires-Dist: pymodaq-plugins-mock>=5.0.5
57
+ Requires-Dist: pymodaq-utils>=0.0.14
58
+ Requires-Dist: pyqtgraph>=0.12
59
+ Requires-Dist: python-dateutil
60
+ Requires-Dist: qtconsole
61
+ Requires-Dist: qtpy
62
+ Requires-Dist: scipy
63
+ Requires-Dist: setuptools>=60
64
+ Requires-Dist: simple-pid
65
+ Requires-Dist: toml
66
+ Provides-Extra: dev
67
+ Requires-Dist: flake8; extra == 'dev'
68
+ Requires-Dist: h5py; extra == 'dev'
69
+ Requires-Dist: hatch; extra == 'dev'
70
+ Requires-Dist: pyqt5; extra == 'dev'
71
+ Requires-Dist: pyqt6; extra == 'dev'
72
+ Requires-Dist: pyside6; extra == 'dev'
73
+ Requires-Dist: pytest; extra == 'dev'
74
+ Requires-Dist: pytest-cov; extra == 'dev'
75
+ Requires-Dist: pytest-qt; extra == 'dev'
76
+ Requires-Dist: pytest-xdist; extra == 'dev'
77
+ Requires-Dist: pytest-xvfb; extra == 'dev'
78
+ Description-Content-Type: text/x-rst
79
+
80
+ PyMoDAQ
81
+ #######
82
+
83
+ .. image:: https://img.shields.io/pypi/v/pymodaq.svg
84
+ :target: https://pypi.org/project/pymodaq/
85
+ :alt: Latest Version
86
+
87
+ .. image:: https://readthedocs.org/projects/pymodaq/badge/?version=latest
88
+ :target: https://pymodaq.readthedocs.io/en/stable/?badge=latest
89
+ :alt: Documentation Status
90
+
91
+ .. image:: https://codecov.io/gh/PyMoDAQ/PyMoDAQ/graph/badge.svg?token=IQNJRCQDM2
92
+ :target: https://codecov.io/gh/PyMoDAQ/PyMoDAQ
93
+
94
+
95
+
96
+ +-------------+-------------------+------------------+---------------------+
97
+ | Linux | PyQt5 | PyQt6 | PySide6 |
98
+ +=============+===================+==================+=====================+
99
+ | Python 3.9 | |39-linux-pyqt5| | |39-linux-pyqt6| | |39-linux-pyside6| |
100
+ +-------------+-------------------+------------------+---------------------+
101
+ | Python 3.10 | |310-linux-pyqt5| ||310-linux-pyqt6| | |310-linux-pyside6| |
102
+ +-------------+-------------------+------------------+---------------------+
103
+ | Python 3.11 | |311-linux-pyqt5| ||311-linux-pyqt6| | |311-linux-pyside6| |
104
+ +-------------+-------------------+------------------+---------------------+
105
+ | Python 3.12 | |312-linux-pyqt5| ||312-linux-pyqt6| | |312-linux-pyside6| |
106
+ +-------------+-------------------+------------------+---------------------+
107
+
108
+
109
+ .. |39-linux-pyqt5| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Linux_3.9_pyqt5.svg
110
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
111
+
112
+ .. |39-linux-pyqt6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Linux_3.9_pyqt6.svg
113
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
114
+
115
+ .. |39-linux-pyside6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Linux_3.9_pyside6.svg
116
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
117
+
118
+ .. |310-linux-pyqt5| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Linux_3.10_pyqt5.svg
119
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
120
+
121
+ .. |310-linux-pyqt6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Linux_3.10_pyqt6.svg
122
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
123
+
124
+ .. |310-linux-pyside6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Linux_3.10_pyside6.svg
125
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
126
+
127
+ .. |311-linux-pyqt5| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Linux_3.11_pyqt5.svg
128
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
129
+
130
+ .. |311-linux-pyqt6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Linux_3.11_pyqt6.svg
131
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
132
+
133
+ .. |311-linux-pyside6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Linux_3.11_pyside6.svg
134
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
135
+
136
+ .. |312-linux-pyqt5| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Linux_3.12_pyqt5.svg
137
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
138
+
139
+ .. |312-linux-pyqt6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Linux_3.12_pyqt6.svg
140
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
141
+
142
+ .. |312-linux-pyside6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Linux_3.12_pyside6.svg
143
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
144
+
145
+
146
+ +-------------+---------------------+--------------------+-----------------------+
147
+ | Windows | PyQt5 | PyQt6 | PySide6 |
148
+ +=============+=====================+====================+=======================+
149
+ | Python 3.9 | |39-windows-pyqt5| | |39-windows-pyqt6| | |39-windows-pyside6| |
150
+ +-------------+---------------------+--------------------+-----------------------+
151
+ | Python 3.10 | |310-windows-pyqt5| ||310-windows-pyqt6| | |310-windows-pyside6| |
152
+ +-------------+---------------------+--------------------+-----------------------+
153
+ | Python 3.11 | |311-windows-pyqt5| ||311-windows-pyqt6| | |311-windows-pyside6| |
154
+ +-------------+---------------------+--------------------+-----------------------+
155
+ | Python 3.12 | |312-windows-pyqt5| ||312-windows-pyqt6| | |312-windows-pyside6| |
156
+ +-------------+---------------------+--------------------+-----------------------+
157
+
158
+ .. |39-windows-pyqt5| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Windows_3.9_pyqt5.svg
159
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
160
+
161
+ .. |39-windows-pyqt6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Windows_3.9_pyqt6.svg
162
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
163
+
164
+ .. |39-windows-pyside6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Windows_3.9_pyside6.svg
165
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
166
+
167
+ .. |310-windows-pyqt5| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Windows_3.10_pyqt5.svg
168
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
169
+
170
+ .. |310-windows-pyqt6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Windows_3.10_pyqt6.svg
171
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
172
+
173
+ .. |310-windows-pyside6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Windows_3.10_pyside6.svg
174
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
175
+
176
+ .. |311-windows-pyqt5| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Windows_3.11_pyqt5.svg
177
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
178
+
179
+ .. |311-windows-pyqt6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Windows_3.11_pyqt6.svg
180
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
181
+
182
+ .. |311-windows-pyside6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Windows_3.11_pyside6.svg
183
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
184
+
185
+ .. |312-windows-pyqt5| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Windows_3.12_pyqt5.svg
186
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
187
+
188
+ .. |312-windows-pyqt6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Windows_3.12_pyqt6.svg
189
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
190
+
191
+ .. |312-windows-pyside6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Windows_3.12_pyside6.svg
192
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
193
+
194
+
195
+
196
+
197
+ .. figure:: http://pymodaq.cnrs.fr/en/latest/_static/splash.png
198
+ :alt: shortcut
199
+
200
+
201
+ PyMoDAQ, Modular Data Acquisition with Python, is a set of **python** modules used to interface any kind of experiments.
202
+ It simplifies the interaction with detector and actuator hardware to go straight to the data acquisition of interest.
203
+
204
+ It has two purposes:
205
+
206
+ * First, to provide a complete interface to perform automated measurements or logging data without having to write a user/interface for each
207
+ new experiment, this is under the *Dashboard_module* environment and its extensions.
208
+ * Second, to provide various tools (modules) to easily build *custom apps*
209
+
210
+ It is organised a shown below:
211
+
212
+ .. figure:: http://pymodaq.cnrs.fr/en/latest/_images/pymodaq_diagram.png
213
+ :alt: overview
214
+
215
+ PyMoDAQ's Dashboard and its extensions: DAQ_Scan for automated acquisitions, DAQ_Logger for data logging and many other.
216
+
217
+ The main component is the **Dashboard** : This is a graphical component that will initialize actuators and detectors given
218
+ the need of your particular experiment. You configure the dashboard using an interface for quick launch of various
219
+ configurations (numbers and types of control modules).
220
+
221
+ The detectors and the actuators are represented and manipulated using two control modules:
222
+
223
+ * **DAQ_Move_module** : used to control/drive an actuator (stand alone and/or automated).
224
+ Any number of these modules can be instantiated in the Dashboard
225
+ * **DAQ_Viewer_module** : used to control/drive a detector (stand alone and/or automated).
226
+
227
+ Any number of these modules can be instantiated in the Dashboard.
228
+
229
+ The Dashboard allows you to start dedicated extensions that will make use of the control modules:
230
+
231
+ * **DAQ_Logger_module** : This module lets you log data from one or many detectors defined in the dashboard. You can log data
232
+ in a binary hierarchical hdf5 file or towards a sql database
233
+ * **DAQ_Scan_module** : This module lets you configure automated data acquisition from one or many detectors defined
234
+ in the dashboard as a function or one or more actuators defined also in the dashboard.
235
+
236
+ and many others to simplify any application development.
237
+
238
+ Published under the MIT FREE SOFTWARE LICENSE
239
+
240
+ GitHub repo: https://github.com/PyMoDAQ
241
+
242
+ Documentation: http://pymodaq.cnrs.fr/
@@ -0,0 +1,163 @@
1
+ PyMoDAQ
2
+ #######
3
+
4
+ .. image:: https://img.shields.io/pypi/v/pymodaq.svg
5
+ :target: https://pypi.org/project/pymodaq/
6
+ :alt: Latest Version
7
+
8
+ .. image:: https://readthedocs.org/projects/pymodaq/badge/?version=latest
9
+ :target: https://pymodaq.readthedocs.io/en/stable/?badge=latest
10
+ :alt: Documentation Status
11
+
12
+ .. image:: https://codecov.io/gh/PyMoDAQ/PyMoDAQ/graph/badge.svg?token=IQNJRCQDM2
13
+ :target: https://codecov.io/gh/PyMoDAQ/PyMoDAQ
14
+
15
+
16
+
17
+ +-------------+-------------------+------------------+---------------------+
18
+ | Linux | PyQt5 | PyQt6 | PySide6 |
19
+ +=============+===================+==================+=====================+
20
+ | Python 3.9 | |39-linux-pyqt5| | |39-linux-pyqt6| | |39-linux-pyside6| |
21
+ +-------------+-------------------+------------------+---------------------+
22
+ | Python 3.10 | |310-linux-pyqt5| ||310-linux-pyqt6| | |310-linux-pyside6| |
23
+ +-------------+-------------------+------------------+---------------------+
24
+ | Python 3.11 | |311-linux-pyqt5| ||311-linux-pyqt6| | |311-linux-pyside6| |
25
+ +-------------+-------------------+------------------+---------------------+
26
+ | Python 3.12 | |312-linux-pyqt5| ||312-linux-pyqt6| | |312-linux-pyside6| |
27
+ +-------------+-------------------+------------------+---------------------+
28
+
29
+
30
+ .. |39-linux-pyqt5| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Linux_3.9_pyqt5.svg
31
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
32
+
33
+ .. |39-linux-pyqt6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Linux_3.9_pyqt6.svg
34
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
35
+
36
+ .. |39-linux-pyside6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Linux_3.9_pyside6.svg
37
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
38
+
39
+ .. |310-linux-pyqt5| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Linux_3.10_pyqt5.svg
40
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
41
+
42
+ .. |310-linux-pyqt6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Linux_3.10_pyqt6.svg
43
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
44
+
45
+ .. |310-linux-pyside6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Linux_3.10_pyside6.svg
46
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
47
+
48
+ .. |311-linux-pyqt5| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Linux_3.11_pyqt5.svg
49
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
50
+
51
+ .. |311-linux-pyqt6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Linux_3.11_pyqt6.svg
52
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
53
+
54
+ .. |311-linux-pyside6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Linux_3.11_pyside6.svg
55
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
56
+
57
+ .. |312-linux-pyqt5| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Linux_3.12_pyqt5.svg
58
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
59
+
60
+ .. |312-linux-pyqt6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Linux_3.12_pyqt6.svg
61
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
62
+
63
+ .. |312-linux-pyside6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Linux_3.12_pyside6.svg
64
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
65
+
66
+
67
+ +-------------+---------------------+--------------------+-----------------------+
68
+ | Windows | PyQt5 | PyQt6 | PySide6 |
69
+ +=============+=====================+====================+=======================+
70
+ | Python 3.9 | |39-windows-pyqt5| | |39-windows-pyqt6| | |39-windows-pyside6| |
71
+ +-------------+---------------------+--------------------+-----------------------+
72
+ | Python 3.10 | |310-windows-pyqt5| ||310-windows-pyqt6| | |310-windows-pyside6| |
73
+ +-------------+---------------------+--------------------+-----------------------+
74
+ | Python 3.11 | |311-windows-pyqt5| ||311-windows-pyqt6| | |311-windows-pyside6| |
75
+ +-------------+---------------------+--------------------+-----------------------+
76
+ | Python 3.12 | |312-windows-pyqt5| ||312-windows-pyqt6| | |312-windows-pyside6| |
77
+ +-------------+---------------------+--------------------+-----------------------+
78
+
79
+ .. |39-windows-pyqt5| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Windows_3.9_pyqt5.svg
80
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
81
+
82
+ .. |39-windows-pyqt6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Windows_3.9_pyqt6.svg
83
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
84
+
85
+ .. |39-windows-pyside6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Windows_3.9_pyside6.svg
86
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
87
+
88
+ .. |310-windows-pyqt5| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Windows_3.10_pyqt5.svg
89
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
90
+
91
+ .. |310-windows-pyqt6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Windows_3.10_pyqt6.svg
92
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
93
+
94
+ .. |310-windows-pyside6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Windows_3.10_pyside6.svg
95
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
96
+
97
+ .. |311-windows-pyqt5| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Windows_3.11_pyqt5.svg
98
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
99
+
100
+ .. |311-windows-pyqt6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Windows_3.11_pyqt6.svg
101
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
102
+
103
+ .. |311-windows-pyside6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Windows_3.11_pyside6.svg
104
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
105
+
106
+ .. |312-windows-pyqt5| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Windows_3.12_pyqt5.svg
107
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
108
+
109
+ .. |312-windows-pyqt6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Windows_3.12_pyqt6.svg
110
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
111
+
112
+ .. |312-windows-pyside6| image:: https://raw.githubusercontent.com/PyMoDAQ/PyMoDAQ/badges/5.0.x_dev/tests_Windows_3.12_pyside6.svg
113
+ :target: https://github.com/PyMoDAQ/PyMoDAQ/actions/workflows/tests.yml
114
+
115
+
116
+
117
+
118
+ .. figure:: http://pymodaq.cnrs.fr/en/latest/_static/splash.png
119
+ :alt: shortcut
120
+
121
+
122
+ PyMoDAQ, Modular Data Acquisition with Python, is a set of **python** modules used to interface any kind of experiments.
123
+ It simplifies the interaction with detector and actuator hardware to go straight to the data acquisition of interest.
124
+
125
+ It has two purposes:
126
+
127
+ * First, to provide a complete interface to perform automated measurements or logging data without having to write a user/interface for each
128
+ new experiment, this is under the *Dashboard_module* environment and its extensions.
129
+ * Second, to provide various tools (modules) to easily build *custom apps*
130
+
131
+ It is organised a shown below:
132
+
133
+ .. figure:: http://pymodaq.cnrs.fr/en/latest/_images/pymodaq_diagram.png
134
+ :alt: overview
135
+
136
+ PyMoDAQ's Dashboard and its extensions: DAQ_Scan for automated acquisitions, DAQ_Logger for data logging and many other.
137
+
138
+ The main component is the **Dashboard** : This is a graphical component that will initialize actuators and detectors given
139
+ the need of your particular experiment. You configure the dashboard using an interface for quick launch of various
140
+ configurations (numbers and types of control modules).
141
+
142
+ The detectors and the actuators are represented and manipulated using two control modules:
143
+
144
+ * **DAQ_Move_module** : used to control/drive an actuator (stand alone and/or automated).
145
+ Any number of these modules can be instantiated in the Dashboard
146
+ * **DAQ_Viewer_module** : used to control/drive a detector (stand alone and/or automated).
147
+
148
+ Any number of these modules can be instantiated in the Dashboard.
149
+
150
+ The Dashboard allows you to start dedicated extensions that will make use of the control modules:
151
+
152
+ * **DAQ_Logger_module** : This module lets you log data from one or many detectors defined in the dashboard. You can log data
153
+ in a binary hierarchical hdf5 file or towards a sql database
154
+ * **DAQ_Scan_module** : This module lets you configure automated data acquisition from one or many detectors defined
155
+ in the dashboard as a function or one or more actuators defined also in the dashboard.
156
+
157
+ and many others to simplify any application development.
158
+
159
+ Published under the MIT FREE SOFTWARE LICENSE
160
+
161
+ GitHub repo: https://github.com/PyMoDAQ
162
+
163
+ Documentation: http://pymodaq.cnrs.fr/
@@ -1,5 +1,5 @@
1
1
  [build-system]
2
- requires = ["hatchling>=1.9.0", "hatch-vcs"]
2
+ requires = ["hatchling>=1.9.0", "hatch-vcs", "toml"]
3
3
  build-backend = "hatchling.build"
4
4
 
5
5
  [project]
@@ -21,42 +21,58 @@ classifiers = [
21
21
  "License :: OSI Approved :: MIT License",
22
22
  "Natural Language :: English",
23
23
  "Operating System :: OS Independent",
24
- "Programming Language :: Python :: 3.8",
25
24
  "Programming Language :: Python :: 3.9",
26
25
  "Programming Language :: Python :: 3.10",
27
26
  "Programming Language :: Python :: 3.11",
27
+ "Programming Language :: Python :: 3.12",
28
28
  "Topic :: Scientific/Engineering :: Human Machine Interfaces",
29
29
  "Topic :: Scientific/Engineering :: Visualization",
30
30
  "Topic :: Software Development :: Libraries :: Python Modules",
31
31
  "Topic :: Software Development :: User Interfaces",
32
32
  ]
33
33
  dependencies = [
34
- "pymodaq_utils",
35
- "pymodaq_gui",
36
- "pymodaq_data",
34
+ "pymodaq_utils>=0.0.14",
35
+ "pymodaq_gui>=5.0.17",
36
+ "pymodaq_data>=5.0.18",
37
37
  "easydict",
38
- "importlib_metadata; python_version<\"3.8\"",
39
38
  "multipledispatch",
40
39
  "numpy < 2.0.0",
41
40
  "packaging",
42
41
  "pint",
43
42
  "pymodaq_plugin_manager>=0.0.17",
44
- "pymodaq_plugins_mock",
43
+ "pymodaq_plugins_mock>=5.0.5",
45
44
  "pyqtgraph>=0.12",
46
45
  "python-dateutil",
47
- "qdarkstyle",
48
46
  "qtpy",
49
47
  "scipy",
50
48
  "setuptools>=60",
51
49
  "simple_pid",
52
50
  "toml",
53
51
  "qtconsole",
54
- "tables<3.9", # issue with some version of required package blosc2>=2.2.8
55
- "pyleco; python_version>=\"3.8\"",
56
- "bayesian-optimization"
52
+ "pyleco>0.3; python_version>=\"3.8\"",
53
+ "bayesian-optimization<2.0.0",
57
54
  ]
58
55
 
56
+
57
+ [project.optional-dependencies]
58
+ dev = [
59
+ "hatch",
60
+ "flake8",
61
+ "h5py",
62
+ "pytest",
63
+ "pytest-cov",
64
+ "pytest-xdist",
65
+
66
+ "pyqt5",
67
+ "pyqt6",
68
+ "pyside6",
69
+ "pytest-qt",
70
+ "pytest-xvfb",
71
+ ]
72
+
73
+
59
74
  [project.scripts]
75
+ pymodaq_updater = "pymodaq.updater:main"
60
76
  daq_logger = "pymodaq.extensions.daq_logger:main"
61
77
  daq_move = "pymodaq.control_modules.daq_move:main"
62
78
  daq_scan = "pymodaq.extensions.daq_scan:main"
@@ -72,8 +88,15 @@ Tracker = "https://github.com/PyMoDAQ/PyMoDAQ/issues"
72
88
 
73
89
  [tool.hatch.version]
74
90
  source = "vcs"
91
+ fallback-version = '5.0.1'
75
92
 
76
93
  [tool.hatch.build.targets.sdist]
77
94
  include = [
78
95
  "/src",
79
96
  ]
97
+
98
+ [tool.coverage.run]
99
+ omit = [
100
+ "*/examples/*",
101
+ "*/resources/*"
102
+ ]
@@ -0,0 +1,86 @@
1
+ import importlib.util
2
+ import os
3
+ import sys
4
+ from pint import UnitRegistry
5
+ from pathlib import Path
6
+
7
+ import warnings
8
+
9
+ import pymodaq_utils # to init stuff related to pymodaq_utils # necessary, leave it there
10
+ import pymodaq_data # to init stuff related to pymodaq_data # necessary, leave it there
11
+ import pymodaq_gui # to init stuff related to pymodaq_gui # necessary, leave it there
12
+
13
+ from pymodaq_data import Q_, Unit, ureg # necessary, leave it there
14
+
15
+
16
+ try:
17
+ # with open(str(Path(__file__).parent.joinpath('resources/VERSION')), 'r') as fvers:
18
+ # __version__ = fvers.read().strip()
19
+
20
+ from pymodaq_utils.logger import set_logger
21
+ from pymodaq_utils.utils import get_version
22
+ __version__ = get_version('pymodaq')
23
+ try:
24
+ logger = set_logger('pymodaq', add_handler=True, base_logger=True)
25
+
26
+ from pymodaq.utils.daq_utils import copy_preset, get_instrument_plugins
27
+
28
+ from pymodaq_utils.config import Config
29
+ from pymodaq.utils.scanner.utils import register_scanners
30
+ from pymodaq_data.plotting.plotter.plotter import register_plotter, PlotterFactory
31
+
32
+ # issue on windows when using .NET code within multithreads, this below allows it but requires
33
+ # the pywin32 (pythoncom) package
34
+ if importlib.util.find_spec('clr') is not None:
35
+ try:
36
+ import pythoncom
37
+ pythoncom.CoInitialize()
38
+ except ModuleNotFoundError as e:
39
+ infos = "You have installed plugins requiring the pywin32 package to work correctly," \
40
+ " please type in *pip install pywin32* and restart PyMoDAQ"
41
+ print(infos)
42
+ logger.warning(infos)
43
+
44
+ config = Config() # to ckeck for config file existence, otherwise create one
45
+ copy_preset()
46
+
47
+ from pymodaq_utils.config import Config
48
+ from pymodaq.utils.scanner.utils import register_scanners
49
+
50
+ try:
51
+ # Need the config to exists before importing
52
+ from pymodaq_utils.environment import EnvironmentBackupManager
53
+
54
+ if config['backup']['keep_backup']:
55
+ ebm = EnvironmentBackupManager()
56
+ ebm.save_backup()
57
+ except ModuleNotFoundError as e:
58
+ infos = "Your pymodaq_utils version is outdated and doesn't allow for automatic backup of pip packages." \
59
+ " You should update it."
60
+ print(infos)
61
+ logger.warning(infos)
62
+
63
+ logger.info('*************************************************************************')
64
+ logger.info(f"Getting the list of instrument plugins...")
65
+ logger.info('')
66
+ get_instrument_plugins()
67
+ logger.info('*************************************************************************')
68
+
69
+ logger.info('')
70
+ logger.info('')
71
+ logger.info('************************')
72
+ logger.info(f"Registering Scanners...")
73
+ register_scanners()
74
+ logger.info(f"Done")
75
+ logger.info('************************')
76
+
77
+ except Exception:
78
+ print("Couldn't create the local folder to store logs , presets...")
79
+
80
+
81
+
82
+ except Exception as e:
83
+ try:
84
+ logger.exception(str(e))
85
+ except Exception as e:
86
+ print(str(e))