pymodaq 4.2.1__py3-none-any.whl → 4.2.3__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.

@@ -26,7 +26,7 @@ from pymodaq.control_modules.daq_move_ui import DAQ_Move_UI, ThreadCommand
26
26
  from pymodaq.control_modules.move_utility_classes import MoveCommand, DAQ_Move_base
27
27
  from pymodaq.control_modules.move_utility_classes import params as daq_move_params
28
28
  from pymodaq.utils import daq_utils as utils
29
- from pymodaq.utils.parameter import Parameter, utils as putils
29
+ from pymodaq.utils.parameter import utils as putils
30
30
  from pymodaq.utils.gui_utils import get_splash_sc
31
31
  from pymodaq.utils import config as config_mod
32
32
  from pymodaq.utils.exceptions import ActuatorError
@@ -34,6 +34,7 @@ from pymodaq.utils.messenger import deprecation_msg
34
34
  from pymodaq.utils.h5modules import module_saving
35
35
  from pymodaq.utils.data import DataRaw, DataToExport, DataFromPlugins, DataActuator
36
36
  from pymodaq.utils.h5modules.backends import Node
37
+ from pymodaq.utils.parameter import ioxml, Parameter
37
38
 
38
39
  from pymodaq.utils.leco.pymodaq_listener import MoveActorListener, LECOMoveCommands
39
40
 
@@ -596,6 +597,14 @@ class DAQ_Move(ParameterControlModule):
596
597
  self._send_to_tcpip = True
597
598
  self.command_hardware.emit(ThreadCommand('get_actuator_value', ))
598
599
 
600
+ elif status.command == 'set_info':
601
+ path_in_settings = status.attribute[0]
602
+ param_as_xml = status.attribute[1]
603
+ param_dict = ioxml.XML_string_to_parameter(param_as_xml)[0]
604
+ param_tmp = Parameter.create(**param_dict)
605
+ param = self.settings.child('move_settings', *path_in_settings[1:])
606
+ param.restoreState(param_tmp.saveState())
607
+
599
608
 
600
609
  class DAQ_Move_Hardware(QObject):
601
610
  """
@@ -1106,6 +1106,14 @@ class DAQ_Viewer(ParameterControlModule):
1106
1106
  elif status.command == LECOClientCommands.LECO_DISCONNECTED:
1107
1107
  self.settings.child('main_settings', 'leco', 'leco_connected').setValue(False)
1108
1108
 
1109
+ elif status.command == 'set_info':
1110
+ path_in_settings = status.attribute[0]
1111
+ param_as_xml = status.attribute[1]
1112
+ param_dict = ioxml.XML_string_to_parameter(param_as_xml)[0]
1113
+ param_tmp = Parameter.create(**param_dict)
1114
+ param = self.settings.child('detector_settings', *path_in_settings[1:])
1115
+ param.restoreState(param_tmp.saveState())
1116
+
1109
1117
  elif status.command == 'get_axis':
1110
1118
  raise DeprecationWarning('Do not use this, the axis are in the data objects')
1111
1119
  self.command_hardware.emit(
@@ -22,6 +22,7 @@ from pymodaq.utils.plotting.data_viewers import ViewersEnum
22
22
  from pymodaq.utils.exceptions import DetectorError
23
23
  from pymodaq.utils import config as configmod
24
24
  from pymodaq.utils.leco.pymodaq_listener import ActorListener, LECOClientCommands, LECOCommands
25
+ from pymodaq.utils.logger import get_base_logger
25
26
 
26
27
 
27
28
  class DAQTypesEnum(BaseEnum):
@@ -294,7 +295,7 @@ class ControlModule(QObject):
294
295
  def show_log(self):
295
296
  """Open the log file in the default text editor"""
296
297
  import webbrowser
297
- webbrowser.open(self.logger.parent.handlers[0].baseFilename)
298
+ webbrowser.open(get_base_logger(self.logger).handlers[0].baseFilename)
298
299
 
299
300
  def show_config(self, config: Config) -> Config:
300
301
  """ Display in a tree the current configuration"""
@@ -480,12 +481,6 @@ class ParameterControlModule(ParameterManager, ControlModule):
480
481
  elif status.command == 'Update_Status':
481
482
  self.thread_status(status)
482
483
 
483
- elif status.command == 'set_info':
484
- param_dict = ioxml.XML_string_to_parameter(status.attribute[1])[0]
485
- param_tmp = Parameter.create(**param_dict)
486
- param = self.settings.child('move_settings', *status.attribute[0][1:])
487
-
488
- param.restoreState(param_tmp.saveState())
489
484
  else:
490
485
  # not handled
491
486
  return status
pymodaq/resources/VERSION CHANGED
@@ -1 +1 @@
1
- version = '4.2.1'
1
+ version = '4.2.3'
pymodaq/utils/logger.py CHANGED
@@ -66,6 +66,12 @@ def set_logger(logger_name, add_handler=False, base_logger=False, add_to_console
66
66
  return logger
67
67
 
68
68
 
69
+ def get_base_logger(logger: logging.Logger) -> logging.Logger:
70
+ while logger.name != 'pymodaq':
71
+ logger = logger.parent
72
+ return logger
73
+
74
+
69
75
  def get_module_name(module__file__path):
70
76
  """from the full path of a module extract its name"""
71
77
  path = Path(module__file__path)
@@ -119,7 +119,9 @@ class PresetManager:
119
119
  for param, change, data in changes:
120
120
  path = self.preset_params.childPath(param)
121
121
  if change == 'childAdded':
122
- data[0].child('params', 'main_settings', 'module_name').setValue(data[0].child('name').value())
122
+ if len(data) > 1:
123
+ if 'params' in data[0].children():
124
+ data[0].child('params', 'main_settings', 'module_name').setValue(data[0].child('name').value())
123
125
 
124
126
  elif change == 'value':
125
127
 
@@ -650,11 +650,12 @@ class View2D(ActionManager, QtCore.QObject):
650
650
  self.ROIselect.setSize(rect.size() * 2 / 3)
651
651
 
652
652
  def set_image_labels(self, labels: List[str]):
653
- action_names =['red', 'green', 'blue']
654
- for action_name, label in zip(action_names[:len(labels)], labels):
655
- self.get_action(action_name).setToolTip(f'{self.get_action(action_name).toolTip()}'
656
- f' - '
657
- f'{label}')
653
+ if self.data_displayer.labels != labels:
654
+ action_names =['red', 'green', 'blue']
655
+ for action_name, label in zip(action_names[:len(labels)], labels):
656
+ self.get_action(action_name).setToolTip('Show/Hide'
657
+ f' - '
658
+ f'{label}')
658
659
 
659
660
  def set_axis_label(self, position, label='', units=''):
660
661
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: pymodaq
3
- Version: 4.2.1
3
+ Version: 4.2.3
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
@@ -3,13 +3,13 @@ pymodaq/dashboard.py,sha256=4JK_I5M_KbGTyw18ws5cA9NwRersn7yAj_g6u2Ud4LA,64575
3
3
  pymodaq/icon.ico,sha256=hOHHfNDENKphQvG1WDleSEYcHukneR2eRFJu8isIlD4,74359
4
4
  pymodaq/splash.png,sha256=ow8IECF3tPRUMA4tf2tMu1aRiMaxx91_Y2ckVxkrmF0,53114
5
5
  pymodaq/control_modules/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
6
- pymodaq/control_modules/daq_move.py,sha256=ygtVvhZHjfMYUmIASnpMppdESnEVg46PeYpuom1sn8o,34532
6
+ pymodaq/control_modules/daq_move.py,sha256=SOj8zsaN8xlAJzvxLao_f9Op0JhZ4eLJXH1GUAW8DnE,34977
7
7
  pymodaq/control_modules/daq_move_ui.py,sha256=sviVOHASH4zjCIfhWzh42v35_n4JaUwUh-t5dFzQBo4,14530
8
- pymodaq/control_modules/daq_viewer.py,sha256=E9DDC8LaOZsxciEo05CTfBp8zXmc-_N017l00e836lc,57316
8
+ pymodaq/control_modules/daq_viewer.py,sha256=iNN5iEsuTdxB8sxjL4FtrRth_Cj5rDHrTt32SpLg7oM,57723
9
9
  pymodaq/control_modules/daq_viewer_ui.py,sha256=FWP3jdIOR9vTgYqNaaodteGZ3dwgQ1GdWKrOpOAuSrs,15693
10
10
  pymodaq/control_modules/mocks.py,sha256=hh_xSWp9g1UV3NAQVD9Ft9tNWfTsSvKU0OU0trgzP2w,1956
11
11
  pymodaq/control_modules/move_utility_classes.py,sha256=8ePiQUQ7AEBnhn4CjWPjMmo10yLznGHF9-s28OzYWGg,33382
12
- pymodaq/control_modules/utils.py,sha256=-_qU8HeFzWpO4dBK3jZLijDziU_vT8yGwGyxchycnC8,20272
12
+ pymodaq/control_modules/utils.py,sha256=5YdSwq_lFJm7IalYWe_Hn1U4LUoUmo1gedvV9UguU0Y,20016
13
13
  pymodaq/control_modules/viewer_utility_classes.py,sha256=XHL0UOi9rfDezyePaiBhh4KiAH0qeogo3AipA9ei2O8,26509
14
14
  pymodaq/examples/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
15
  pymodaq/examples/custom_app.py,sha256=2wQR0hlPWjZrWK0abNF6ASv8iQyJqRn2CKnBa_nAgN4,10452
@@ -57,7 +57,7 @@ pymodaq/post_treatment/daq_measurement/daq_measurement_GUI.py,sha256=1u7hWDaiwsZ
57
57
  pymodaq/post_treatment/daq_measurement/daq_measurement_GUI.ui,sha256=PyzbCWPMkh5oIYYteZczXyWMeHKW9EJmM1QlzXhnyTk,7037
58
58
  pymodaq/post_treatment/daq_measurement/daq_measurement_main.py,sha256=CAKwcWMOD86aXB8mbdxOK7e8nZRos5d59FzDtqK1QoY,17093
59
59
  pymodaq/post_treatment/daq_measurement/process_from_QtDesigner_DAQ_Measurement_GUI.bat,sha256=e1tu2A67MS9fk3jhriF6saQgRxWIucIvNW92iWXFP6E,164
60
- pymodaq/resources/VERSION,sha256=LZhtkok-oyHA3GTsvtmeXY2B-RoU-3gcS1fD8t7PUQ4,17
60
+ pymodaq/resources/VERSION,sha256=-eqsm_sBWz4JP_b05Cj0u7ghujuS7ZINWWMe8JioixI,18
61
61
  pymodaq/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
62
  pymodaq/resources/config_template.toml,sha256=klU5XH_2DBkF8QLIS-ZBQZCKfhwnrxyQHoG2meCEmEA,2889
63
63
  pymodaq/resources/preset_default.xml,sha256=Dt8iWLwPPOPtcG00JCVP-mh-G7KC6B0YN8hd8RQdnNI,27256
@@ -309,7 +309,7 @@ pymodaq/utils/data.py,sha256=XCk4oFWXvkIEloHSQruXvs27vHTnNJBZcpK8l6QYm9Y,105709
309
309
  pymodaq/utils/enums.py,sha256=wpRipioUJkKcEfoaY2NrDQ2WhGxZTZiZoJty5f2Ljpc,2236
310
310
  pymodaq/utils/exceptions.py,sha256=wLO6VlofzfwWkOOWMN2B-3NEWMfpgygyeEdakIx_rAs,668
311
311
  pymodaq/utils/factory.py,sha256=QLqAPFnTZ93eUpmAAIr7kESDk2enD57RNSuFUsjxE4E,2311
312
- pymodaq/utils/logger.py,sha256=JPaLBeu5NAd_5xvkzj4BRviLqXgFlu7b7B8ADfE7-L8,2604
312
+ pymodaq/utils/logger.py,sha256=VxymWeeS38VjNre3wjY_lBv06ynstPyI5JrFNgo4PXc,2754
313
313
  pymodaq/utils/math_utils.py,sha256=ydLPe25bQBeR0cI5QcEYgun-lXxycVD9nZLpHA-fFYo,18170
314
314
  pymodaq/utils/messenger.py,sha256=N5SPc9NomIGtK0TihQ0oq9evlxyWNYELWfpr2s8PoWw,2072
315
315
  pymodaq/utils/qvariant.py,sha256=iIBp-DDk5OVBIEqX5SwqwrJyy5t2cRgFFyfgvxQOHqM,311
@@ -364,7 +364,7 @@ pymodaq/utils/managers/batchscan_manager.py,sha256=jcL08YvFafX5kiy03BV1_6obt2Xog
364
364
  pymodaq/utils/managers/modules_manager.py,sha256=RKpt1RU0VrELBPmTAlLB_B5k-5KX7deHnequgOFfYKk,20821
365
365
  pymodaq/utils/managers/overshoot_manager.py,sha256=fe_CR1Bkw85BER34MoVFlm-xtKl9Hr9bkf2nyaz9hXg,7158
366
366
  pymodaq/utils/managers/parameter_manager.py,sha256=s06ja77XrE8C6ksVT4pf1dBpKaA2b1eB4XT2fLvdJeo,11484
367
- pymodaq/utils/managers/preset_manager.py,sha256=u_gssDcJ-z6oj9Wyrppt1H-FW9pbeihxA8jU00hEFpM,8205
367
+ pymodaq/utils/managers/preset_manager.py,sha256=2cb4m_TqZ8DEvYVxM_4jdNOrhSeite84_3ka3DU2aY4,8302
368
368
  pymodaq/utils/managers/preset_manager_utils.py,sha256=d148YBjeNOP9FTkFoTsfdRDxMIXOR8JJHqbOmoL2aVA,8155
369
369
  pymodaq/utils/managers/remote_manager.py,sha256=H6k9aiBkuJRJbZ4rpd5jfawQ-pMRFAXOE_miakvciP8,22251
370
370
  pymodaq/utils/managers/roi_manager.py,sha256=j6HUd4XwNZ6UhBs4nZ_z2iU74pJiHfMzzDBmQBLi7nY,29064
@@ -396,7 +396,7 @@ pymodaq/utils/plotting/data_viewers/viewer.py,sha256=NjYzOdKE17BDhYJROfLkCU2vwiO
396
396
  pymodaq/utils/plotting/data_viewers/viewer0D.py,sha256=jFYdz_JroGpKwDLUv6gpX3-GvRQK5Det8jev_X3ItZc,11608
397
397
  pymodaq/utils/plotting/data_viewers/viewer1D.py,sha256=IjU4u5ATZCqsvQMwyOQsuMZkfwpbmCmzBR39YIjZcyU,32083
398
398
  pymodaq/utils/plotting/data_viewers/viewer1Dbasic.py,sha256=u91tVhmi_WIlVa8areapb0xWu0NOr5pVRLMylY_in7g,7432
399
- pymodaq/utils/plotting/data_viewers/viewer2D.py,sha256=ivebdhJ4fR5Yv_rXZLntMojv5D_wRRqRvECBUCzDItg,46166
399
+ pymodaq/utils/plotting/data_viewers/viewer2D.py,sha256=M0Fb3wJ18OSz57edENXZUtpA6auAgO1QczK25-ULlH8,46203
400
400
  pymodaq/utils/plotting/data_viewers/viewer2D_basic.py,sha256=aRLu8JVZZI8PH6Lxl8oITpHwUXaUY3PyLW6eHzkf76o,5588
401
401
  pymodaq/utils/plotting/data_viewers/viewerND.py,sha256=NrEPrFcE-UxuC95l5W258YqrP58-4WvTg2H80wfucaA,38531
402
402
  pymodaq/utils/plotting/items/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -431,8 +431,8 @@ pymodaq/utils/tcp_ip/__init__.py,sha256=1e_EK0AgvdoLAD_CSGGEaITZdy6OWCO7ih9IAIp7
431
431
  pymodaq/utils/tcp_ip/mysocket.py,sha256=StAWj8dzHeMnbLj68Sel81uWFy-YkKVNRnVf7gXrESI,3452
432
432
  pymodaq/utils/tcp_ip/serializer.py,sha256=HJziYyR_duhGBt8QikmqET8OH1uI5OAFgQu4w4jCQt4,25776
433
433
  pymodaq/utils/tcp_ip/tcp_server_client.py,sha256=xIMTNgVW_rKK0yTi4FDNFLf85-Akb27Jz2LdrvOrP68,30660
434
- pymodaq-4.2.1.dist-info/METADATA,sha256=HPmhknPGuAZduqj1nCdLJhtGR_EcWWP01YMNNYMvFTk,7665
435
- pymodaq-4.2.1.dist-info/WHEEL,sha256=zEMcRr9Kr03x1ozGwg5v9NQBKn3kndp6LSoSlVg-jhU,87
436
- pymodaq-4.2.1.dist-info/entry_points.txt,sha256=RAzdYNjvUT28I2eiCKki_g2NzXq0woWxhev6lwzwRv8,348
437
- pymodaq-4.2.1.dist-info/licenses/LICENSE,sha256=VKOejxexXAe3XwfhAhcFGqeXQ12irxVHdeAojZwFEI8,1108
438
- pymodaq-4.2.1.dist-info/RECORD,,
434
+ pymodaq-4.2.3.dist-info/METADATA,sha256=Zmf118dAje6aR45mOjzT89lRkCTHCFv4KGGKyIaQcVw,7665
435
+ pymodaq-4.2.3.dist-info/WHEEL,sha256=zEMcRr9Kr03x1ozGwg5v9NQBKn3kndp6LSoSlVg-jhU,87
436
+ pymodaq-4.2.3.dist-info/entry_points.txt,sha256=RAzdYNjvUT28I2eiCKki_g2NzXq0woWxhev6lwzwRv8,348
437
+ pymodaq-4.2.3.dist-info/licenses/LICENSE,sha256=VKOejxexXAe3XwfhAhcFGqeXQ12irxVHdeAojZwFEI8,1108
438
+ pymodaq-4.2.3.dist-info/RECORD,,