pymodaq 5.0.5__py3-none-any.whl → 5.1.0a0__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/control_modules/daq_move.py +77 -64
- pymodaq/control_modules/daq_move_ui.py +16 -15
- pymodaq/control_modules/daq_viewer.py +95 -87
- pymodaq/control_modules/daq_viewer_ui.py +22 -23
- pymodaq/control_modules/mocks.py +2 -2
- pymodaq/control_modules/move_utility_classes.py +28 -19
- pymodaq/control_modules/thread_commands.py +138 -0
- pymodaq/control_modules/utils.py +88 -20
- pymodaq/control_modules/viewer_utility_classes.py +8 -17
- pymodaq/dashboard.py +90 -27
- pymodaq/examples/qt_less_standalone_module.py +48 -11
- pymodaq/extensions/__init__.py +7 -3
- pymodaq/extensions/adaptive/__init__.py +2 -0
- pymodaq/extensions/adaptive/adaptive_optimization.py +159 -0
- pymodaq/extensions/adaptive/loss_function/_1d_loss_functions.py +73 -0
- pymodaq/extensions/adaptive/loss_function/_2d_loss_functions.py +86 -0
- pymodaq/extensions/adaptive/loss_function/__init__.py +3 -0
- pymodaq/extensions/adaptive/loss_function/loss_factory.py +106 -0
- pymodaq/extensions/adaptive/utils.py +97 -0
- pymodaq/extensions/bayesian/__init__.py +1 -1
- pymodaq/extensions/bayesian/acquisition/__init__.py +2 -0
- pymodaq/extensions/bayesian/acquisition/acquisition_function_factory.py +71 -0
- pymodaq/extensions/bayesian/acquisition/base_acquisition_function.py +86 -0
- pymodaq/extensions/bayesian/bayesian_optimization.py +121 -0
- pymodaq/extensions/bayesian/utils.py +27 -286
- pymodaq/extensions/daq_logger/daq_logger.py +7 -12
- pymodaq/extensions/daq_logger/h5logging.py +1 -1
- pymodaq/extensions/daq_scan.py +18 -47
- pymodaq/extensions/h5browser.py +3 -34
- pymodaq/extensions/optimizers_base/__init__.py +0 -0
- pymodaq/extensions/{bayesian/bayesian_optimisation.py → optimizers_base/optimizer.py} +441 -334
- pymodaq/extensions/optimizers_base/thread_commands.py +20 -0
- pymodaq/extensions/optimizers_base/utils.py +378 -0
- pymodaq/extensions/pid/pid_controller.py +6 -10
- pymodaq/extensions/utils.py +12 -0
- pymodaq/utils/data.py +1 -0
- pymodaq/utils/gui_utils/loader_utils.py +2 -0
- pymodaq/utils/h5modules/module_saving.py +134 -22
- pymodaq/utils/leco/daq_move_LECODirector.py +73 -73
- pymodaq/utils/leco/daq_xDviewer_LECODirector.py +36 -84
- pymodaq/utils/leco/director_utils.py +25 -10
- pymodaq/utils/leco/leco_director.py +65 -26
- pymodaq/utils/leco/pymodaq_listener.py +118 -68
- pymodaq/utils/leco/utils.py +24 -24
- pymodaq/utils/managers/modules_manager.py +37 -8
- pymodaq/utils/scanner/scanners/_1d_scanners.py +0 -38
- pymodaq/utils/scanner/scanners/_2d_scanners.py +0 -58
- {pymodaq-5.0.5.dist-info → pymodaq-5.1.0a0.dist-info}/METADATA +4 -3
- {pymodaq-5.0.5.dist-info → pymodaq-5.1.0a0.dist-info}/RECORD +52 -38
- {pymodaq-5.0.5.dist-info → pymodaq-5.1.0a0.dist-info}/entry_points.txt +0 -2
- pymodaq/utils/leco/desktop.ini +0 -2
- {pymodaq-5.0.5.dist-info → pymodaq-5.1.0a0.dist-info}/WHEEL +0 -0
- {pymodaq-5.0.5.dist-info → pymodaq-5.1.0a0.dist-info}/licenses/LICENSE +0 -0
pymodaq/utils/leco/utils.py
CHANGED
|
@@ -3,27 +3,17 @@ import subprocess
|
|
|
3
3
|
import sys
|
|
4
4
|
from typing import Any, Optional, Union, get_args, TypeVar
|
|
5
5
|
|
|
6
|
+
|
|
6
7
|
from pymodaq.utils import data
|
|
7
|
-
|
|
8
|
-
from pymodaq_utils.serialize.serializer_legacy import Serializer, DeSerializer, SerializableFactory
|
|
8
|
+
from pymodaq_utils.serialize.factory import SerializableFactory
|
|
9
9
|
|
|
10
|
-
# type: ignore # noqa
|
|
11
10
|
from pymodaq_utils.logger import set_logger
|
|
12
11
|
|
|
13
12
|
|
|
14
13
|
logger = set_logger('leco_utils')
|
|
15
|
-
ser_factory = SerializableFactory()
|
|
16
14
|
JSON_TYPES = Union[str, int, float]
|
|
17
15
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
def serialize_object(pymodaq_object: Union[SERIALIZABLE, Any]) -> Union[str, Any]:
|
|
21
|
-
"""Serialize a pymodaq object, if it is not JSON compatible."""
|
|
22
|
-
if isinstance(pymodaq_object, get_args(JSON_TYPES)):
|
|
23
|
-
return pymodaq_object
|
|
24
|
-
else:
|
|
25
|
-
return Serializer(pymodaq_object).to_b64_string() # will raise a proper error if the object
|
|
26
|
-
#is not serializable
|
|
16
|
+
ser_factory = SerializableFactory()
|
|
27
17
|
|
|
28
18
|
|
|
29
19
|
## this form below is to be compatible with python <= 3.10
|
|
@@ -36,22 +26,33 @@ for klass in ser_factory.get_serializables()[1:]:
|
|
|
36
26
|
def binary_serialization(
|
|
37
27
|
pymodaq_object: Union[SERIALIZABLE, Any],
|
|
38
28
|
) -> tuple[Optional[Any], Optional[list[bytes]]]:
|
|
39
|
-
"""Serialize (binary) a pymodaq object, if it is not JSON compatible.
|
|
29
|
+
"""Serialize (binary) a pymodaq object, if it is not JSON compatible.
|
|
30
|
+
|
|
31
|
+
If an object is JSON serializable, we can send it as a value to the JSON
|
|
32
|
+
encoder and do not need a binary value.
|
|
33
|
+
Otherwise, the JSON value is None and the serialized object is returned.
|
|
34
|
+
|
|
35
|
+
:param pymodaq_object: the object which shall be sent via LECO protocol.
|
|
36
|
+
:return: tuple of the JSON value and a list of additional payload frames.
|
|
37
|
+
"""
|
|
40
38
|
if isinstance(pymodaq_object, get_args(JSON_TYPES)):
|
|
41
39
|
return pymodaq_object, None
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
else:
|
|
45
|
-
raise ValueError(
|
|
46
|
-
f"{pymodaq_object} of type '{type(pymodaq_object).__name__}' is neither "
|
|
47
|
-
"JSON serializable, nor via PyMoDAQ."
|
|
48
|
-
)
|
|
40
|
+
return None, [SerializableFactory().get_apply_serializer(pymodaq_object)]
|
|
41
|
+
|
|
49
42
|
|
|
50
43
|
|
|
51
44
|
def binary_serialization_to_kwargs(
|
|
52
45
|
pymodaq_object: Union[SERIALIZABLE, Any], data_key: str = "data"
|
|
53
46
|
) -> dict[str, Any]:
|
|
54
|
-
"""Create a dictionary of data parameters and of additional payload to send.
|
|
47
|
+
"""Create a dictionary of data parameters and of additional payload to send.
|
|
48
|
+
|
|
49
|
+
This method prepares arguments for PyLECO's :meth:`Communicator.ask_rpc` method.
|
|
50
|
+
In order to send a binary value as an argument `data_key` for a method, the
|
|
51
|
+
argument has to be None, which is JSON describable.
|
|
52
|
+
The binary data has to be sent via the `additional_payload` parameter.
|
|
53
|
+
If the data can be sent as JSON, it is sent directly (`data_key`) and no
|
|
54
|
+
additional frames are sent.
|
|
55
|
+
"""
|
|
55
56
|
d, b = binary_serialization(pymodaq_object=pymodaq_object)
|
|
56
57
|
return {data_key: d, "additional_payload": b}
|
|
57
58
|
|
|
@@ -69,6 +70,5 @@ def start_coordinator():
|
|
|
69
70
|
run_coordinator()
|
|
70
71
|
else:
|
|
71
72
|
logger.info('Coordinator already running')
|
|
72
|
-
except ConnectionRefusedError
|
|
73
|
+
except ConnectionRefusedError:
|
|
73
74
|
run_coordinator()
|
|
74
|
-
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
from typing import List, Union, TYPE_CHECKING
|
|
1
|
+
from typing import List, Union, TYPE_CHECKING, Optional, Sequence
|
|
2
2
|
|
|
3
3
|
from collections import OrderedDict
|
|
4
4
|
from qtpy.QtCore import QObject, Signal, Slot, QThread
|
|
@@ -68,9 +68,26 @@ class ModulesManager(QObject, ParameterManager):
|
|
|
68
68
|
]},
|
|
69
69
|
]
|
|
70
70
|
|
|
71
|
-
def __init__(self,
|
|
71
|
+
def __init__(self,
|
|
72
|
+
detectors: Optional[Sequence['DAQ_Viewer']] = None,
|
|
73
|
+
actuators: Optional[Sequence['DAQ_Move']] = None,
|
|
74
|
+
selected_detectors: Optional[Sequence['DAQ_Viewer']] = None,
|
|
75
|
+
selected_actuators: Optional[Sequence['DAQ_Move']] = None,
|
|
76
|
+
parent_name='',
|
|
77
|
+
**kwargs):
|
|
78
|
+
|
|
72
79
|
QObject.__init__(self)
|
|
73
80
|
ParameterManager.__init__(self)
|
|
81
|
+
if detectors is None:
|
|
82
|
+
detectors = []
|
|
83
|
+
if actuators is None:
|
|
84
|
+
actuators = []
|
|
85
|
+
if selected_detectors is None:
|
|
86
|
+
selected_detectors = []
|
|
87
|
+
if selected_actuators is None:
|
|
88
|
+
selected_actuators = []
|
|
89
|
+
|
|
90
|
+
self.parent_name = parent_name
|
|
74
91
|
|
|
75
92
|
for mod in selected_actuators:
|
|
76
93
|
assert mod in actuators
|
|
@@ -100,6 +117,9 @@ class ModulesManager(QObject, ParameterManager):
|
|
|
100
117
|
self.set_actuators(actuators, selected_actuators)
|
|
101
118
|
self.set_detectors(detectors, selected_detectors)
|
|
102
119
|
|
|
120
|
+
def __repr__(self):
|
|
121
|
+
return f'ModulesManager of "{self.parent_name}" with control modules: {self.get_names(self.modules_all)}'
|
|
122
|
+
|
|
103
123
|
def show_only_control_modules(self, show: True):
|
|
104
124
|
self.settings.child('move_done').show(not show)
|
|
105
125
|
self.settings.child('det_done').show(not show)
|
|
@@ -197,7 +217,7 @@ class ModulesManager(QObject, ParameterManager):
|
|
|
197
217
|
|
|
198
218
|
@property
|
|
199
219
|
def modules(self):
|
|
200
|
-
"""Get the list of
|
|
220
|
+
"""Get the list of detectors and actuators"""
|
|
201
221
|
return self.detectors + self.actuators
|
|
202
222
|
|
|
203
223
|
@property
|
|
@@ -287,8 +307,15 @@ class ModulesManager(QObject, ParameterManager):
|
|
|
287
307
|
"""
|
|
288
308
|
return self.settings.child('data_dimensions', f'det_data_list{dim.upper()}').value()['selected']
|
|
289
309
|
|
|
290
|
-
def grab_data(self, **kwargs):
|
|
291
|
-
"""Do a single grab of connected and selected detectors
|
|
310
|
+
def grab_data(self, check_do_override=True, **kwargs):
|
|
311
|
+
"""Do a single grab of connected and selected detectors
|
|
312
|
+
|
|
313
|
+
Parameter
|
|
314
|
+
---------
|
|
315
|
+
check_do_override: bool
|
|
316
|
+
If this is True the signal emission to the DAQ_Viewers will be conditionned to the status of their internal
|
|
317
|
+
override_grab_from_extension attribute
|
|
318
|
+
"""
|
|
292
319
|
self.det_done_datas = DataToExport(name=__class__.__name__, control_module='DAQ_Viewer')
|
|
293
320
|
self._received_data = 0
|
|
294
321
|
self.det_done_flag = False
|
|
@@ -296,8 +323,9 @@ class ModulesManager(QObject, ParameterManager):
|
|
|
296
323
|
tzero = time.perf_counter()
|
|
297
324
|
|
|
298
325
|
for mod in self.detectors:
|
|
299
|
-
|
|
300
|
-
|
|
326
|
+
if not (check_do_override and mod.override_grab_from_extension):
|
|
327
|
+
kwargs.update(dict(Naverage=mod.Naverage))
|
|
328
|
+
mod.command_hardware.emit(utils.ThreadCommand("single", kwargs))
|
|
301
329
|
|
|
302
330
|
while not self.det_done_flag:
|
|
303
331
|
# wait for grab done signals to end
|
|
@@ -307,6 +335,7 @@ class ModulesManager(QObject, ParameterManager):
|
|
|
307
335
|
self.timeout_signal.emit(True)
|
|
308
336
|
logger.error('Timeout Fired during waiting for data to be acquired')
|
|
309
337
|
break
|
|
338
|
+
QThread.msleep(10)
|
|
310
339
|
|
|
311
340
|
self.det_done_signal.emit(self.det_done_datas)
|
|
312
341
|
return self.det_done_datas
|
|
@@ -458,7 +487,7 @@ class ModulesManager(QObject, ParameterManager):
|
|
|
458
487
|
self.timeout_signal.emit(True)
|
|
459
488
|
logger.error('Timeout Fired during waiting for actuators to be moved')
|
|
460
489
|
break
|
|
461
|
-
QThread.msleep(
|
|
490
|
+
QThread.msleep(10)
|
|
462
491
|
|
|
463
492
|
self.move_done_signal.emit(self.move_done_positions)
|
|
464
493
|
return self.move_done_positions
|
|
@@ -165,41 +165,3 @@ class Scan1DSparse(Scan1DBase):
|
|
|
165
165
|
if len(self.actuators) == 1:
|
|
166
166
|
self.settings.child('parsed_string').setOpts(title=f'{self.actuators[0].title} Parsed string:')
|
|
167
167
|
|
|
168
|
-
try:
|
|
169
|
-
import adaptive
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
@ScannerFactory.register()
|
|
173
|
-
class Scan1DAdaptive(Scan1DBase):
|
|
174
|
-
|
|
175
|
-
scan_subtype = 'Adaptive'
|
|
176
|
-
params = [
|
|
177
|
-
{'title': 'Loss type', 'name': 'scan_loss', 'type': 'list',
|
|
178
|
-
'limits': ['default', 'curvature', 'uniform'], 'tip': 'Type of loss used by the algo. to determine next points'},
|
|
179
|
-
{'title': 'Start:', 'name': 'start', 'type': 'float', 'value': 0.},
|
|
180
|
-
{'title': 'Stop:', 'name': 'stop', 'type': 'float', 'value': 1.},
|
|
181
|
-
]
|
|
182
|
-
distribution = DataDistribution['spread']
|
|
183
|
-
|
|
184
|
-
def __init__(self, actuators: List['DAQ_Move'] = None, **_ignored):
|
|
185
|
-
super().__init__(actuators=actuators)
|
|
186
|
-
|
|
187
|
-
def set_scan(self):
|
|
188
|
-
self.axes_unique = [np.array([])]
|
|
189
|
-
self.axes_indexes = np.array([], dtype=int)
|
|
190
|
-
self.positions = np.array([self.settings['start'], self.settings['stop']])
|
|
191
|
-
|
|
192
|
-
def evaluate_steps(self) -> int:
|
|
193
|
-
return 1
|
|
194
|
-
|
|
195
|
-
def get_nav_axes(self) -> List[Axis]:
|
|
196
|
-
return [Axis(label=f'{self.actuators[0].mod_name} axis',
|
|
197
|
-
units=f'{self.actuators[0].units}',
|
|
198
|
-
data=self.positions[0])]
|
|
199
|
-
|
|
200
|
-
def get_scan_shape(self) -> Tuple[int]:
|
|
201
|
-
return len(self.positions),
|
|
202
|
-
|
|
203
|
-
except ModuleNotFoundError:
|
|
204
|
-
logger.info('adaptive module is not present, no adaptive scan possible')
|
|
205
|
-
|
|
@@ -286,61 +286,3 @@ class Scan2DSpiral(Scan2DLinear):
|
|
|
286
286
|
self.settings.child(ax, f'rmax_{ax}').setValue(
|
|
287
287
|
(coordinates[0, i] - coordinates[1, i]) / 2)
|
|
288
288
|
|
|
289
|
-
|
|
290
|
-
try:
|
|
291
|
-
import adaptive
|
|
292
|
-
|
|
293
|
-
@ScannerFactory.register()
|
|
294
|
-
class Scan2DAdaptive(Scan2DLinear):
|
|
295
|
-
scan_subtype = 'Adaptive'
|
|
296
|
-
|
|
297
|
-
params = [
|
|
298
|
-
{'title': 'Loss type', 'name': 'scan_loss', 'type': 'list',
|
|
299
|
-
'limits': ['default', 'curvature', 'uniform'],
|
|
300
|
-
'tip': 'Type of loss used by the algo. to determine next points'},
|
|
301
|
-
|
|
302
|
-
{'title': 'Ax1:', 'name': 'axis1', 'type': 'group',
|
|
303
|
-
'children':[
|
|
304
|
-
{'title': 'Start Ax1:', 'name': 'start_axis1', 'type': 'float',
|
|
305
|
-
'value': config('scan', 'scan2D', 'linear', 'start1')},
|
|
306
|
-
{'title': 'Stop Ax1:', 'name': 'stop_axis1', 'type': 'float',
|
|
307
|
-
'value': config('scan', 'scan2D', 'linear', 'stop1')},
|
|
308
|
-
{'title': 'Step Ax1:', 'name': 'step_axis1', 'type': 'float',
|
|
309
|
-
'value': config('scan', 'scan2D', 'linear', 'step1')},
|
|
310
|
-
]},
|
|
311
|
-
{'title': 'Ax2:', 'name': 'axis2', 'type': 'group',
|
|
312
|
-
'children':[
|
|
313
|
-
{'title': 'Start Ax2:', 'name': 'start_axis2', 'type': 'float',
|
|
314
|
-
'value': config('scan', 'scan2D', 'linear', 'start2')},
|
|
315
|
-
{'title': 'Stop Ax2:', 'name': 'stop_axis2', 'type': 'float',
|
|
316
|
-
'value': config('scan', 'scan2D', 'linear', 'stop2')},
|
|
317
|
-
{'title': 'Step Ax2:', 'name': 'step_axis2', 'type': 'float',
|
|
318
|
-
'value': config('scan', 'scan2D', 'linear', 'step2')},
|
|
319
|
-
]},
|
|
320
|
-
]
|
|
321
|
-
distribution = DataDistribution['spread']
|
|
322
|
-
|
|
323
|
-
def __init__(self, actuators: List['DAQ_Move'] = None, **_ignored):
|
|
324
|
-
super().__init__(actuators=actuators)
|
|
325
|
-
|
|
326
|
-
def set_scan(self):
|
|
327
|
-
|
|
328
|
-
self.axes_unique = [np.array([]), np.array([])]
|
|
329
|
-
self.axes_indexes = np.array([], dtype=int)
|
|
330
|
-
self.positions = np.zeros((0, 2))
|
|
331
|
-
|
|
332
|
-
def evaluate_steps(self) -> int:
|
|
333
|
-
return 1
|
|
334
|
-
|
|
335
|
-
def get_nav_axes(self) -> List[Axis]:
|
|
336
|
-
return [Axis(label=f'{act.mod_name} axis',
|
|
337
|
-
units=f'{act.units}',
|
|
338
|
-
data=self.positions[:, ind],
|
|
339
|
-
index=ind) for ind, act in enumerate(self.actuators)]
|
|
340
|
-
|
|
341
|
-
def get_scan_shape(self) -> Tuple[int]:
|
|
342
|
-
return () # unknown shape
|
|
343
|
-
|
|
344
|
-
except ModuleNotFoundError:
|
|
345
|
-
logger.info('adaptive module is not present, no adaptive scan possible')
|
|
346
|
-
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pymodaq
|
|
3
|
-
Version: 5.
|
|
3
|
+
Version: 5.1.0a0
|
|
4
4
|
Summary: Modular Data Acquisition with Python
|
|
5
5
|
Project-URL: Homepage, http://pymodaq.cnrs.fr
|
|
6
6
|
Project-URL: Source, https://github.com/PyMoDAQ/PyMoDAQ
|
|
@@ -43,14 +43,15 @@ Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
|
43
43
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
44
44
|
Classifier: Topic :: Software Development :: User Interfaces
|
|
45
45
|
Requires-Python: >=3.8
|
|
46
|
-
Requires-Dist:
|
|
46
|
+
Requires-Dist: adaptive
|
|
47
|
+
Requires-Dist: bayesian-optimization>=2.0
|
|
47
48
|
Requires-Dist: easydict
|
|
48
49
|
Requires-Dist: multipledispatch
|
|
49
50
|
Requires-Dist: numpy<2.0.0
|
|
50
51
|
Requires-Dist: packaging
|
|
51
52
|
Requires-Dist: pint
|
|
52
53
|
Requires-Dist: pyleco>0.3; python_version >= '3.8'
|
|
53
|
-
Requires-Dist: pymodaq-data>=5.0.
|
|
54
|
+
Requires-Dist: pymodaq-data>=5.0.21
|
|
54
55
|
Requires-Dist: pymodaq-gui>=5.0.17
|
|
55
56
|
Requires-Dist: pymodaq-plugin-manager>=0.0.17
|
|
56
57
|
Requires-Dist: pymodaq-plugins-mock>=5.0.5
|
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
pymodaq/__init__.py,sha256=VtSBaXkrFtgRchmQN2dIet1X88h9r9M6C8OCD9WZPy0,3250
|
|
2
|
-
pymodaq/dashboard.py,sha256=
|
|
2
|
+
pymodaq/dashboard.py,sha256=sxPAbpKEhzhb7Nat8y4YpWWDMHO_5LtiDv5wIdx_0eI,79493
|
|
3
3
|
pymodaq/icon.ico,sha256=hOHHfNDENKphQvG1WDleSEYcHukneR2eRFJu8isIlD4,74359
|
|
4
4
|
pymodaq/splash.png,sha256=ow8IECF3tPRUMA4tf2tMu1aRiMaxx91_Y2ckVxkrmF0,53114
|
|
5
5
|
pymodaq/updater.py,sha256=JMCVRgAXwmlrKxZv3837E-LRhF0F8V-td_wODwCoXaY,3821
|
|
6
6
|
pymodaq/control_modules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
-
pymodaq/control_modules/daq_move.py,sha256=
|
|
8
|
-
pymodaq/control_modules/daq_move_ui.py,sha256=
|
|
9
|
-
pymodaq/control_modules/daq_viewer.py,sha256=
|
|
10
|
-
pymodaq/control_modules/daq_viewer_ui.py,sha256=
|
|
11
|
-
pymodaq/control_modules/mocks.py,sha256=
|
|
12
|
-
pymodaq/control_modules/move_utility_classes.py,sha256=
|
|
13
|
-
pymodaq/control_modules/
|
|
14
|
-
pymodaq/control_modules/
|
|
7
|
+
pymodaq/control_modules/daq_move.py,sha256=naGTZCkc_-T8_v0nmnECt8lHlCEGIsO9vjZagfbRHkE,39600
|
|
8
|
+
pymodaq/control_modules/daq_move_ui.py,sha256=R8UZP7Hs0BKNIXcRDiXlSvV4CjdNBilGzxYKjDRzA4g,17112
|
|
9
|
+
pymodaq/control_modules/daq_viewer.py,sha256=GgrycoR9fBe44wHq7xNfxcmaPa9-vMLTEEBCv_2p3Vs,59688
|
|
10
|
+
pymodaq/control_modules/daq_viewer_ui.py,sha256=dyi9UPw9L_EKU8XTIztaqr0BtmOBQLdlBWeBaL77IP4,15757
|
|
11
|
+
pymodaq/control_modules/mocks.py,sha256=FWu9vEXyrjLLw3_cj2w4v1cEVja_c27UlsTHW_mDTA8,1962
|
|
12
|
+
pymodaq/control_modules/move_utility_classes.py,sha256=hM-6Tx2hC9sEU5MhXrckTnMdTepePV42AEbSvo1Ewuw,43736
|
|
13
|
+
pymodaq/control_modules/thread_commands.py,sha256=tI8flLDXBPmeH_Oasy8JEBqDKUqQtJONhLktUR89eJU,3401
|
|
14
|
+
pymodaq/control_modules/utils.py,sha256=ZJN4RXz7duInnmVLxgIH7OeYWdOqw3y3H_TO5n7fgUM,23741
|
|
15
|
+
pymodaq/control_modules/viewer_utility_classes.py,sha256=4hppWT0GhSMJ9BCl29cEYh_B0bOPxwvqwiZtz81eU9U,27836
|
|
15
16
|
pymodaq/daq_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
17
|
pymodaq/daq_utils/daq_utils.py,sha256=hRfW9IhpJnrDlBgC4cxtaMl41DTgbBAT8YrMFK5OAgY,248
|
|
17
18
|
pymodaq/examples/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
18
19
|
pymodaq/examples/function_plotter.py,sha256=z9zjvs35nwuq_Ux-EeKv4mELfVCWr1QqQG8F_AFctlk,6109
|
|
19
20
|
pymodaq/examples/nonlinearscanner.py,sha256=x0R2_FP0YnuOCCAmYRiAiZ1jfUdRxu5RqIYLyGQMZ0U,3790
|
|
20
|
-
pymodaq/examples/qt_less_standalone_module.py,sha256=
|
|
21
|
+
pymodaq/examples/qt_less_standalone_module.py,sha256=ybXwimRybtUPx-HjubqVDRb9twZGP8GdLf9P3jdhv_w,6431
|
|
21
22
|
pymodaq/examples/tcp_client.py,sha256=AGkLR307r11YmPej4e8WMXwAOuXpDcqeMCrWo1whiKw,2583
|
|
22
23
|
pymodaq/examples/Labview_TCP_Client/DAQ_TCP_Client.aliases,sha256=t0eKH9Uq_AMk4wQ-6Pm5mKUjGcCvfT9GtvMsvDhkCUk,47
|
|
23
24
|
pymodaq/examples/Labview_TCP_Client/DAQ_TCP_Client.lvlps,sha256=VZHH96rKSnRYKeCAXUmKI3vQOX8Wz53FYCF2yXuqnaU,84
|
|
@@ -34,26 +35,40 @@ pymodaq/examples/Labview_TCP_Client/DAQ_TCP_send_scalar.vi,sha256=uYnMjYMQdfQqRu
|
|
|
34
35
|
pymodaq/examples/Labview_TCP_Client/DAQ_TCP_send_string.vi,sha256=hdHU78daP5EOrX-co1TofhMLcKMQ9ODGXKcFx_IScGM,19791
|
|
35
36
|
pymodaq/examples/Labview_TCP_Client/client_state.ctl,sha256=IxYi5Og0QXFB1e0VeBL23sIOYOCImf7uMzitIuPlagw,4293
|
|
36
37
|
pymodaq/examples/Labview_TCP_Client/cmd_types.ctl,sha256=gwuDyGcte11Zqx0C-U8ljRyYCQleUPh18MYqg9GtxPg,4618
|
|
37
|
-
pymodaq/extensions/__init__.py,sha256=
|
|
38
|
+
pymodaq/extensions/__init__.py,sha256=FKNTIdvIz3ZL_CQ30WqSY3oeLhsQUhjdMMQsklCm5kI,569
|
|
38
39
|
pymodaq/extensions/console.py,sha256=kkuHHog_a2Y_5cYrAFTD7IGRQ4BA4NBQz4hrwFYanQY,2277
|
|
39
|
-
pymodaq/extensions/daq_scan.py,sha256=
|
|
40
|
+
pymodaq/extensions/daq_scan.py,sha256=rgwzKi6fEa4KCSpluWT7oF15-2gGfNv9E5xw5n0CMSE,50151
|
|
40
41
|
pymodaq/extensions/daq_scan_ui.py,sha256=kKcXu2tNo-VJR7GQPNEXxMKiKitA4F3a_tOSamalWh0,10052
|
|
41
|
-
pymodaq/extensions/h5browser.py,sha256=
|
|
42
|
-
pymodaq/extensions/utils.py,sha256=
|
|
43
|
-
pymodaq/extensions/
|
|
44
|
-
pymodaq/extensions/
|
|
45
|
-
pymodaq/extensions/
|
|
42
|
+
pymodaq/extensions/h5browser.py,sha256=ORGs9OAy2Ju8sh8CoMMcWTkU842-qbVoAYVS0FTmfVM,261
|
|
43
|
+
pymodaq/extensions/utils.py,sha256=t8GsYAR9KJkqf6edeUIdW__qq3gEKNgvmpmJUPjhcA8,3425
|
|
44
|
+
pymodaq/extensions/adaptive/__init__.py,sha256=F5ICFuIqsEYElJnxWVQWDHrmf_c63ozP7FkqBvWEBWA,55
|
|
45
|
+
pymodaq/extensions/adaptive/adaptive_optimization.py,sha256=-4d3zjmJ9frebfUbEwrwAxbN479q4y3-NdP59_0sskg,6126
|
|
46
|
+
pymodaq/extensions/adaptive/utils.py,sha256=JYkthq6g1Y0IGeVl4u5TM9ombCIzF0zKJPSgh_qf2kU,3141
|
|
47
|
+
pymodaq/extensions/adaptive/loss_function/_1d_loss_functions.py,sha256=pyF5PfgIre7Fb4cYn_xAUn3PFILHnLIu-fDsn7JS94E,2211
|
|
48
|
+
pymodaq/extensions/adaptive/loss_function/_2d_loss_functions.py,sha256=C-RqndH_rtMwui0aglAldcitiQhROnIRPCCtwZVVkns,2629
|
|
49
|
+
pymodaq/extensions/adaptive/loss_function/__init__.py,sha256=2AABp8AsD4gZgC7Uc0WPmMlC6k2ODxT1Mw7RGRsUOK0,174
|
|
50
|
+
pymodaq/extensions/adaptive/loss_function/loss_factory.py,sha256=mnCGv3_MRhqnUbSFCXbwoHdC3LYAnfEyWGoqKQhuSyE,3360
|
|
51
|
+
pymodaq/extensions/bayesian/__init__.py,sha256=tXqDKqmxFd2rs9CNuWt4xl4xCb-gqMDeNnqkvJf6zuo,55
|
|
52
|
+
pymodaq/extensions/bayesian/bayesian_optimization.py,sha256=4L-9Jdv6FYJ24J-O5nVvRJYJK0ArDiQc-Mnp_64Skbo,4381
|
|
53
|
+
pymodaq/extensions/bayesian/utils.py,sha256=uDsZp8by5BhjnL26DQpYhYbZK6VmGBfZhDPPepIF_t4,5007
|
|
54
|
+
pymodaq/extensions/bayesian/acquisition/__init__.py,sha256=7L8o3cd1o5WiRKi73tSIGaHYPxsS8s51OgrsPgFKWVY,235
|
|
55
|
+
pymodaq/extensions/bayesian/acquisition/acquisition_function_factory.py,sha256=FshW5rrpOe-p1UtT35YlmpcRQ8zS9oLrzj3JUM3Nty8,2116
|
|
56
|
+
pymodaq/extensions/bayesian/acquisition/base_acquisition_function.py,sha256=28AID0pTDgWk0KVxic8Ok6kJIbX54bp6YdzDFzdzXog,4064
|
|
46
57
|
pymodaq/extensions/daq_logger/__init__.py,sha256=u-W6S5KmVKjOuRLbpnM0bqn9vCiJjW97RpW7iaKssKM,28
|
|
47
58
|
pymodaq/extensions/daq_logger/abstract.py,sha256=I-t-2nSIVHHUfHJ-3IoqsuULZiIsXRe4saotaEL3-Fk,1095
|
|
48
|
-
pymodaq/extensions/daq_logger/daq_logger.py,sha256=
|
|
49
|
-
pymodaq/extensions/daq_logger/h5logging.py,sha256=
|
|
59
|
+
pymodaq/extensions/daq_logger/daq_logger.py,sha256=z8A-cNby-NiZmTQnO3xL_TJiLlFZEsQn4mc3jF5BNOA,18275
|
|
60
|
+
pymodaq/extensions/daq_logger/h5logging.py,sha256=qWxt6SOf9jlB6hgj4gNUjpkXwsdkyj5zmhbkNUxRMjs,2427
|
|
50
61
|
pymodaq/extensions/daq_logger/db/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
51
62
|
pymodaq/extensions/daq_logger/db/db_logger.py,sha256=E607KSCloojpAa9QObhaLAe1tKfh0qEkDLrafElM8rc,10460
|
|
52
63
|
pymodaq/extensions/daq_logger/db/db_logger_models.py,sha256=r9672aG8vUPqtHq6gFSuIFP-7hf8HhJavsRZrYo20Ns,3461
|
|
64
|
+
pymodaq/extensions/optimizers_base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
65
|
+
pymodaq/extensions/optimizers_base/optimizer.py,sha256=bkUpC9UWd7eJ2NQrtHw5aRtpwbxFS5mc1Ur0IFGx8IM,33842
|
|
66
|
+
pymodaq/extensions/optimizers_base/thread_commands.py,sha256=R211R1BFirVHWVmdKX6NqeIbV1Sl_CArF9n5xGF1NxY,370
|
|
67
|
+
pymodaq/extensions/optimizers_base/utils.py,sha256=AEniQpw17AA0QSc0luB6_s9_91NhJys6EXm5MEm87qk,13497
|
|
53
68
|
pymodaq/extensions/pid/__init__.py,sha256=tHegjXR1MZ3XHdFTpzYasFIzMxjkNUL-986DKLagAXs,517
|
|
54
69
|
pymodaq/extensions/pid/actuator_controller.py,sha256=SOE2GjevbqxqxXewW0DMgoqNL_0CaPdNLjyKNc6ULKI,377
|
|
55
70
|
pymodaq/extensions/pid/daq_move_PID.py,sha256=9q-lMVkS_yBNy0xyAhCWfreKGCOqIBt-LjReKpvNKrA,2146
|
|
56
|
-
pymodaq/extensions/pid/pid_controller.py,sha256=
|
|
71
|
+
pymodaq/extensions/pid/pid_controller.py,sha256=gpBm8UEI85FoVIUPTLTbiA_El8O_xGNgqjnUVtsmHIw,28934
|
|
57
72
|
pymodaq/extensions/pid/utils.py,sha256=C1QrfDiyTzq_tkSp3LHzxlTInuGj2KtxLE97-TEiwK0,7182
|
|
58
73
|
pymodaq/post_treatment/__init__.py,sha256=xaaLFZJ7OLqI_7yPurFk89A7m2ywSbYDXAsdE-QQ8Zg,81
|
|
59
74
|
pymodaq/post_treatment/load_and_plot.py,sha256=fmaBfdlM6WiFSAPuJxuN5W03JLr9MTn0DJMUsPfmkyg,13920
|
|
@@ -67,29 +82,28 @@ pymodaq/utils/chrono_timer.py,sha256=uBVtV3AW-m-fnHlMYgm1qYiuBpREdL1A93yJG78VAiM
|
|
|
67
82
|
pymodaq/utils/config.py,sha256=w0EkWEvUbLCq7nTNZQccaMWVILuFaGW1JsIgX3VIKKc,1155
|
|
68
83
|
pymodaq/utils/conftests.py,sha256=3Ak8WEpa3EhAp73Yb1LLq8YFONhPqiL7gG9eSDIoTNc,58
|
|
69
84
|
pymodaq/utils/daq_utils.py,sha256=AJIA6PTDKe2nzoL0hgSJRWA5PYhKwZsBKfpPh0QkoTc,6131
|
|
70
|
-
pymodaq/utils/data.py,sha256=
|
|
85
|
+
pymodaq/utils/data.py,sha256=Or2MdZjKAo18W025Pd1hqjUCZ9FeqPWurcBjY0Nllks,4429
|
|
71
86
|
pymodaq/utils/enums.py,sha256=9PzGPsPN_6Wl9Pm0uV66-KByPsfpV2Coi5193kNVmII,233
|
|
72
87
|
pymodaq/utils/exceptions.py,sha256=xWORkqBplDEKI3t5N4LEYPlowlxIs9E007AtYe4E8Y4,627
|
|
73
88
|
pymodaq/utils/logger.py,sha256=6x5BPpWXw1zW2M7F4lRGIOP2TtnqJHz2m7XSqI8g0u0,293
|
|
74
89
|
pymodaq/utils/math_utils.py,sha256=uBnk15-O2ucoF0dH-f41HqQYWIFsqNdkCb7AngwN8BI,248
|
|
75
90
|
pymodaq/utils/messenger.py,sha256=T-RjQtx6Hz4F96TvOL61jomKjfqmNa_FdnGvvpQFfe0,246
|
|
76
91
|
pymodaq/utils/gui_utils/__init__.py,sha256=MUGjejjsXUzTtDTqDzaQTL9W8Sc850ZZxYBlJn6xlxg,539
|
|
77
|
-
pymodaq/utils/gui_utils/loader_utils.py,sha256=
|
|
92
|
+
pymodaq/utils/gui_utils/loader_utils.py,sha256=2HLL_pqJgN8SxwEDGPF7MhWV-7-4asm3EtuuCrMDpz0,2191
|
|
78
93
|
pymodaq/utils/gui_utils/utils.py,sha256=0FbuHR-3glsZZO_Lye-h470y9TNuFMcVMJkMF_euzoQ,494
|
|
79
94
|
pymodaq/utils/gui_utils/widgets/lcd.py,sha256=x7uUPO_JSJX6ZkIa3xvdVFC898G2e3wvPUsATOs3iik,306
|
|
80
95
|
pymodaq/utils/h5modules/__init__.py,sha256=daEdpEyAJIa8b2VkCqSKcw8PaExcB6Qro80XNes_sHA,2
|
|
81
|
-
pymodaq/utils/h5modules/module_saving.py,sha256=
|
|
96
|
+
pymodaq/utils/h5modules/module_saving.py,sha256=bA7_OHOk7Z1jzsEdk1lt_juMjpbEPPhbNsP7f0_rQJo,18074
|
|
82
97
|
pymodaq/utils/leco/__init__.py,sha256=PVxGVZx5uHCsZmFWrVTkVX1lE5C2V95bKBj0vK9KZQU,878
|
|
83
|
-
pymodaq/utils/leco/daq_move_LECODirector.py,sha256=
|
|
84
|
-
pymodaq/utils/leco/daq_xDviewer_LECODirector.py,sha256=
|
|
85
|
-
pymodaq/utils/leco/
|
|
86
|
-
pymodaq/utils/leco/
|
|
87
|
-
pymodaq/utils/leco/
|
|
88
|
-
pymodaq/utils/leco/
|
|
89
|
-
pymodaq/utils/leco/utils.py,sha256=RX24FFidWqyDOwqv-E9uO06vBeTdu5ZBZWXQQa995tI,2605
|
|
98
|
+
pymodaq/utils/leco/daq_move_LECODirector.py,sha256=Q6qiC1Mo8UQc2nxQ-TmjFWZX0kC2DUqTQCO_HuLivq8,6794
|
|
99
|
+
pymodaq/utils/leco/daq_xDviewer_LECODirector.py,sha256=oUTQtaYB957ZeQVag_SVBmD2hinZtmpkJkhTTJjewKo,4510
|
|
100
|
+
pymodaq/utils/leco/director_utils.py,sha256=rvkz5qL7Bu84LcaZ6H51pk2AeWKdO-nKgpICZo8xNh8,2493
|
|
101
|
+
pymodaq/utils/leco/leco_director.py,sha256=16S3TttCrJj-AYXz2Fs6HM7PdKsk5tOSz2IteRiOz8o,4621
|
|
102
|
+
pymodaq/utils/leco/pymodaq_listener.py,sha256=-Bd7X223jZapGKG5tNWY3oO8Li9-KNi_mb1jjeN3tA0,12550
|
|
103
|
+
pymodaq/utils/leco/utils.py,sha256=vXhEPWNyA_xhKUujIz492li4oMcCV1XGHO0Kys9yay0,2648
|
|
90
104
|
pymodaq/utils/managers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
91
105
|
pymodaq/utils/managers/batchscan_manager.py,sha256=rhz2qeVfePX0h8sjIY1tHQckIHIxKhH-zOIzvM0_1Ag,13666
|
|
92
|
-
pymodaq/utils/managers/modules_manager.py,sha256=
|
|
106
|
+
pymodaq/utils/managers/modules_manager.py,sha256=NojlLFP25mPQBiw_6E4TV3VJMZ_1i9pEKbG9KzQfSPY,22191
|
|
93
107
|
pymodaq/utils/managers/overshoot_manager.py,sha256=df_0cpvU5BxUvVqrWXuBFWyHSs9i_2NwLFjFsIOcBOA,9055
|
|
94
108
|
pymodaq/utils/managers/preset_manager.py,sha256=JlndG8eWbqhU4ijiLsvBqAVIkSkCY5wpG8kPjlHXV5I,8014
|
|
95
109
|
pymodaq/utils/managers/preset_manager_utils.py,sha256=3tmhxMKJnYA-SRPumPtdrx-3t7tyTnNr0Z7GFVN_z28,8269
|
|
@@ -102,8 +116,8 @@ pymodaq/utils/scanner/scan_factory.py,sha256=fu4kQrAoYsXeVg1VlHT2cyLZTuCQBJcz6X9
|
|
|
102
116
|
pymodaq/utils/scanner/scan_selector.py,sha256=uu55xcijjg1fcvF59VVbtRLzXLoxb_3klEJPLiAuyws,16319
|
|
103
117
|
pymodaq/utils/scanner/scanner.py,sha256=QxQwkkGpJvBfaoUQHGX6EK2EbIQGQFj47qBd8VQ7A0k,10898
|
|
104
118
|
pymodaq/utils/scanner/utils.py,sha256=YjjrWWKs9q_OgP5xK277IyEsMqp15qFxU19kQ8f5R-c,3680
|
|
105
|
-
pymodaq/utils/scanner/scanners/_1d_scanners.py,sha256=
|
|
106
|
-
pymodaq/utils/scanner/scanners/_2d_scanners.py,sha256=
|
|
119
|
+
pymodaq/utils/scanner/scanners/_1d_scanners.py,sha256=SAi3y6YWgoiAQetX6d_LzcjLKQG0qFPSeRDdPtB8wTY,6410
|
|
120
|
+
pymodaq/utils/scanner/scanners/_2d_scanners.py,sha256=bMHONCGUTWzVEwHLnzWzoWUmr8Klce8k1_7eitK6mRU,11415
|
|
107
121
|
pymodaq/utils/scanner/scanners/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
108
122
|
pymodaq/utils/scanner/scanners/sequential.py,sha256=X0slsfHCqid7N0Kj6EVeV8gStljlow2rZxPpRqj5VB4,8053
|
|
109
123
|
pymodaq/utils/scanner/scanners/tabular.py,sha256=QPwW1kmJQY2YK4-clYd3r3Loolk3QYrkR2RqMIrrEvc,12752
|
|
@@ -115,8 +129,8 @@ pymodaq/utils/tcp_ip/__init__.py,sha256=1e_EK0AgvdoLAD_CSGGEaITZdy6OWCO7ih9IAIp7
|
|
|
115
129
|
pymodaq/utils/tcp_ip/mysocket.py,sha256=03FaQskso8nLLAsN-ijX-RazXbeMezRnAPvsRxTQa4k,326
|
|
116
130
|
pymodaq/utils/tcp_ip/serializer.py,sha256=Bp6ZpGqMdZlX4CnT371d7ZYqIp7UygsRsE9XFkWZrto,400
|
|
117
131
|
pymodaq/utils/tcp_ip/tcp_server_client.py,sha256=eL-Q1HnnaAG8wfTUb9unEIiNFApMXzfzfveUWoC0_mg,30657
|
|
118
|
-
pymodaq-5.
|
|
119
|
-
pymodaq-5.
|
|
120
|
-
pymodaq-5.
|
|
121
|
-
pymodaq-5.
|
|
122
|
-
pymodaq-5.
|
|
132
|
+
pymodaq-5.1.0a0.dist-info/METADATA,sha256=dF6vCQQ_PlIczb2f4_VBZo9YdCVxnjt-XoBfgbhMNBg,12903
|
|
133
|
+
pymodaq-5.1.0a0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
134
|
+
pymodaq-5.1.0a0.dist-info/entry_points.txt,sha256=fklDvGhc2k7ZCBhFXTFADdH3FQ0mFOlrQ-xUvJwgllE,286
|
|
135
|
+
pymodaq-5.1.0a0.dist-info/licenses/LICENSE,sha256=VKOejxexXAe3XwfhAhcFGqeXQ12irxVHdeAojZwFEI8,1108
|
|
136
|
+
pymodaq-5.1.0a0.dist-info/RECORD,,
|
|
@@ -4,6 +4,4 @@ daq_move = pymodaq.control_modules.daq_move:main
|
|
|
4
4
|
daq_scan = pymodaq.extensions.daq_scan:main
|
|
5
5
|
daq_viewer = pymodaq.control_modules.daq_viewer:main
|
|
6
6
|
dashboard = pymodaq.dashboard:main
|
|
7
|
-
h5browser = pymodaq.extensions.h5browser:main
|
|
8
|
-
parameter_example = pymodaq.examples.parameter_ex:main
|
|
9
7
|
pymodaq_updater = pymodaq.updater:main
|
pymodaq/utils/leco/desktop.ini
DELETED
|
File without changes
|
|
File without changes
|