mxcubecore 1.392.0__py3-none-any.whl → 1.394.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of mxcubecore might be problematic. Click here for more details.

Files changed (195) hide show
  1. mxcubecore/BaseHardwareObjects.py +1 -1
  2. mxcubecore/Command/Epics.py +2 -2
  3. mxcubecore/Command/Pool.py +4 -4
  4. mxcubecore/Command/Sardana.py +7 -3
  5. mxcubecore/Command/Taco.py +2 -2
  6. mxcubecore/Command/Tango.py +2 -2
  7. mxcubecore/Command/Tine.py +1 -1
  8. mxcubecore/Command/exporter/ExporterClient.py +2 -2
  9. mxcubecore/Command/exporter/StandardClient.py +4 -3
  10. mxcubecore/HardwareObjects/ALBA/ALBAAutoProcessing.py +4 -7
  11. mxcubecore/HardwareObjects/ALBA/ALBABackLight.py +6 -7
  12. mxcubecore/HardwareObjects/ALBA/ALBABeamInfo.py +2 -4
  13. mxcubecore/HardwareObjects/ALBA/ALBACats.py +19 -25
  14. mxcubecore/HardwareObjects/ALBA/ALBAClusterJob.py +10 -11
  15. mxcubecore/HardwareObjects/ALBA/ALBACollect.py +49 -71
  16. mxcubecore/HardwareObjects/ALBA/ALBADataAnalysis.py +26 -31
  17. mxcubecore/HardwareObjects/ALBA/ALBAEnergy.py +1 -5
  18. mxcubecore/HardwareObjects/ALBA/ALBAEpsActuator.py +1 -1
  19. mxcubecore/HardwareObjects/ALBA/ALBAFastShutter.py +1 -1
  20. mxcubecore/HardwareObjects/ALBA/ALBAFlux.py +2 -6
  21. mxcubecore/HardwareObjects/ALBA/ALBAFrontLight.py +5 -9
  22. mxcubecore/HardwareObjects/ALBA/ALBAISPyBClient.py +4 -4
  23. mxcubecore/HardwareObjects/ALBA/ALBAMiniDiff.py +20 -27
  24. mxcubecore/HardwareObjects/ALBA/ALBAPilatus.py +12 -15
  25. mxcubecore/HardwareObjects/ALBA/ALBASession.py +1 -4
  26. mxcubecore/HardwareObjects/ALBA/ALBAZoomMotor.py +10 -14
  27. mxcubecore/HardwareObjects/ALBA/ALBAZoomMotorAutoBrightness.py +7 -11
  28. mxcubecore/HardwareObjects/ALBA/XalocMiniDiff.py +7 -8
  29. mxcubecore/HardwareObjects/BeamInfo.py +4 -6
  30. mxcubecore/HardwareObjects/Beamline.py +6 -7
  31. mxcubecore/HardwareObjects/BeamlineActions.py +3 -7
  32. mxcubecore/HardwareObjects/BlissHutchTrigger.py +3 -3
  33. mxcubecore/HardwareObjects/BlissMotorWPositions.py +4 -7
  34. mxcubecore/HardwareObjects/Cats90.py +33 -43
  35. mxcubecore/HardwareObjects/CatsBessy.py +1 -1
  36. mxcubecore/HardwareObjects/CatsMaint.py +2 -2
  37. mxcubecore/HardwareObjects/CentringMath.py +5 -4
  38. mxcubecore/HardwareObjects/DESY/DigitalZoomMotor.py +4 -4
  39. mxcubecore/HardwareObjects/DESY/MjpgStreamVideo.py +2 -0
  40. mxcubecore/HardwareObjects/DESY/P11Collect.py +7 -7
  41. mxcubecore/HardwareObjects/DESY/P11EDNACharacterisation.py +14 -16
  42. mxcubecore/HardwareObjects/DESY/P11ISPyBClient.py +6 -10
  43. mxcubecore/HardwareObjects/DESY/P11NanoDiff.py +6 -4
  44. mxcubecore/HardwareObjects/DataPublisher.py +2 -3
  45. mxcubecore/HardwareObjects/EDNACharacterisation.py +2 -4
  46. mxcubecore/HardwareObjects/EMBL/EMBLBeam.py +3 -3
  47. mxcubecore/HardwareObjects/EMBL/EMBLBeamCentering.py +2 -4
  48. mxcubecore/HardwareObjects/EMBL/EMBLBeamFocusing.py +3 -3
  49. mxcubecore/HardwareObjects/EMBL/EMBLBeamlineTest.py +2 -0
  50. mxcubecore/HardwareObjects/EMBL/EMBLDoorInterlock.py +1 -1
  51. mxcubecore/HardwareObjects/EMBL/EMBLEnergy.py +10 -18
  52. mxcubecore/HardwareObjects/EMBL/EMBLEnergyScan.py +10 -12
  53. mxcubecore/HardwareObjects/EMBL/EMBLFlux.py +10 -12
  54. mxcubecore/HardwareObjects/EMBL/EMBLMachineInfo.py +2 -2
  55. mxcubecore/HardwareObjects/EMBL/EMBLMiniDiff.py +18 -18
  56. mxcubecore/HardwareObjects/EMBL/EMBLMotorsGroup.py +6 -9
  57. mxcubecore/HardwareObjects/EMBL/EMBLOnlineProcessing.py +6 -6
  58. mxcubecore/HardwareObjects/EMBL/EMBLPPUControl.py +1 -1
  59. mxcubecore/HardwareObjects/EMBL/EMBLSSXChip.py +1 -4
  60. mxcubecore/HardwareObjects/EMBL/EMBLSlitBox.py +1 -3
  61. mxcubecore/HardwareObjects/EMBL/EMBLTableMotor.py +2 -3
  62. mxcubecore/HardwareObjects/EMBL/EMBLXRFSpectrum.py +4 -4
  63. mxcubecore/HardwareObjects/EMBL/EMBLXrayImaging.py +1 -1
  64. mxcubecore/HardwareObjects/EMBL/TINEMotor.py +2 -2
  65. mxcubecore/HardwareObjects/EMBLFlexHCD.py +5 -5
  66. mxcubecore/HardwareObjects/EMBLFlexHarvester.py +2 -2
  67. mxcubecore/HardwareObjects/ESRF/ESRFBeam.py +3 -5
  68. mxcubecore/HardwareObjects/ESRF/ESRFBeamInfo.py +1 -5
  69. mxcubecore/HardwareObjects/ESRF/ESRFBeamlineActions.py +2 -2
  70. mxcubecore/HardwareObjects/ESRF/ESRFEnergyScan.py +3 -3
  71. mxcubecore/HardwareObjects/ESRF/ESRFMetadataManagerClient.py +1 -1
  72. mxcubecore/HardwareObjects/ESRF/ESRFMultiCollect.py +7 -7
  73. mxcubecore/HardwareObjects/ESRF/ESRFPhotonFlux.py +2 -8
  74. mxcubecore/HardwareObjects/ESRF/ESRFSC3.py +11 -18
  75. mxcubecore/HardwareObjects/ESRF/ID29HutchTrigger.py +3 -3
  76. mxcubecore/HardwareObjects/ESRF/MD2MultiCollect.py +4 -4
  77. mxcubecore/HardwareObjects/ESRF/SSXICATLIMS.py +9 -6
  78. mxcubecore/HardwareObjects/EdnaWorkflow.py +9 -11
  79. mxcubecore/HardwareObjects/Energy.py +11 -15
  80. mxcubecore/HardwareObjects/ExporterMotor.py +1 -2
  81. mxcubecore/HardwareObjects/FlexHCD.py +7 -8
  82. mxcubecore/HardwareObjects/FlexHCDMaintenance.py +1 -1
  83. mxcubecore/HardwareObjects/GenericDiffractometer.py +26 -46
  84. mxcubecore/HardwareObjects/Gphl/CollectEmulator.py +6 -7
  85. mxcubecore/HardwareObjects/Gphl/GphlQueueEntry.py +2 -2
  86. mxcubecore/HardwareObjects/Gphl/GphlWorkflow.py +29 -43
  87. mxcubecore/HardwareObjects/Gphl/GphlWorkflowConnection.py +25 -35
  88. mxcubecore/HardwareObjects/ICATLIMS.py +17 -13
  89. mxcubecore/HardwareObjects/LNLS/EPICSMotor.py +1 -4
  90. mxcubecore/HardwareObjects/LNLS/LNLSAperture.py +2 -5
  91. mxcubecore/HardwareObjects/LNLS/LNLSCamera.py +14 -16
  92. mxcubecore/HardwareObjects/LNLS/LNLSCollect.py +21 -29
  93. mxcubecore/HardwareObjects/LNLS/LNLSDetDistMotor.py +7 -11
  94. mxcubecore/HardwareObjects/LNLS/LNLSEnergy.py +4 -6
  95. mxcubecore/HardwareObjects/LNLS/LNLSPilatusDet.py +55 -51
  96. mxcubecore/HardwareObjects/LNLS/LNLSTransmission.py +4 -7
  97. mxcubecore/HardwareObjects/LdapAuthenticator.py +11 -15
  98. mxcubecore/HardwareObjects/Lima2Detector.py +1 -1
  99. mxcubecore/HardwareObjects/LimaEigerDetector.py +1 -1
  100. mxcubecore/HardwareObjects/LimaPilatusDetector.py +1 -4
  101. mxcubecore/HardwareObjects/MAXIV/MAXIVAutoProcessing.py +3 -5
  102. mxcubecore/HardwareObjects/MD3UP.py +1 -2
  103. mxcubecore/HardwareObjects/MachCurrent.py +5 -5
  104. mxcubecore/HardwareObjects/Marvin.py +23 -35
  105. mxcubecore/HardwareObjects/Microdiff.py +6 -8
  106. mxcubecore/HardwareObjects/MicrodiffActuator.py +1 -1
  107. mxcubecore/HardwareObjects/MicrodiffBeamstop.py +1 -1
  108. mxcubecore/HardwareObjects/MicrodiffInOut.py +1 -1
  109. mxcubecore/HardwareObjects/MicrodiffKappaMotor.py +3 -4
  110. mxcubecore/HardwareObjects/MiniDiff.py +35 -57
  111. mxcubecore/HardwareObjects/MotorWPositions.py +4 -2
  112. mxcubecore/HardwareObjects/PlateManipulator.py +2 -2
  113. mxcubecore/HardwareObjects/ProposalTypeISPyBLims.py +8 -16
  114. mxcubecore/HardwareObjects/PyISPyBClient.py +8 -5
  115. mxcubecore/HardwareObjects/QtGraphicsLib.py +2 -2
  116. mxcubecore/HardwareObjects/QtGraphicsManager.py +13 -19
  117. mxcubecore/HardwareObjects/QtInstanceServer.py +27 -55
  118. mxcubecore/HardwareObjects/QtLimaVideo.py +1 -5
  119. mxcubecore/HardwareObjects/QueueManager.py +7 -9
  120. mxcubecore/HardwareObjects/QueueModel.py +6 -8
  121. mxcubecore/HardwareObjects/RedisClient.py +12 -16
  122. mxcubecore/HardwareObjects/SC3.py +1 -1
  123. mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Attenuator.py +1 -3
  124. mxcubecore/HardwareObjects/SOLEIL/PX1/PX1BeamInfo.py +1 -1
  125. mxcubecore/HardwareObjects/SOLEIL/PX1/PX1CatsMaint.py +3 -4
  126. mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Collect.py +11 -11
  127. mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Cryotong.py +8 -18
  128. mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Energy.py +6 -7
  129. mxcubecore/HardwareObjects/SOLEIL/PX1/PX1EnergyScan.py +21 -31
  130. mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Environment.py +1 -1
  131. mxcubecore/HardwareObjects/SOLEIL/PX1/PX1MiniDiff.py +11 -21
  132. mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Pilatus.py +9 -9
  133. mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Pss.py +1 -2
  134. mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Resolution.py +1 -5
  135. mxcubecore/HardwareObjects/SOLEIL/PX1/PX1TangoLight.py +3 -8
  136. mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Attenuator.py +9 -13
  137. mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Collect.py +1 -1
  138. mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Diffractometer.py +22 -22
  139. mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Energy.py +4 -6
  140. mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Guillotine.py +2 -2
  141. mxcubecore/HardwareObjects/SOLEIL/SOLEILCatsMaint.py +6 -8
  142. mxcubecore/HardwareObjects/SOLEIL/SOLEILEnergyScan.py +44 -56
  143. mxcubecore/HardwareObjects/SOLEIL/SOLEILGuillotine.py +2 -2
  144. mxcubecore/HardwareObjects/SOLEIL/SOLEILISPyBClient.py +10 -10
  145. mxcubecore/HardwareObjects/SOLEIL/SOLEILMachineInfo.py +4 -8
  146. mxcubecore/HardwareObjects/SOLEIL/SOLEILPss.py +3 -4
  147. mxcubecore/HardwareObjects/SOLEIL/SOLEILRuche.py +1 -1
  148. mxcubecore/HardwareObjects/SOLEIL/TangoDCMotor.py +10 -16
  149. mxcubecore/HardwareObjects/SardanaMotor.py +4 -5
  150. mxcubecore/HardwareObjects/Session.py +1 -1
  151. mxcubecore/HardwareObjects/SpecMotorWPositions.py +5 -9
  152. mxcubecore/HardwareObjects/SpecMotorWSpecPositions.py +2 -4
  153. mxcubecore/HardwareObjects/SpecShell.py +7 -9
  154. mxcubecore/HardwareObjects/SpecState.py +5 -7
  155. mxcubecore/HardwareObjects/StateMachine.py +9 -10
  156. mxcubecore/HardwareObjects/TangoLimaMpegVideo.py +2 -3
  157. mxcubecore/HardwareObjects/TangoLimaVideo.py +3 -4
  158. mxcubecore/HardwareObjects/TangoMachineInfo.py +1 -3
  159. mxcubecore/HardwareObjects/TangoMotor.py +1 -1
  160. mxcubecore/HardwareObjects/UserTypeISPyBLims.py +8 -8
  161. mxcubecore/HardwareObjects/XMLRPCServer.py +20 -22
  162. mxcubecore/HardwareObjects/abstract/AbstractAperture.py +6 -11
  163. mxcubecore/HardwareObjects/abstract/AbstractCollect.py +6 -16
  164. mxcubecore/HardwareObjects/abstract/AbstractDetector.py +2 -7
  165. mxcubecore/HardwareObjects/abstract/AbstractEnergyScan.py +1 -1
  166. mxcubecore/HardwareObjects/abstract/AbstractLims.py +3 -4
  167. mxcubecore/HardwareObjects/abstract/AbstractMultiCollect.py +6 -6
  168. mxcubecore/HardwareObjects/abstract/AbstractNState.py +1 -1
  169. mxcubecore/HardwareObjects/abstract/AbstractProcedure.py +3 -4
  170. mxcubecore/HardwareObjects/abstract/AbstractSampleChanger.py +1 -1
  171. mxcubecore/HardwareObjects/abstract/AbstractVideoDevice.py +5 -5
  172. mxcubecore/HardwareObjects/abstract/AbstractXRFSpectrum.py +2 -0
  173. mxcubecore/HardwareObjects/abstract/ISPyBAbstractLims.py +11 -13
  174. mxcubecore/HardwareObjects/abstract/ISPyBDataAdapter.py +3 -3
  175. mxcubecore/HardwareObjects/abstract/sample_changer/Crims.py +8 -0
  176. mxcubecore/HardwareObjects/mockup/BeamlineTestMockup.py +12 -13
  177. mxcubecore/HardwareObjects/mockup/EnergyScanMockup.py +10 -11
  178. mxcubecore/HardwareObjects/mockup/ISPyBClientMockup.py +6 -6
  179. mxcubecore/HardwareObjects/mockup/ISPyBRestClientMockup.py +1 -1
  180. mxcubecore/HardwareObjects/mockup/LimaDetectorMockup.py +1 -2
  181. mxcubecore/HardwareObjects/mockup/MDCameraMockup.py +5 -6
  182. mxcubecore/HardwareObjects/mockup/MicrodiffInOutMockup.py +1 -1
  183. mxcubecore/HardwareObjects/mockup/MultiCollectMockup.py +1 -1
  184. mxcubecore/HardwareObjects/mockup/ShapeHistoryMockup.py +1 -2
  185. mxcubecore/HardwareObjects/mockup/XRFMockup.py +3 -6
  186. mxcubecore/TaskUtils.py +2 -0
  187. mxcubecore/queue_entry/base_queue_entry.py +2 -2
  188. mxcubecore/queue_entry/energy_scan.py +1 -1
  189. mxcubecore/saferef.py +2 -1
  190. mxcubecore/utils/qt_import.py +8 -7
  191. {mxcubecore-1.392.0.dist-info → mxcubecore-1.394.0.dist-info}/METADATA +1 -1
  192. {mxcubecore-1.392.0.dist-info → mxcubecore-1.394.0.dist-info}/RECORD +195 -195
  193. {mxcubecore-1.392.0.dist-info → mxcubecore-1.394.0.dist-info}/COPYING +0 -0
  194. {mxcubecore-1.392.0.dist-info → mxcubecore-1.394.0.dist-info}/COPYING.LESSER +0 -0
  195. {mxcubecore-1.392.0.dist-info → mxcubecore-1.394.0.dist-info}/WHEEL +0 -0
@@ -101,9 +101,7 @@ class EMBLBeamCentering(HardwareObject):
101
101
  self.focusing_mode_changed,
102
102
  )
103
103
  else:
104
- logging.getLogger("HWR").debug(
105
- "BeamlineTest: Beam focusing hwobj is not defined"
106
- )
104
+ self.log.debug("BeamlineTest: Beam focusing hwobj is not defined")
107
105
 
108
106
  def focusing_mode_changed(self, focusing_mode, beam_size):
109
107
  """Reemits focusing changed signal
@@ -128,7 +126,7 @@ class EMBLBeamCentering(HardwareObject):
128
126
  with gevent.Timeout(20, Exception("Timeout waiting for pitch scan ready")):
129
127
  while self.scan_status != 0: # chan_pitch_scan_status.get_value() != 0:
130
128
  gevent.sleep(0.1)
131
- logging.getLogger("HWR").error("scan status %s" % self.scan_status)
129
+ self.log.error("scan status %s" % self.scan_status)
132
130
  self.cmd_set_vmax_pitch(1)
133
131
  sleep(3)
134
132
 
@@ -88,7 +88,7 @@ class EMBLBeamFocusing(HardwareObject):
88
88
  )
89
89
  motors_group.re_emit_values()
90
90
  else:
91
- logging.getLogger("HWR").debug("BeamFocusing: No motors defined")
91
+ self.log.debug("BeamFocusing: No motors defined")
92
92
  self.active_focus_mode = self.focus_modes[0]["modeName"]
93
93
  self.size = self.focus_modes[0]["size"]
94
94
  self.re_emit_values()
@@ -96,7 +96,7 @@ class EMBLBeamFocusing(HardwareObject):
96
96
  try:
97
97
  self.cmd_set_phase = eval(self.get_property("setPhaseCmd"))
98
98
  except Exception:
99
- pass
99
+ self.log.exception("")
100
100
 
101
101
  self.aperture_hwobj = self.get_object_by_role("aperture")
102
102
 
@@ -240,7 +240,7 @@ class EMBLBeamFocusing(HardwareObject):
240
240
  :type focus_mode: str
241
241
  """
242
242
  gevent.spawn(self.focus_mode_task, focus_mode)
243
- logging.getLogger("HWR").info("Focusing: %s mode requested" % focus_mode)
243
+ self.log.info("Focusing: %s mode requested" % focus_mode)
244
244
  self.emit("focusingModeRequested", focus_mode)
245
245
 
246
246
  def focus_mode_task(self, focus_mode):
@@ -116,6 +116,8 @@ class EMBLBeamlineTest(HardwareObject):
116
116
  logging.getLogger("HWR").warning(
117
117
  "BeamlineTest: Unable to create test directories"
118
118
  )
119
+
120
+ logging.getLogger("HWR").exception("")
119
121
  return
120
122
 
121
123
  self.results_list = []
@@ -188,7 +188,7 @@ class EMBLDoorInterlock(HardwareObject):
188
188
  )
189
189
  logging.getLogger("GUI").error(msg)
190
190
  else:
191
- logging.getLogger("HWR").info("Door is Interlocked")
191
+ self.log.info("Door is Interlocked")
192
192
 
193
193
  def re_emit_values(self):
194
194
  """Updates state"""
@@ -104,7 +104,7 @@ class EMBLEnergy(AbstractEnergy):
104
104
  try:
105
105
  self._default_energy = self.get_property("defaultEnergy")
106
106
  except Exception:
107
- logging.getLogger("HWR").warning("Energy: no default energy defined")
107
+ self.log.warning("Energy: no default energy defined")
108
108
 
109
109
  try:
110
110
  self._energy_limits = eval(self.get_property("staticLimits"))
@@ -135,9 +135,7 @@ class EMBLEnergy(AbstractEnergy):
135
135
  value = self.chan_energy.get_value()
136
136
  return value[0] / 1000
137
137
  except Exception:
138
- logging.getLogger("HWR").exception(
139
- "Energy: could not read current energy"
140
- )
138
+ self.log.exception("Energy: could not read current energy")
141
139
  return None
142
140
  return value
143
141
 
@@ -153,9 +151,7 @@ class EMBLEnergy(AbstractEnergy):
153
151
  self.chan_limit_high.get_value(),
154
152
  )
155
153
  except Exception:
156
- logging.getLogger("HWR").exception(
157
- "Energy: could not read energy limits"
158
- )
154
+ self.log.exception("Energy: could not read energy limits")
159
155
  return self._energy_limits
160
156
 
161
157
  def get_wavelength_limits(self):
@@ -205,11 +201,11 @@ class EMBLEnergy(AbstractEnergy):
205
201
  """
206
202
  Checks given value if it is within limits
207
203
  """
208
- logging.getLogger("HWR").info("Checking the move limits")
204
+ self.log.info("Checking the move limits")
209
205
  result = False
210
206
 
211
207
  if self._energy_limits[0] <= value <= self.en_lims[1]:
212
- logging.getLogger("HWR").info("Limits ok")
208
+ self.log.info("Limits ok")
213
209
  result = True
214
210
  else:
215
211
  logging.getLogger("GUI").info("Energy: Requested value is out of limits")
@@ -223,7 +219,7 @@ class EMBLEnergy(AbstractEnergy):
223
219
  # :param wait: boolean
224
220
  # :return:
225
221
  # """
226
- # logging.getLogger("HWR").info("Moving wavelength to (%s)" % value)
222
+ # self.log.info("Moving wavelength to (%s)" % value)
227
223
  # return self.move_energy(12.3984 / value, wait)
228
224
  # # return self.startMoveEnergy(value, wait)
229
225
 
@@ -313,7 +309,7 @@ class EMBLEnergy(AbstractEnergy):
313
309
  self._moving = False
314
310
  self.set_break_bragg()
315
311
  if self.cmd_reset_perp is not None:
316
- logging.getLogger("HWR").info("Energy: Perp reset sent")
312
+ self.log.info("Energy: Perp reset sent")
317
313
  self.cmd_reset_perp()
318
314
  self.move_energy_finished(0)
319
315
  self.update_state(self.STATES.READY)
@@ -402,22 +398,18 @@ class EMBLEnergy(AbstractEnergy):
402
398
  self.wait_ready()
403
399
  gevent.sleep(1)
404
400
  self.wait_ready()
405
- logging.getLogger("HWR").info("Energy: Set bragg break cmd send")
401
+ self.log.info("Energy: Set bragg break cmd send")
406
402
  self.cmd_set_break_bragg(1)
407
403
  gevent.sleep(2)
408
404
  if self.chan_status_bragg_break is not None:
409
- logging.getLogger("HWR").warning(
410
- "Energy: Waiting for break set (first try) ..."
411
- )
405
+ self.log.warning("Energy: Waiting for break set (first try) ...")
412
406
  with gevent.Timeout(
413
407
  20, Exception("Energy: Timeout waiting for break set")
414
408
  ):
415
409
  while self.chan_status_bragg_break.get_value() != 0:
416
410
  gevent.sleep(0.1)
417
411
  gevent.sleep(3)
418
- logging.getLogger("HWR").warning(
419
- "Waiting for break set (second try) ..."
420
- )
412
+ self.log.warning("Waiting for break set (second try) ...")
421
413
  with gevent.Timeout(20, Exception("Timeout waiting for break set")):
422
414
  while self.chan_status_bragg_break.get_value() != 0:
423
415
  gevent.sleep(0.1)
@@ -181,7 +181,7 @@ class EMBLEnergyScan(AbstractEnergyScan, HardwareObject):
181
181
  :type exptime: float
182
182
  :return: True if success, otherwise returns False
183
183
  """
184
- log = logging.getLogger("HWR")
184
+ log = self.log
185
185
 
186
186
  self.scan_info = {
187
187
  "sessionId": session_id,
@@ -304,7 +304,7 @@ class EMBLEnergyScan(AbstractEnergyScan, HardwareObject):
304
304
  def scanCommandFinished(self, *args):
305
305
  with TaskUtils.cleanup(self.ready_event.set):
306
306
  self.scan_info["endTime"] = time.strftime("%Y-%m-%d %H:%M:%S")
307
- logging.getLogger("HWR").debug("Energy scan: finished")
307
+ self.log.debug("Energy scan: finished")
308
308
  self.scanning = False
309
309
  self.scan_info["startEnergy"] = self.scan_data[-1][0]
310
310
  self.scan_info["endEnergy"] = self.scan_data[-1][1]
@@ -330,9 +330,7 @@ class EMBLEnergyScan(AbstractEnergyScan, HardwareObject):
330
330
  if not os.path.exists(archive_directory):
331
331
  os.makedirs(archive_directory)
332
332
  except Exception:
333
- logging.getLogger("HWR").exception(
334
- "EMBLEnergyScan: could not create results directory."
335
- )
333
+ self.log.exception("EMBLEnergyScan: could not create results directory.")
336
334
  self.store_energy_scan()
337
335
  self.emit("energyScanFailed", ())
338
336
  return
@@ -340,9 +338,7 @@ class EMBLEnergyScan(AbstractEnergyScan, HardwareObject):
340
338
  try:
341
339
  archive_file_raw = open(archive_file_raw_filename, "w")
342
340
  except Exception:
343
- logging.getLogger("HWR").exception(
344
- "EMBLEnergyScan: could not create results raw file"
345
- )
341
+ self.log.exception("EMBLEnergyScan: could not create results raw file")
346
342
  self.store_energy_scan()
347
343
  self.emit("energyScanFailed", ())
348
344
  return
@@ -377,6 +373,8 @@ class EMBLEnergyScan(AbstractEnergyScan, HardwareObject):
377
373
  self.store_energy_scan()
378
374
 
379
375
  logging.getLogger("GUI").error("Energy scan: Chooch failed")
376
+
377
+ self.log.exception("")
380
378
  return None, None, None, None, None, None, None, [], [], [], None
381
379
 
382
380
  rm = (pk + 30) / 1000.0
@@ -407,7 +405,7 @@ class EMBLEnergyScan(AbstractEnergyScan, HardwareObject):
407
405
  for i in range(len(chooch_graph_x)):
408
406
  chooch_graph_x[i] = chooch_graph_x[i] / 1000.0
409
407
 
410
- # logging.getLogger("HWR").info("EMBLEnergyScan: Saving png" )
408
+ # self.log.info("EMBLEnergyScan: Saving png" )
411
409
  # prepare to save png files
412
410
  title = "%s %s %s\n%.4f %.2f %.2f\n%.4f %.2f %.2f" % (
413
411
  "energy",
@@ -457,13 +455,13 @@ class EMBLEnergyScan(AbstractEnergyScan, HardwareObject):
457
455
 
458
456
  self.scan_info["jpegChoochFileFullPath"] = str(archive_file_png_filename)
459
457
  try:
460
- logging.getLogger("HWR").info(
458
+ self.log.info(
461
459
  "Saving energy scan to archive directory for ISPyB : %s",
462
460
  archive_file_png_filename,
463
461
  )
464
462
  canvas.print_figure(archive_file_png_filename, dpi=80)
465
463
  except Exception:
466
- logging.getLogger("HWR").exception("could not save figure")
464
+ self.log.exception("could not save figure")
467
465
 
468
466
  self.store_energy_scan()
469
467
 
@@ -514,7 +512,7 @@ class EMBLEnergyScan(AbstractEnergyScan, HardwareObject):
514
512
  }
515
513
  )
516
514
  except IndexError:
517
- pass
515
+ self.log.exception("")
518
516
  return elements
519
517
 
520
518
  def get_scan_data(self):
@@ -170,7 +170,7 @@ class EMBLFlux(AbstractFlux):
170
170
  self.intensity_ranges, key=lambda item: item["max"]
171
171
  )
172
172
  except Exception:
173
- logging.getLogger("HWR").error("BeamlineTest: No intensity ranges defined")
173
+ self.log.error("BeamlineTest: No intensity ranges defined")
174
174
  """
175
175
 
176
176
  self.chan_intens_mean = self.get_channel_object("intensMean")
@@ -364,23 +364,23 @@ class EMBLFlux(AbstractFlux):
364
364
  # Close the fast shutter
365
365
  # -----------------------------------------------------------------
366
366
  HWR.beamline.fast_shutter.close(wait=True)
367
- logging.getLogger("HWR").debug("Measure flux: Fast shutter closed")
367
+ self.log.debug("Measure flux: Fast shutter closed")
368
368
  gevent.sleep(0.2)
369
369
  HWR.beamline.diffractometer.wait_ready(10)
370
370
 
371
371
  # Move back light in, check beamstop position
372
372
  # -----------------------------------------------------------------
373
- logging.getLogger("HWR").info("Measure flux: Moving backlight out...")
373
+ self.log.info("Measure flux: Moving backlight out...")
374
374
  self.emit("progressStep", 1, "Moving backlight out")
375
375
  HWR.beamline.back_light.move_in()
376
- logging.getLogger("HWR").debug("Measure flux: Backlight moved out")
376
+ self.log.debug("Measure flux: Backlight moved out")
377
377
 
378
378
  beamstop_position = HWR.beamline.beamstop.get_value()
379
379
  if beamstop_position == "BEAM":
380
380
  self.emit("progressStep", 2, "Moving beamstop OFF")
381
381
  HWR.beamline.beamstop.set_position("OFF")
382
382
  HWR.beamline.diffractometer.wait_ready(30)
383
- logging.getLogger("HWR").info("Measure flux: Beamstop moved off")
383
+ self.log.info("Measure flux: Beamstop moved off")
384
384
 
385
385
  # Check scintillator position
386
386
  # -----------------------------------------------------------------
@@ -390,9 +390,7 @@ class EMBLFlux(AbstractFlux):
390
390
  HWR.beamline.diffractometer.set_scintillator_position("PHOTODIODE")
391
391
  gevent.sleep(1)
392
392
  HWR.beamline.diffractometer.wait_ready(30)
393
- logging.getLogger("HWR").debug(
394
- "Measure flux: Scintillator set to photodiode"
395
- )
393
+ self.log.debug("Measure flux: Scintillator set to photodiode")
396
394
 
397
395
  self.measured_flux_list = []
398
396
 
@@ -417,7 +415,7 @@ class EMBLFlux(AbstractFlux):
417
415
 
418
416
  gevent.sleep(1)
419
417
  intens_value = self.chan_intens_mean.get_value(force=True)
420
- logging.getLogger("HWR").info("Measured current: %s" % intens_value)
418
+ self.log.info("Measured current: %s" % intens_value)
421
419
  # HWR.beamline.fast_shutter.closeShutter(wait=True)
422
420
  intensity_value = intens_value[0] + 1.860e-5 # 2.780e-6
423
421
  self.measured_flux_list.append(self.get_flux_result(intensity_value))
@@ -428,21 +426,21 @@ class EMBLFlux(AbstractFlux):
428
426
  self.cmd_flux_record([_x["flux"] for _x in self.measured_flux_list])
429
427
  gevent.sleep(2)
430
428
  except Exception:
431
- pass
429
+ self.log.exception("")
432
430
 
433
431
  max_frame_rate = 25
434
432
  else:
435
433
  self.emit("progressStep", 5, "Measuring the intensity")
436
434
  current_aperture_index = 0
437
435
  HWR.beamline.fast_shutter.open(wait=True)
438
- logging.getLogger("HWR").debug("Measure flux: Fast shutter opened")
436
+ self.log.debug("Measure flux: Fast shutter opened")
439
437
 
440
438
  gevent.sleep(0.5)
441
439
  intens_value = self.chan_intens_mean.get_value()
442
440
 
443
441
  intens_range_now = self.chan_intens_range.get_value()
444
442
  HWR.beamline.fast_shutter.close(wait=True)
445
- logging.getLogger("HWR").debug("Measure flux: Fast shutter closed")
443
+ self.log.debug("Measure flux: Fast shutter closed")
446
444
 
447
445
  intensity_value = intens_value[0] + 2.780e-6
448
446
  self.measured_flux_list.append(self.get_flux_result(intensity_value))
@@ -161,7 +161,7 @@ class EMBLMachineInfo(HardwareObject):
161
161
  self.cryojet_in_changed(self.chan_cryojet_in.get_value())
162
162
  self.chan_cryojet_in.connect_signal("update", self.cryojet_in_changed)
163
163
  else:
164
- logging.getLogger("HWR").debug("MachineInfo: Cryojet channel not defined")
164
+ self.log.debug("MachineInfo: Cryojet channel not defined")
165
165
 
166
166
  self.chan_sc_dewar_low_level_alarm = self.get_channel_object(
167
167
  "scLowLevelAlarm", optional=True
@@ -524,7 +524,7 @@ class EMBLMachineInfo(HardwareObject):
524
524
  last_value = line_el[-1]
525
525
  last_value = float(last_value)
526
526
  except Exception:
527
- logging.getLogger("HWR").debug("MachineInfo: Unable to read epics values")
527
+ self.log.debug("MachineInfo: Unable to read epics values")
528
528
  finally:
529
529
  if url_file:
530
530
  url_file.close()
@@ -184,7 +184,7 @@ class EMBLMiniDiff(GenericDiffractometer):
184
184
  self.beam_position = value
185
185
 
186
186
  def state_changed(self, state):
187
- # logging.getLogger("HWR").debug("State changed: %s" % str(state))
187
+ # self.log.debug("State changed: %s" % str(state))
188
188
  self.current_state = state
189
189
  self.emit("minidiffStateChanged", (self.current_state))
190
190
  self.emit("minidiffStatusChanged", (self.current_state))
@@ -308,7 +308,7 @@ class EMBLMiniDiff(GenericDiffractometer):
308
308
  in (GenericDiffractometer.PHASE_TRANSFER, GenericDiffractometer.PHASE_BEAM)
309
309
  ):
310
310
  detector_distance = HWR.beamline.detector.distance.get_value()
311
- logging.getLogger("HWR").debug(
311
+ self.log.debug(
312
312
  "Diffractometer current phase: %s " % self.current_phase
313
313
  + "selected phase: %s" % phase
314
314
  + "detector distance: %d mm" % detector_distance
@@ -330,7 +330,7 @@ class EMBLMiniDiff(GenericDiffractometer):
330
330
  self.wait_device_ready(30)
331
331
  _howlong = time.time() - _start
332
332
  if _howlong > 11.0:
333
- logging.getLogger("HWR").error(
333
+ self.log.error(
334
334
  "Changing phase to %s took %.1f seconds" % (phase, _howlong)
335
335
  )
336
336
  else:
@@ -375,7 +375,7 @@ class EMBLMiniDiff(GenericDiffractometer):
375
375
  if self.current_phase != "BeamLocation":
376
376
  GenericDiffractometer.move_to_beam(self, x, y, omega)
377
377
  else:
378
- logging.getLogger("HWR").debug(
378
+ self.log.debug(
379
379
  "Diffractometer: Move to screen"
380
380
  + " position disabled in BeamLocation phase."
381
381
  )
@@ -519,13 +519,17 @@ class EMBLMiniDiff(GenericDiffractometer):
519
519
  self.motor_hwobj_dict["sampx"]: centred_position.sampx,
520
520
  self.motor_hwobj_dict["sampy"]: centred_position.sampy,
521
521
  self.motor_hwobj_dict["phi"]: centred_position.phi,
522
- self.motor_hwobj_dict["phiy"]: centred_position.phiy
523
- + self.centring_hwobj.camera2alignmentMotor(
524
- self.motor_hwobj_dict["phiy"], {"X": dx, "Y": dy}
522
+ self.motor_hwobj_dict["phiy"]: (
523
+ centred_position.phiy
524
+ + self.centring_hwobj.camera2alignmentMotor(
525
+ self.motor_hwobj_dict["phiy"], {"X": dx, "Y": dy}
526
+ )
525
527
  ),
526
- self.motor_hwobj_dict["phiz"]: centred_position.phiz
527
- + self.centring_hwobj.camera2alignmentMotor(
528
- self.motor_hwobj_dict["phiz"], {"X": dx, "Y": dy}
528
+ self.motor_hwobj_dict["phiz"]: (
529
+ centred_position.phiz
530
+ + self.centring_hwobj.camera2alignmentMotor(
531
+ self.motor_hwobj_dict["phiz"], {"X": dx, "Y": dy}
532
+ )
529
533
  ),
530
534
  self.motor_hwobj_dict["kappa"]: centred_position.kappa,
531
535
  self.motor_hwobj_dict["kappa_phi"]: centred_position.kappa_phi,
@@ -534,9 +538,7 @@ class EMBLMiniDiff(GenericDiffractometer):
534
538
  except BaseException:
535
539
  logging.exception("Could not move to centred position")
536
540
  else:
537
- logging.getLogger("HWR").debug(
538
- "Move to centred position disabled in BeamLocation phase."
539
- )
541
+ self.log.debug("Move to centred position disabled in BeamLocation phase.")
540
542
 
541
543
  def move_kappa_and_phi(self, kappa=None, kappa_phi=None, wait=False):
542
544
  return gevent.spawn(self.move_kappa_and_phi_procedure, kappa, kappa_phi)
@@ -600,9 +602,7 @@ class EMBLMiniDiff(GenericDiffractometer):
600
602
 
601
603
  def visual_align(self, point_1, point_2):
602
604
  if self.in_plate_mode():
603
- logging.getLogger("HWR").info(
604
- "EMBLMiniDiff: Visual align not available in Plate mode"
605
- )
605
+ self.log.info("EMBLMiniDiff: Visual align not available in Plate mode")
606
606
  else:
607
607
  t1 = [point_1.sampx, point_1.sampy, point_1.phiy]
608
608
  t2 = [point_2.sampx, point_2.sampy, point_2.phiy]
@@ -656,12 +656,12 @@ class EMBLMiniDiff(GenericDiffractometer):
656
656
 
657
657
  def close_kappa_task(self):
658
658
  """Close kappa task"""
659
- logging.getLogger("HWR").debug("Diffractometer: Closing Kappa started...")
659
+ self.log.debug("Diffractometer: Closing Kappa started...")
660
660
  self.move_kappa_and_phi_procedure(0, 270)
661
661
  self.wait_device_ready(180)
662
662
  self.motor_hwobj_dict["kappa"].home()
663
663
  self.wait_device_ready(60)
664
- logging.getLogger("HWR").debug("Diffractometer: Done Closing Kappa")
664
+ self.log.debug("Diffractometer: Done Closing Kappa")
665
665
 
666
666
  def set_zoom(self, position):
667
667
  self.zoom_motor_hwobj.move_to_position(position)
@@ -75,7 +75,6 @@ Example Hardware Object XML file :
75
75
  </object>
76
76
  """
77
77
 
78
- import logging
79
78
  import time
80
79
 
81
80
  import gevent
@@ -147,7 +146,7 @@ class EMBLMotorsGroup(HardwareObject):
147
146
  self.group_address,
148
147
  self.positionAddr,
149
148
  )
150
- logging.getLogger("HWR").error(msg)
149
+ self.log.error(msg)
151
150
 
152
151
  try:
153
152
  self.chan_status = self.add_channel(
@@ -166,7 +165,7 @@ class EMBLMotorsGroup(HardwareObject):
166
165
  self.group_address,
167
166
  self.statusAddr,
168
167
  )
169
- logging.getLogger("HWR").error(msg)
168
+ self.log.error(msg)
170
169
 
171
170
  def get_motors_dict(self):
172
171
  """Returns dict with motors"""
@@ -188,16 +187,14 @@ class EMBLMotorsGroup(HardwareObject):
188
187
  motor["setCmd"],
189
188
  new_position,
190
189
  )
191
- logging.getLogger("HWR").debug(
190
+ self.log.debug(
192
191
  "EMBLMotorsGroup: send %s : %.4f"
193
192
  % (motor["motorAddr"], new_position)
194
193
  )
195
194
  time.sleep(0.2)
196
195
  self.wait_motor_ready(motor_name, timeout=10)
197
196
  time.sleep(1)
198
- logging.getLogger("HWR").debug(
199
- "EMBLMotorsGroup: motor %s ready" % motor["motorAddr"]
200
- )
197
+ self.log.debug("EMBLMotorsGroup: motor %s ready" % motor["motorAddr"])
201
198
  break
202
199
 
203
200
  def set_motor_focus_mode(self, motor_name, focus_mode):
@@ -248,14 +245,14 @@ class EMBLMotorsGroup(HardwareObject):
248
245
  motor["setCmd"],
249
246
  motor["focusingModes"][str(focus_mode)],
250
247
  )
251
- logging.getLogger("HWR").debug(
248
+ self.log.debug(
252
249
  "EMBLMotorsGroup: send %s : %.4f"
253
250
  % (motor["motorAddr"], motor["focusingModes"][str(focus_mode)])
254
251
  )
255
252
  if motor["motorName"] in ("In", "Out", "Top", "But"):
256
253
  self.wait_motor_ready(motor["motorName"], timeout=10)
257
254
  time.sleep(1.1)
258
- logging.getLogger("HWR").debug(
255
+ self.log.debug(
259
256
  "EMBLMotorsGroup: motor %s ready" % motor["motorAddr"]
260
257
  )
261
258
 
@@ -436,13 +436,13 @@ class EMBLOnlineProcessing(AbstractOnlineProcessing):
436
436
 
437
437
  if len(batch) >= self.params_dict["images_num"]:
438
438
  self.all_frames_batch_processed = True
439
- logging.getLogger("HWR").info(
439
+ self.log.info(
440
440
  "All dozor scores %s of %s"
441
441
  % (len(batch), self.params_dict["images_num"])
442
442
  )
443
443
  self.finish_processing()
444
444
  else:
445
- logging.getLogger("HWR").info(
445
+ self.log.info(
446
446
  "Dozor scores %s of %s %s"
447
447
  % (len(batch), self.params_dict["images_num"], self.batch_count)
448
448
  )
@@ -485,20 +485,20 @@ class EMBLOnlineProcessing(AbstractOnlineProcessing):
485
485
 
486
486
  if len(is_values) >= self.params_dict["images_num"]:
487
487
  self.all_frames_dozor_is = True
488
- logging.getLogger("HWR").info(
488
+ self.log.info(
489
489
  "All ISs %s of %s"
490
490
  % (len(is_values), self.params_dict["images_num"])
491
491
  )
492
492
  self.finish_processing()
493
493
  else:
494
- logging.getLogger("HWR").info(
494
+ self.log.info(
495
495
  "IS values %s of %s %s"
496
496
  % (len(is_values), self.params_dict["images_num"], self.is_count)
497
497
  )
498
498
 
499
499
  def finish_processing(self):
500
500
  if self.all_frames_dozor_is and self.all_frames_batch_processed:
501
- logging.getLogger("HWR").info("Processing finished")
501
+ self.log.info("Processing finished")
502
502
  self.set_processing_status("Success")
503
503
  self.all_frames_dozor_is = False
504
504
  self.all_frames_batch_processed = False
@@ -558,7 +558,7 @@ class EMBLOnlineProcessing(AbstractOnlineProcessing):
558
558
  )
559
559
  dozor_result.addImageDozor(dozor_image)
560
560
  dozor_result.exportToFile(processing_xml_filename)
561
- logging.getLogger("HWR").info(
561
+ self.log.info(
562
562
  "Online processing: Results saved in %s" % processing_xml_filename
563
563
  )
564
564
 
@@ -132,7 +132,7 @@ class EMBLPPUControl(HardwareObject):
132
132
  logging.getLogger("GUI").error(msg)
133
133
  else:
134
134
  msg = "PPUControl: %s" % self.all_status
135
- logging.getLogger("HWR").debug(msg)
135
+ self.log.debug(msg)
136
136
 
137
137
  self.msg = (
138
138
  "Restart result:\n\n%s\n\n" % self.restart_result
@@ -17,7 +17,6 @@
17
17
  # You should have received a copy of the GNU Lesser General Public License
18
18
  # along with MXCuBE. If not, see <http://www.gnu.org/licenses/>.
19
19
 
20
- import logging
21
20
 
22
21
  from mxcubecore.HardwareObjects import QtGraphicsLib as GraphicsLib
23
22
  from mxcubecore.HardwareObjects.QtGraphicsManager import QtGraphicsManager
@@ -110,9 +109,7 @@ class EMBLSSXChip(QtGraphicsManager):
110
109
  if item_name in self.chip_config_list[self.current_chip_index]:
111
110
  self.chip_config_list[self.current_chip_index][item_name] = item_value
112
111
  else:
113
- logging.getLogger("HWR").warning(
114
- "Item %s not found in the config dict" % item_name
115
- )
112
+ self.log.warning("Item %s not found in the config dict" % item_name)
116
113
 
117
114
  def get_dg_channels_list(self):
118
115
  return self.dg_channels_list
@@ -68,8 +68,6 @@ Example Hardware Object XML file :
68
68
  </object>
69
69
  """
70
70
 
71
- import logging
72
-
73
71
  from mxcubecore.HardwareObjects.abstract.AbstractSlits import AbstractSlits
74
72
 
75
73
  __credits__ = ["EMBL Hamburg"]
@@ -154,7 +152,7 @@ class EMBLSlitBox(AbstractSlits):
154
152
  )
155
153
  self.beam_focus_hwobj.re_emit_values()
156
154
  else:
157
- logging.getLogger("HWR").debug("EMBLSlitBox: beamFocus HO not defined")
155
+ self.log.debug("EMBLSlitBox: beamFocus HO not defined")
158
156
 
159
157
  def get_step_sizes(self):
160
158
  """Returns Hor and Ver step sizes (list of two values)"""
@@ -20,7 +20,6 @@
20
20
  """EMBLTableMotor"""
21
21
 
22
22
  import atexit
23
- import logging
24
23
  import socket
25
24
  import time
26
25
 
@@ -112,6 +111,6 @@ class EMBLTableMotor(AbstractMotor):
112
111
  """
113
112
  try:
114
113
  self.socket.close()
115
- logging.getLogger("HWR").info("EMBLTableMotor: Socket closed")
114
+ self.log.info("EMBLTableMotor: Socket closed")
116
115
  except Exception:
117
- logging.getLogger("HWR").error("EMBLTableMotor: Failed to close the socket")
116
+ self.log.error("EMBLTableMotor: Failed to close the socket")
@@ -86,20 +86,20 @@ class EMBLXRFSpectrum(AbstractXRFSpectrum):
86
86
  """Controls execution"""
87
87
  if self.spectrum_running:
88
88
  if status == "scaning":
89
- logging.getLogger("HWR").info("XRF spectrum in progress...")
89
+ self.log.info("XRF spectrum in progress...")
90
90
  elif status == "ready":
91
91
  if self.spectrum_running:
92
92
  self.spectrum_data = list(self.cmd_spectrum_start.get())
93
93
  # self.mca_calib = self.chan_spectrum_consts.get_value()[::-1]
94
94
  self.spectrum_command_finished()
95
- logging.getLogger("HWR").info("XRF spectrum finished")
95
+ self.log.info("XRF spectrum finished")
96
96
  elif status == "aborting":
97
97
  if self.spectrum_running:
98
98
  self.spectrum_command_aborted()
99
- logging.getLogger("HWR").info("XRF spectrum aborted!")
99
+ self.log.info("XRF spectrum aborted!")
100
100
  elif status == "error":
101
101
  self.spectrum_command_failed()
102
- logging.getLogger("HWR").error("XRF spectrum failed!")
102
+ self.log.error("XRF spectrum failed!")
103
103
 
104
104
  def cancel_spectrum(self, *args):
105
105
  """Cancels acquisition"""
@@ -905,7 +905,7 @@ class EMBLXrayImaging(QtGraphicsManager, AbstractCollect):
905
905
  if relative_angle:
906
906
  if index >= abs(self.image_count / 360.0 * relative_angle):
907
907
  break
908
- logging.getLogger("HWR").debug("display: " + str(self.current_image_index))
908
+ self.log.debug("display: " + str(self.current_image_index))
909
909
  self.display_image(self.current_image_index)
910
910
  self.current_image_index += direction * step
911
911
  if self.repeat_image_play and self.current_image_index >= self.image_count: