mxcubecore 1.393.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 (176) hide show
  1. mxcubecore/HardwareObjects/ALBA/ALBAAutoProcessing.py +4 -7
  2. mxcubecore/HardwareObjects/ALBA/ALBABackLight.py +6 -7
  3. mxcubecore/HardwareObjects/ALBA/ALBABeamInfo.py +2 -4
  4. mxcubecore/HardwareObjects/ALBA/ALBACats.py +19 -25
  5. mxcubecore/HardwareObjects/ALBA/ALBAClusterJob.py +10 -11
  6. mxcubecore/HardwareObjects/ALBA/ALBACollect.py +49 -71
  7. mxcubecore/HardwareObjects/ALBA/ALBADataAnalysis.py +26 -31
  8. mxcubecore/HardwareObjects/ALBA/ALBAEnergy.py +1 -5
  9. mxcubecore/HardwareObjects/ALBA/ALBAEpsActuator.py +1 -1
  10. mxcubecore/HardwareObjects/ALBA/ALBAFastShutter.py +1 -1
  11. mxcubecore/HardwareObjects/ALBA/ALBAFlux.py +2 -6
  12. mxcubecore/HardwareObjects/ALBA/ALBAFrontLight.py +5 -9
  13. mxcubecore/HardwareObjects/ALBA/ALBAISPyBClient.py +4 -4
  14. mxcubecore/HardwareObjects/ALBA/ALBAMiniDiff.py +20 -27
  15. mxcubecore/HardwareObjects/ALBA/ALBAPilatus.py +12 -15
  16. mxcubecore/HardwareObjects/ALBA/ALBASession.py +1 -4
  17. mxcubecore/HardwareObjects/ALBA/ALBAZoomMotor.py +10 -14
  18. mxcubecore/HardwareObjects/ALBA/ALBAZoomMotorAutoBrightness.py +7 -11
  19. mxcubecore/HardwareObjects/ALBA/XalocMiniDiff.py +7 -8
  20. mxcubecore/HardwareObjects/BeamInfo.py +4 -6
  21. mxcubecore/HardwareObjects/Beamline.py +6 -7
  22. mxcubecore/HardwareObjects/BeamlineActions.py +3 -7
  23. mxcubecore/HardwareObjects/BlissHutchTrigger.py +2 -4
  24. mxcubecore/HardwareObjects/BlissMotorWPositions.py +4 -7
  25. mxcubecore/HardwareObjects/Cats90.py +33 -43
  26. mxcubecore/HardwareObjects/CatsBessy.py +1 -2
  27. mxcubecore/HardwareObjects/CatsMaint.py +2 -2
  28. mxcubecore/HardwareObjects/CentringMath.py +5 -4
  29. mxcubecore/HardwareObjects/DESY/DigitalZoomMotor.py +3 -5
  30. mxcubecore/HardwareObjects/DESY/MjpgStreamVideo.py +1 -3
  31. mxcubecore/HardwareObjects/DESY/P11Collect.py +6 -8
  32. mxcubecore/HardwareObjects/DESY/P11EDNACharacterisation.py +14 -16
  33. mxcubecore/HardwareObjects/DESY/P11ISPyBClient.py +6 -10
  34. mxcubecore/HardwareObjects/DESY/P11NanoDiff.py +5 -5
  35. mxcubecore/HardwareObjects/DataPublisher.py +2 -3
  36. mxcubecore/HardwareObjects/EDNACharacterisation.py +2 -4
  37. mxcubecore/HardwareObjects/EMBL/EMBLBeam.py +3 -3
  38. mxcubecore/HardwareObjects/EMBL/EMBLBeamCentering.py +2 -4
  39. mxcubecore/HardwareObjects/EMBL/EMBLBeamFocusing.py +3 -3
  40. mxcubecore/HardwareObjects/EMBL/EMBLDoorInterlock.py +1 -1
  41. mxcubecore/HardwareObjects/EMBL/EMBLEnergy.py +10 -18
  42. mxcubecore/HardwareObjects/EMBL/EMBLEnergyScan.py +9 -13
  43. mxcubecore/HardwareObjects/EMBL/EMBLFlux.py +10 -12
  44. mxcubecore/HardwareObjects/EMBL/EMBLMachineInfo.py +2 -2
  45. mxcubecore/HardwareObjects/EMBL/EMBLMiniDiff.py +18 -18
  46. mxcubecore/HardwareObjects/EMBL/EMBLMotorsGroup.py +6 -9
  47. mxcubecore/HardwareObjects/EMBL/EMBLOnlineProcessing.py +6 -6
  48. mxcubecore/HardwareObjects/EMBL/EMBLPPUControl.py +1 -1
  49. mxcubecore/HardwareObjects/EMBL/EMBLSSXChip.py +1 -4
  50. mxcubecore/HardwareObjects/EMBL/EMBLSlitBox.py +1 -3
  51. mxcubecore/HardwareObjects/EMBL/EMBLTableMotor.py +2 -3
  52. mxcubecore/HardwareObjects/EMBL/EMBLXRFSpectrum.py +4 -4
  53. mxcubecore/HardwareObjects/EMBL/EMBLXrayImaging.py +1 -1
  54. mxcubecore/HardwareObjects/EMBL/TINEMotor.py +2 -4
  55. mxcubecore/HardwareObjects/EMBLFlexHCD.py +5 -5
  56. mxcubecore/HardwareObjects/EMBLFlexHarvester.py +2 -2
  57. mxcubecore/HardwareObjects/ESRF/ESRFBeam.py +3 -5
  58. mxcubecore/HardwareObjects/ESRF/ESRFBeamInfo.py +1 -5
  59. mxcubecore/HardwareObjects/ESRF/ESRFBeamlineActions.py +2 -3
  60. mxcubecore/HardwareObjects/ESRF/ESRFEnergyScan.py +3 -3
  61. mxcubecore/HardwareObjects/ESRF/ESRFMultiCollect.py +7 -7
  62. mxcubecore/HardwareObjects/ESRF/ESRFPhotonFlux.py +2 -8
  63. mxcubecore/HardwareObjects/ESRF/ESRFSC3.py +11 -18
  64. mxcubecore/HardwareObjects/ESRF/ID29HutchTrigger.py +2 -4
  65. mxcubecore/HardwareObjects/ESRF/MD2MultiCollect.py +4 -4
  66. mxcubecore/HardwareObjects/ESRF/SSXICATLIMS.py +9 -6
  67. mxcubecore/HardwareObjects/EdnaWorkflow.py +9 -11
  68. mxcubecore/HardwareObjects/Energy.py +11 -15
  69. mxcubecore/HardwareObjects/ExporterMotor.py +1 -2
  70. mxcubecore/HardwareObjects/FlexHCD.py +7 -8
  71. mxcubecore/HardwareObjects/FlexHCDMaintenance.py +1 -2
  72. mxcubecore/HardwareObjects/GenericDiffractometer.py +26 -46
  73. mxcubecore/HardwareObjects/Gphl/CollectEmulator.py +6 -7
  74. mxcubecore/HardwareObjects/Gphl/GphlQueueEntry.py +2 -2
  75. mxcubecore/HardwareObjects/Gphl/GphlWorkflow.py +29 -43
  76. mxcubecore/HardwareObjects/Gphl/GphlWorkflowConnection.py +25 -35
  77. mxcubecore/HardwareObjects/ICATLIMS.py +17 -13
  78. mxcubecore/HardwareObjects/LNLS/EPICSMotor.py +1 -4
  79. mxcubecore/HardwareObjects/LNLS/LNLSAperture.py +2 -5
  80. mxcubecore/HardwareObjects/LNLS/LNLSCamera.py +14 -16
  81. mxcubecore/HardwareObjects/LNLS/LNLSCollect.py +20 -30
  82. mxcubecore/HardwareObjects/LNLS/LNLSDetDistMotor.py +7 -11
  83. mxcubecore/HardwareObjects/LNLS/LNLSEnergy.py +4 -6
  84. mxcubecore/HardwareObjects/LNLS/LNLSPilatusDet.py +49 -57
  85. mxcubecore/HardwareObjects/LNLS/LNLSTransmission.py +4 -7
  86. mxcubecore/HardwareObjects/LdapAuthenticator.py +11 -15
  87. mxcubecore/HardwareObjects/Lima2Detector.py +1 -1
  88. mxcubecore/HardwareObjects/LimaEigerDetector.py +1 -1
  89. mxcubecore/HardwareObjects/LimaPilatusDetector.py +1 -4
  90. mxcubecore/HardwareObjects/MAXIV/MAXIVAutoProcessing.py +3 -5
  91. mxcubecore/HardwareObjects/MD3UP.py +1 -2
  92. mxcubecore/HardwareObjects/MachCurrent.py +5 -5
  93. mxcubecore/HardwareObjects/Marvin.py +23 -35
  94. mxcubecore/HardwareObjects/Microdiff.py +6 -8
  95. mxcubecore/HardwareObjects/MicrodiffActuator.py +1 -1
  96. mxcubecore/HardwareObjects/MicrodiffBeamstop.py +1 -3
  97. mxcubecore/HardwareObjects/MicrodiffInOut.py +1 -1
  98. mxcubecore/HardwareObjects/MicrodiffKappaMotor.py +3 -4
  99. mxcubecore/HardwareObjects/MiniDiff.py +35 -57
  100. mxcubecore/HardwareObjects/MotorWPositions.py +3 -3
  101. mxcubecore/HardwareObjects/PlateManipulator.py +2 -2
  102. mxcubecore/HardwareObjects/ProposalTypeISPyBLims.py +8 -16
  103. mxcubecore/HardwareObjects/PyISPyBClient.py +8 -5
  104. mxcubecore/HardwareObjects/QtGraphicsLib.py +2 -2
  105. mxcubecore/HardwareObjects/QtGraphicsManager.py +13 -19
  106. mxcubecore/HardwareObjects/QtInstanceServer.py +27 -55
  107. mxcubecore/HardwareObjects/QtLimaVideo.py +1 -5
  108. mxcubecore/HardwareObjects/QueueManager.py +7 -9
  109. mxcubecore/HardwareObjects/QueueModel.py +6 -8
  110. mxcubecore/HardwareObjects/RedisClient.py +12 -16
  111. mxcubecore/HardwareObjects/SC3.py +1 -2
  112. mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Attenuator.py +1 -3
  113. mxcubecore/HardwareObjects/SOLEIL/PX1/PX1BeamInfo.py +1 -1
  114. mxcubecore/HardwareObjects/SOLEIL/PX1/PX1CatsMaint.py +3 -4
  115. mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Collect.py +11 -11
  116. mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Cryotong.py +8 -18
  117. mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Energy.py +6 -7
  118. mxcubecore/HardwareObjects/SOLEIL/PX1/PX1EnergyScan.py +21 -31
  119. mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Environment.py +1 -1
  120. mxcubecore/HardwareObjects/SOLEIL/PX1/PX1MiniDiff.py +11 -21
  121. mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Pilatus.py +9 -9
  122. mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Pss.py +1 -2
  123. mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Resolution.py +1 -5
  124. mxcubecore/HardwareObjects/SOLEIL/PX1/PX1TangoLight.py +3 -8
  125. mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Attenuator.py +9 -13
  126. mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Collect.py +1 -1
  127. mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Diffractometer.py +22 -22
  128. mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Energy.py +4 -6
  129. mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Guillotine.py +2 -2
  130. mxcubecore/HardwareObjects/SOLEIL/SOLEILCatsMaint.py +6 -8
  131. mxcubecore/HardwareObjects/SOLEIL/SOLEILEnergyScan.py +44 -56
  132. mxcubecore/HardwareObjects/SOLEIL/SOLEILGuillotine.py +2 -2
  133. mxcubecore/HardwareObjects/SOLEIL/SOLEILISPyBClient.py +10 -10
  134. mxcubecore/HardwareObjects/SOLEIL/SOLEILMachineInfo.py +4 -8
  135. mxcubecore/HardwareObjects/SOLEIL/SOLEILPss.py +3 -4
  136. mxcubecore/HardwareObjects/SOLEIL/SOLEILRuche.py +1 -1
  137. mxcubecore/HardwareObjects/SOLEIL/TangoDCMotor.py +10 -16
  138. mxcubecore/HardwareObjects/SardanaMotor.py +4 -5
  139. mxcubecore/HardwareObjects/Session.py +1 -2
  140. mxcubecore/HardwareObjects/SpecMotorWPositions.py +5 -9
  141. mxcubecore/HardwareObjects/SpecMotorWSpecPositions.py +2 -4
  142. mxcubecore/HardwareObjects/SpecShell.py +7 -9
  143. mxcubecore/HardwareObjects/SpecState.py +5 -7
  144. mxcubecore/HardwareObjects/StateMachine.py +9 -10
  145. mxcubecore/HardwareObjects/TangoLimaMpegVideo.py +2 -3
  146. mxcubecore/HardwareObjects/TangoLimaVideo.py +3 -4
  147. mxcubecore/HardwareObjects/TangoMachineInfo.py +1 -3
  148. mxcubecore/HardwareObjects/TangoMotor.py +1 -3
  149. mxcubecore/HardwareObjects/UserTypeISPyBLims.py +7 -9
  150. mxcubecore/HardwareObjects/XMLRPCServer.py +19 -21
  151. mxcubecore/HardwareObjects/abstract/AbstractAperture.py +6 -11
  152. mxcubecore/HardwareObjects/abstract/AbstractCollect.py +6 -16
  153. mxcubecore/HardwareObjects/abstract/AbstractDetector.py +2 -7
  154. mxcubecore/HardwareObjects/abstract/AbstractEnergyScan.py +1 -1
  155. mxcubecore/HardwareObjects/abstract/AbstractLims.py +3 -4
  156. mxcubecore/HardwareObjects/abstract/AbstractNState.py +1 -2
  157. mxcubecore/HardwareObjects/abstract/AbstractProcedure.py +3 -4
  158. mxcubecore/HardwareObjects/abstract/AbstractSampleChanger.py +1 -1
  159. mxcubecore/HardwareObjects/abstract/AbstractVideoDevice.py +4 -4
  160. mxcubecore/HardwareObjects/abstract/AbstractXRFSpectrum.py +1 -1
  161. mxcubecore/HardwareObjects/abstract/ISPyBAbstractLims.py +11 -13
  162. mxcubecore/HardwareObjects/mockup/BeamlineTestMockup.py +11 -14
  163. mxcubecore/HardwareObjects/mockup/EnergyScanMockup.py +10 -11
  164. mxcubecore/HardwareObjects/mockup/ISPyBClientMockup.py +6 -6
  165. mxcubecore/HardwareObjects/mockup/ISPyBRestClientMockup.py +1 -1
  166. mxcubecore/HardwareObjects/mockup/LimaDetectorMockup.py +1 -2
  167. mxcubecore/HardwareObjects/mockup/MDCameraMockup.py +5 -6
  168. mxcubecore/HardwareObjects/mockup/MicrodiffInOutMockup.py +1 -1
  169. mxcubecore/HardwareObjects/mockup/MultiCollectMockup.py +1 -1
  170. mxcubecore/HardwareObjects/mockup/ShapeHistoryMockup.py +1 -2
  171. mxcubecore/HardwareObjects/mockup/XRFMockup.py +3 -6
  172. {mxcubecore-1.393.0.dist-info → mxcubecore-1.394.0.dist-info}/METADATA +1 -1
  173. {mxcubecore-1.393.0.dist-info → mxcubecore-1.394.0.dist-info}/RECORD +176 -176
  174. {mxcubecore-1.393.0.dist-info → mxcubecore-1.394.0.dist-info}/COPYING +0 -0
  175. {mxcubecore-1.393.0.dist-info → mxcubecore-1.394.0.dist-info}/COPYING.LESSER +0 -0
  176. {mxcubecore-1.393.0.dist-info → mxcubecore-1.394.0.dist-info}/WHEEL +0 -0
@@ -15,7 +15,7 @@ from mxcubecore.TaskUtils import cleanup
15
15
 
16
16
  class SOLEILEnergyScan(HardwareObject):
17
17
  def init(self):
18
- logging.getLogger("HWR").info(
18
+ self.log.info(
19
19
  "############################# EnergyScan: INIT HWOBJ ###################"
20
20
  )
21
21
  self.ready_event = gevent.event.Event()
@@ -48,7 +48,7 @@ class SOLEILEnergyScan(HardwareObject):
48
48
  try:
49
49
  self.energyScanArgs = self.get_channel_object("escan_args")
50
50
  except KeyError:
51
- logging.getLogger("HWR").warning(
51
+ self.log.warning(
52
52
  "EnergyScan: error initializing energy scan arguments (missing channel)"
53
53
  )
54
54
  self.energyScanArgs = None
@@ -57,7 +57,7 @@ class SOLEILEnergyScan(HardwareObject):
57
57
  self.scanStatusMessage = self.get_channel_object("scanStatusMsg")
58
58
  except KeyError:
59
59
  self.scanStatusMessage = None
60
- logging.getLogger("HWR").warning(
60
+ self.log.warning(
61
61
  "EnergyScan: energy messages will not appear (missing channel)"
62
62
  )
63
63
  else:
@@ -83,7 +83,7 @@ class SOLEILEnergyScan(HardwareObject):
83
83
  "commandNotReady", self.scanCommandNotReady
84
84
  )
85
85
  except AttributeError as diag:
86
- logging.getLogger("HWR").warning(
86
+ self.log.warning(
87
87
  "EnergyScan: error initializing energy scan (%s)" % str(diag)
88
88
  )
89
89
  self.do_energy_scan = Xanes # .xanes(None, None) #None
@@ -95,26 +95,26 @@ class SOLEILEnergyScan(HardwareObject):
95
95
  self.lastResolution = None
96
96
 
97
97
  if HWR.beamline.lims is None:
98
- logging.getLogger("HWR").warning(
98
+ self.log.warning(
99
99
  "EnergyScan: you should specify the database hardware object"
100
100
  )
101
101
  self.scanInfo = None
102
102
 
103
103
  self.cryostreamHO = self.get_object_by_role("cryostream")
104
104
  if self.cryostreamHO is None:
105
- logging.getLogger("HWR").warning(
105
+ self.log.warning(
106
106
  "EnergyScan: you should specify the cryo stream hardware object"
107
107
  )
108
108
 
109
109
  self.machcurrentHO = self.get_object_by_role("machcurrent")
110
110
  if self.machcurrentHO is None:
111
- logging.getLogger("HWR").warning(
111
+ self.log.warning(
112
112
  "EnergyScan: you should specify the machine current hardware object"
113
113
  )
114
114
 
115
115
  self.fluodetectorHO = self.get_object_by_role("fluodetector")
116
116
  if self.fluodetectorHO is None:
117
- logging.getLogger("HWR").warning(
117
+ self.log.warning(
118
118
  "EnergyScan: you should specify the fluorescence detector hardware object"
119
119
  )
120
120
 
@@ -128,7 +128,7 @@ class SOLEILEnergyScan(HardwareObject):
128
128
  "commandNotReady", self.moveEnergyCmdNotReady
129
129
  )
130
130
  except AttributeError as diag:
131
- logging.getLogger("HWR").warning(
131
+ self.log.warning(
132
132
  "EnergyScan: error initializing move energy (%s)" % str(diag)
133
133
  )
134
134
  self.moveEnergy = None
@@ -138,7 +138,7 @@ class SOLEILEnergyScan(HardwareObject):
138
138
  HWR.beamline.energy.connect("stateChanged", self.energyStateChanged)
139
139
  HWR.beamline.energy.connect("limitsChanged", self.energyLimitsChanged)
140
140
  if HWR.beamline.resolution is None:
141
- logging.getLogger("HWR").warning(
141
+ self.log.warning(
142
142
  "EnergyScan: no resolution motor (unable to restore it after moving the energy)"
143
143
  )
144
144
  else:
@@ -152,7 +152,7 @@ class SOLEILEnergyScan(HardwareObject):
152
152
 
153
153
  if self.is_connected():
154
154
  self.sConnected()
155
- logging.getLogger("HWR").info(
155
+ self.log.info(
156
156
  "############################# EnergyScan: INIT HWOBJ IS FINISHED ###################"
157
157
  )
158
158
 
@@ -186,17 +186,17 @@ class SOLEILEnergyScan(HardwareObject):
186
186
  self.emit("disconnected", ())
187
187
 
188
188
  def setElement(self):
189
- logging.getLogger("HWR").debug("EnergyScan: setElement")
189
+ self.log.debug("EnergyScan: setElement")
190
190
  self.emit("setElement", (self._element, self._edge))
191
191
 
192
192
  def newPoint(self, x, y):
193
- logging.getLogger("HWR").debug("EnergyScan:newPoint")
193
+ self.log.debug("EnergyScan:newPoint")
194
194
  logging.info("EnergyScan newPoint %s, %s" % (x, y))
195
195
  self.emit("addNewPoint", (x, y))
196
196
  self.emit("newScanPoint", (x, y))
197
197
 
198
198
  def newScan(self, scanParameters):
199
- logging.getLogger("HWR").debug("EnergyScan:newScan")
199
+ self.log.debug("EnergyScan:newScan")
200
200
  self.emit("newScan", (scanParameters,))
201
201
 
202
202
  # # Energy scan commands
@@ -212,7 +212,7 @@ class SOLEILEnergyScan(HardwareObject):
212
212
  ):
213
213
  self._element = element
214
214
  self._edge = edge
215
- logging.getLogger("HWR").debug(
215
+ self.log.debug(
216
216
  "EnergyScan: starting energy scan %s, %s" % (self._element, self._edge)
217
217
  )
218
218
  self.setElement()
@@ -236,13 +236,11 @@ class SOLEILEnergyScan(HardwareObject):
236
236
  if self.fluodetectorHO is not None:
237
237
  self.scanInfo["fluorescenceDetector"] = self.fluodetectorHO.username
238
238
  if not os.path.isdir(directory):
239
- logging.getLogger("HWR").debug(
240
- "EnergyScan: creating directory %s" % directory
241
- )
239
+ self.log.debug("EnergyScan: creating directory %s" % directory)
242
240
  try:
243
241
  os.makedirs(directory)
244
242
  except OSError as diag:
245
- logging.getLogger("HWR").error(
243
+ self.log.error(
246
244
  "EnergyScan: error creating directory %s (%s)"
247
245
  % (directory, str(diag))
248
246
  )
@@ -258,7 +256,7 @@ class SOLEILEnergyScan(HardwareObject):
258
256
  # try:
259
257
  # curr=self.energyScanArgs.get_value()
260
258
  # except:
261
- # logging.getLogger("HWR").exception('EnergyScan: error getting energy scan parameters')
259
+ # self.log.exception('EnergyScan: error getting energy scan parameters')
262
260
  # self.emit('scanStatusChanged', ("Error getting energy scan parameters",))
263
261
  # return False
264
262
  # try:
@@ -273,14 +271,12 @@ class SOLEILEnergyScan(HardwareObject):
273
271
 
274
272
  try:
275
273
  # self.energyScanArgs.set_value(curr)
276
- logging.getLogger("HWR").debug(
274
+ self.log.debug(
277
275
  "EnergyScan: current energy scan parameters (%s, %s, %s, %s)"
278
276
  % (element, edge, directory, prefix)
279
277
  )
280
278
  except Exception:
281
- logging.getLogger("HWR").exception(
282
- "EnergyScan: error setting energy scan parameters"
283
- )
279
+ self.log.exception("EnergyScan: error setting energy scan parameters")
284
280
  self.emit("scanStatusChanged", ("Error setting energy scan parameters",))
285
281
  return False
286
282
  try:
@@ -291,7 +287,7 @@ class SOLEILEnergyScan(HardwareObject):
291
287
  except Exception:
292
288
  import traceback
293
289
 
294
- logging.getLogger("HWR").error(
290
+ self.log.error(
295
291
  "EnergyScan: problem calling sequence %s" % traceback.format_exc()
296
292
  )
297
293
  self.emit("scanStatusChanged", ("Error problem spec macro",))
@@ -330,12 +326,10 @@ class SOLEILEnergyScan(HardwareObject):
330
326
  self.ready_event.set()
331
327
 
332
328
  def scanCommandFinished(self, result, *args):
333
- logging.getLogger("HWR").debug("EnergyScan: energy scan result is %s" % result)
329
+ self.log.debug("EnergyScan: energy scan result is %s" % result)
334
330
  with cleanup(self.ready_event.set):
335
331
  self.scanInfo["endTime"] = time.strftime("%Y-%m-%d %H:%M:%S")
336
- logging.getLogger("HWR").debug(
337
- "EnergyScan: energy scan result is %s" % result
338
- )
332
+ self.log.debug("EnergyScan: energy scan result is %s" % result)
339
333
  self.scanning = False
340
334
  if result == -1:
341
335
  self.storeEnergyScan()
@@ -413,7 +407,7 @@ class SOLEILEnergyScan(HardwareObject):
413
407
  # f=open(rawScanFile, "w")
414
408
  # pyarch_f=open(archiveRawScanFile, "w")
415
409
  # except:
416
- # logging.getLogger("HWR").exception("could not create raw scan files")
410
+ # self.log.exception("could not create raw scan files")
417
411
  # self.storeEnergyScan()
418
412
  # self.emit("energyScanFailed", ())
419
413
  # return
@@ -462,14 +456,14 @@ class SOLEILEnergyScan(HardwareObject):
462
456
  comm = ""
463
457
 
464
458
  self.thEdge = self.xanes.e_edge
465
- logging.getLogger("HWR").info(
459
+ self.log.info(
466
460
  "th. Edge %s ; chooch results are pk=%f, ip=%f, rm=%f"
467
461
  % (self.thEdge, pk, ip, rm)
468
462
  )
469
463
  logging.info("math.fabs(self.thEdge - ip) %s" % math.fabs(self.thEdge - ip))
470
464
  logging.info("self.thEdgeThreshold %s" % self.thEdgeThreshold)
471
465
 
472
- logging.getLogger("HWR").warning(
466
+ self.log.warning(
473
467
  "EnergyScan: calculated peak (%f) is more that 20eV %s the theoretical value (%f). Please check your scan and choose the energies manually"
474
468
  % (
475
469
  savpk,
@@ -488,7 +482,7 @@ class SOLEILEnergyScan(HardwareObject):
488
482
  % (savpk, self.thEdge)
489
483
  )
490
484
 
491
- logging.getLogger("HWR").warning(
485
+ self.log.warning(
492
486
  "EnergyScan: calculated peak (%f) is more that 20eV %s the theoretical value (%f). Please check your scan and choose the energies manually"
493
487
  % (
494
488
  savpk,
@@ -563,7 +557,7 @@ class SOLEILEnergyScan(HardwareObject):
563
557
  for i in range(len(chooch_graph_x)):
564
558
  chooch_graph_x[i] = chooch_graph_x[i] / 1000.0
565
559
 
566
- logging.getLogger("HWR").info("<chooch> Saving png")
560
+ self.log.info("<chooch> Saving png")
567
561
  # prepare to save png files
568
562
  title = "%10s %6s %6s\n%10s %6.2f %6.2f\n%10s %6.2f %6.2f" % (
569
563
  "energy",
@@ -596,25 +590,25 @@ class SOLEILEnergyScan(HardwareObject):
596
590
  escan_archivepng = os.path.extsep.join((scanArchiveFilePrefix, "png"))
597
591
  self.scanInfo["jpegChoochFileFullPath"] = str(escan_archivepng)
598
592
  try:
599
- logging.getLogger("HWR").info(
593
+ self.log.info(
600
594
  "Rendering energy scan and Chooch graphs to PNG file : %s", escan_png
601
595
  )
602
596
  canvas.print_figure(escan_png, dpi=80)
603
597
  except Exception:
604
- logging.getLogger("HWR").exception("could not print figure")
598
+ self.log.exception("could not print figure")
605
599
  try:
606
- logging.getLogger("HWR").info(
600
+ self.log.info(
607
601
  "Saving energy scan to archive directory for ISPyB : %s",
608
602
  escan_archivepng,
609
603
  )
610
604
  canvas.print_figure(escan_archivepng, dpi=80)
611
605
  except Exception:
612
- logging.getLogger("HWR").exception("could not save figure")
606
+ self.log.exception("could not save figure")
613
607
 
614
608
  self.storeEnergyScan()
615
609
  self.scanInfo = None
616
610
 
617
- logging.getLogger("HWR").info("<chooch> returning")
611
+ self.log.info("<chooch> returning")
618
612
  self.emit(
619
613
  "chooch_finished",
620
614
  (
@@ -686,7 +680,7 @@ class SOLEILEnergyScan(HardwareObject):
686
680
  try:
687
681
  return HWR.beamline.energy.get_value()
688
682
  except Exception:
689
- logging.getLogger("HWR").exception("EnergyScan: couldn't read energy")
683
+ self.log.exception("EnergyScan: couldn't read energy")
690
684
  return None
691
685
  elif (
692
686
  self.energy2WavelengthConstant is not None
@@ -711,7 +705,7 @@ class SOLEILEnergyScan(HardwareObject):
711
705
  try:
712
706
  return self.energy2wavelength(HWR.beamline.energy.get_value())
713
707
  except Exception:
714
- logging.getLogger("HWR").exception("EnergyScan: couldn't read energy")
708
+ self.log.exception("EnergyScan: couldn't read energy")
715
709
  return None
716
710
  else:
717
711
  return self.defaultWavelength
@@ -724,41 +718,37 @@ class SOLEILEnergyScan(HardwareObject):
724
718
  return limits
725
719
 
726
720
  def startMoveEnergy(self, value, wait=True):
727
- logging.getLogger("HWR").info("Moving energy to (%s)" % value)
721
+ self.log.info("Moving energy to (%s)" % value)
728
722
  try:
729
723
  value = float(value)
730
724
  except (TypeError, ValueError) as diag:
731
- logging.getLogger("HWR").error("EnergyScan: invalid energy (%s)" % value)
725
+ self.log.error("EnergyScan: invalid energy (%s)" % value)
732
726
  return False
733
727
 
734
728
  try:
735
729
  curr_energy = HWR.beamline.energy.get_value()
736
730
  except Exception:
737
- logging.getLogger("HWR").exception(
738
- "EnergyScan: couldn't get current energy"
739
- )
731
+ self.log.exception("EnergyScan: couldn't get current energy")
740
732
  curr_energy = None
741
733
 
742
734
  if value != curr_energy:
743
- logging.getLogger("HWR").info("Moving energy: checking limits")
735
+ self.log.info("Moving energy: checking limits")
744
736
  try:
745
737
  lims = HWR.beamline.energy.get_limits()
746
738
  except Exception:
747
- logging.getLogger("HWR").exception(
748
- "EnergyScan: couldn't get energy limits"
749
- )
739
+ self.log.exception("EnergyScan: couldn't get energy limits")
750
740
  in_limits = False
751
741
  else:
752
742
  in_limits = value >= lims[0] and value <= lims[1]
753
743
 
754
744
  if in_limits:
755
- logging.getLogger("HWR").info("Moving energy: limits ok")
745
+ self.log.info("Moving energy: limits ok")
756
746
  self.previousResolution = None
757
747
  if HWR.beamline.resolution is not None:
758
748
  try:
759
749
  self.previousResolution = HWR.beamline.resolution.get_value()
760
750
  except Exception:
761
- logging.getLogger("HWR").exception(
751
+ self.log.exception(
762
752
  "EnergyScan: couldn't get current resolution"
763
753
  )
764
754
  self.moveEnergyCmdStarted()
@@ -776,7 +766,7 @@ class SOLEILEnergyScan(HardwareObject):
776
766
  else:
777
767
  gevent.spawn(change_egy)
778
768
  else:
779
- logging.getLogger("HWR").error(
769
+ self.log.error(
780
770
  "EnergyScan: energy (%f) out of limits (%s)" % (value, lims)
781
771
  )
782
772
  return False
@@ -788,9 +778,7 @@ class SOLEILEnergyScan(HardwareObject):
788
778
  def set_wavelength(self, value, wait=True):
789
779
  energy_val = self.energy2wavelength(value)
790
780
  if energy_val is None:
791
- logging.getLogger("HWR").error(
792
- "EnergyScan: unable to convert wavelength to energy"
793
- )
781
+ self.log.error("EnergyScan: unable to convert wavelength to energy")
794
782
  return False
795
783
  return self.startMoveEnergy(energy_val, wait)
796
784
 
@@ -125,7 +125,7 @@ class SOLEILGuillotine(BaseHardwareObjects.HardwareObject):
125
125
  "tangoname_pss"
126
126
  ) # PyTango.DeviceProxy('I11-MA-CE/PSS/DB_DATA')
127
127
  except Exception:
128
- logging.getLogger("HWR").error(
128
+ self.log.error(
129
129
  "Guillotine I11-MA-CE/PSS/DB_DATA: tangopssDevice is not defined "
130
130
  )
131
131
 
@@ -133,7 +133,7 @@ class SOLEILGuillotine(BaseHardwareObjects.HardwareObject):
133
133
  self.memIntChan = self.get_channel_object("memInt")
134
134
  self.connect(self.memIntChan, "update", self.updateGuillotine)
135
135
  else:
136
- logging.getLogger("HWR").error("Guillotine: tangopssDevice is not defined ")
136
+ self.log.error("Guillotine: tangopssDevice is not defined ")
137
137
 
138
138
  def shutterStateChanged(self, value):
139
139
  #
@@ -45,7 +45,7 @@ class SOLEILISPyBClient(ISPyBClient):
45
45
  hdlr.setFormatter(formatter)
46
46
  logger.addHandler(hdlr)
47
47
  except Exception:
48
- logging.getLogger("HWR").exception("")
48
+ self.log.exception("")
49
49
 
50
50
  logger.setLevel(logging.INFO)
51
51
 
@@ -58,7 +58,7 @@ class SOLEILISPyBClient(ISPyBClient):
58
58
  # Initialize ldap
59
59
  self.ldapConnection = self.get_object_by_role("ldapServer")
60
60
  if self.ldapConnection is None:
61
- logging.getLogger("HWR").debug("LDAP Server is not available")
61
+ self.log.debug("LDAP Server is not available")
62
62
 
63
63
  self.loginType = self.get_property("loginType") or "proposal"
64
64
  self.loginTranslate = self.get_property("loginTranslate") or True
@@ -100,7 +100,7 @@ class SOLEILISPyBClient(ISPyBClient):
100
100
  return
101
101
  except Exception:
102
102
  print(traceback.print_exc())
103
- logging.getLogger("HWR").exception(_CONNECTION_ERROR_MSG)
103
+ self.log.exception(_CONNECTION_ERROR_MSG)
104
104
  return
105
105
  try:
106
106
  proposals = HWR.beamline.session["proposals"]
@@ -111,19 +111,19 @@ class SOLEILISPyBClient(ISPyBClient):
111
111
  try:
112
112
  self._translations[code]["ldap"] = proposal.ldap
113
113
  except AttributeError:
114
- logging.getLogger("HWR").exception("")
114
+ self.log.exception("")
115
115
  try:
116
116
  self._translations[code]["ispyb"] = proposal.ispyb
117
117
  except AttributeError:
118
- logging.getLogger("HWR").exception("")
118
+ self.log.exception("")
119
119
  try:
120
120
  self._translations[code]["gui"] = proposal.gui
121
121
  except AttributeError:
122
- logging.getLogger("HWR").exception("")
122
+ self.log.exception("")
123
123
  except IndexError:
124
- logging.getLogger("HWR").exception("")
124
+ self.log.exception("")
125
125
  except Exception:
126
- logging.getLogger("HWR").exception("")
126
+ self.log.exception("")
127
127
 
128
128
  def translate(self, code, what):
129
129
  """
@@ -187,7 +187,7 @@ class SOLEILISPyBClient(ISPyBClient):
187
187
  logging.debug("SOLEIL ISPyBClient - %s is %s " % (prop, ispyb_path))
188
188
  mx_collect_dict[prop] = ispyb_path
189
189
  except Exception:
190
- logging.getLogger("HWR").exception("")
190
+ self.log.exception("")
191
191
 
192
192
  def prepare_image_for_lims(self, image_dict):
193
193
  for prop in ["jpegThumbnailFileFullPath", "jpegFileFullPath"]:
@@ -196,7 +196,7 @@ class SOLEILISPyBClient(ISPyBClient):
196
196
  ispyb_path = HWR.beamline.session.path_to_ispyb(path)
197
197
  image_dict[prop] = ispyb_path
198
198
  except Exception:
199
- logging.getLogger("HWR").exception("")
199
+ self.log.exception("")
200
200
 
201
201
 
202
202
  def test_hwo(hwo):
@@ -195,7 +195,7 @@ class SOLEILMachineInfo(HardwareObject):
195
195
  self.cryojet_in_changed(self.chan_cryojet_in.get_value())
196
196
  self.chan_cryojet_in.connect_signal("update", self.cryojet_in_changed)
197
197
  else:
198
- logging.getLogger("HWR").debug("MachineInfo: Cryojet channel not defined")
198
+ self.log.debug("MachineInfo: Cryojet channel not defined")
199
199
 
200
200
  self.chan_sample_temperature = self.get_channel_object("sampleTemp")
201
201
  if self.chan_sample_temperature is not None:
@@ -240,7 +240,7 @@ class SOLEILMachineInfo(HardwareObject):
240
240
 
241
241
  def cryojet_in_changed(self, value):
242
242
  """Cryojet in/out value changed"""
243
- logging.getLogger("HWR").debug("cryojet_in_changed: %s" % value)
243
+ self.log.debug("cryojet_in_changed: %s" % value)
244
244
  self.values_list[4]["in_range"] = False
245
245
  self.values_list[4]["bold"] = True
246
246
 
@@ -259,9 +259,7 @@ class SOLEILMachineInfo(HardwareObject):
259
259
  % self.chan_sample_temperature.get_value()
260
260
  )
261
261
  else:
262
- logging.getLogger("HWR").debug(
263
- "chan_sample_temperature: %s" % self.chan_sample_temperature
264
- )
262
+ self.log.debug("chan_sample_temperature: %s" % self.chan_sample_temperature)
265
263
  self.re_emit_values()
266
264
 
267
265
  def mach_current_changed(self, value):
@@ -363,9 +361,7 @@ class SOLEILMachineInfo(HardwareObject):
363
361
  self.values_list[5]["value"] = "Dewar level in range"
364
362
  self.values_list[5]["in_range"] = True
365
363
 
366
- logging.getLogger("HWR").error(
367
- "chan_sc_auto_refill %s" % self.chan_sc_auto_refill.get_value()
368
- )
364
+ self.log.error("chan_sc_auto_refill %s" % self.chan_sc_auto_refill.get_value())
369
365
  if self.chan_sc_auto_refill.get_value() == 0:
370
366
  self.values_list[5]["value"] += ", refill OFF"
371
367
  else:
@@ -1,5 +1,4 @@
1
1
  # -*- coding: utf-8 -*-
2
- import logging
3
2
 
4
3
  from PyTango import DeviceProxy
5
4
 
@@ -25,12 +24,12 @@ class SOLEILPss(HardwareObject):
25
24
  try:
26
25
  self.device = DeviceProxy(self.get_property("tangoname"))
27
26
  except Exception:
28
- logging.getLogger("HWR").error(
27
+ self.log.error(
29
28
  "%s: unknown pss device name", self.get_property("tangoname")
30
29
  )
31
30
 
32
31
  if self.get_property("hutch") not in ("optical", "experimental"):
33
- logging.getLogger("HWR").error(
32
+ self.log.error(
34
33
  "SOLEILPss.init Hutch property %s is not correct",
35
34
  self.get_property("hutch"),
36
35
  )
@@ -48,6 +47,6 @@ class SOLEILPss(HardwareObject):
48
47
  return self.get_state(self.stateChan.get_value())
49
48
 
50
49
  def value_changed(self, value):
51
- logging.getLogger("HWR").info("%s: SOLEILPss.valueChanged, %s", self.id, value)
50
+ self.log.info("%s: SOLEILPss.valueChanged, %s", self.id, value)
52
51
  state = self.get_state(value)
53
52
  self.emit("wagoStateChanged", (state,))
@@ -27,7 +27,7 @@ class SOLEILRuche(HardwareObject):
27
27
  if HWR.beamline.session.user_id is None:
28
28
  return
29
29
  except Exception:
30
- logging.getLogger("HWR").exception("")
30
+ self.log.exception("")
31
31
  if os.path.isdir(path):
32
32
  path_to_sync = path
33
33
  elif os.path.exists(path):
@@ -60,7 +60,7 @@ class TangoDCMotor(HardwareObject):
60
60
  try:
61
61
  self.threshold = float(threshold)
62
62
  except Exception:
63
- logging.getLogger("HWR").exception("")
63
+ self.log.exception("")
64
64
 
65
65
  self.set_is_ready(True)
66
66
  try:
@@ -81,13 +81,11 @@ class TangoDCMotor(HardwareObject):
81
81
  self.positionValue = value
82
82
  if abs(float(value) - self.old_value) > self.threshold:
83
83
  try:
84
- # logging.getLogger("HWR").error("%s: TangoDCMotor new position , %s", self.name(), value)
84
+ # self.log.error("%s: TangoDCMotor new position , %s", self.name(), value)
85
85
  self.emit("valueChanged", (value,))
86
86
  self.old_value = value
87
87
  except Exception:
88
- logging.getLogger("HWR").error(
89
- "%s: TangoDCMotor not responding, %s", self.id, ""
90
- )
88
+ self.log.error("%s: TangoDCMotor not responding, %s", self.id, "")
91
89
  self.old_value = value
92
90
 
93
91
  def is_ready(self):
@@ -116,14 +114,14 @@ class TangoDCMotor(HardwareObject):
116
114
 
117
115
  def get_limits(self):
118
116
  try:
119
- logging.getLogger("HWR").info(
117
+ self.log.info(
120
118
  "TangoDCMotor.get_limits: trying to get limits for motor_name %s "
121
119
  % (self.motor_name)
122
120
  )
123
121
  limits = self.ho.getMotorLimits(
124
122
  self.motor_name
125
123
  ) # limitsCommand() # self.ho.getMotorLimits(self.motor_name)
126
- logging.getLogger("HWR").info(
124
+ self.log.info(
127
125
  "TangoDCMotor.get_limits: Getting limits for %s -- %s "
128
126
  % (self.motor_name, str(limits))
129
127
  )
@@ -131,7 +129,7 @@ class TangoDCMotor(HardwareObject):
131
129
  limits = numpy.array([-10000, 10000])
132
130
  except Exception:
133
131
  # import traceback
134
- # logging.getLogger("HWR").info("TangoDCMotor.get_limits: Cannot get limits for %s.\nException %s " % (self.motor_name, traceback.print_exc()))
132
+ # self.log.info("TangoDCMotor.get_limits: Cannot get limits for %s.\nException %s " % (self.motor_name, traceback.print_exc()))
135
133
  if self.motor_name in [
136
134
  "detector_distance",
137
135
  "detector_horizontal",
@@ -149,12 +147,10 @@ class TangoDCMotor(HardwareObject):
149
147
  if limits is None:
150
148
  try:
151
149
  limits = self.get_property("min"), self.get_property("max")
152
- logging.getLogger("HWR").info(
153
- "TangoDCMotor.get_limits: %.4f ***** %.4f" % limits
154
- )
150
+ self.log.info("TangoDCMotor.get_limits: %.4f ***** %.4f" % limits)
155
151
  limits = numpy.array(limits)
156
152
  except Exception:
157
- # logging.getLogger("HWR").info("TangoDCMotor.get_limits: Cannot get limits for %s" % self.name())
153
+ # self.log.info("TangoDCMotor.get_limits: Cannot get limits for %s" % self.name())
158
154
  limits = None
159
155
  return limits
160
156
 
@@ -210,9 +206,7 @@ class TangoDCMotor(HardwareObject):
210
206
  type(value),
211
207
  )
212
208
  logging.info("TangoDCMotor: move. motor will go to %s " % str(value))
213
- logging.getLogger("HWR").info(
214
- "TangoDCMotor.move to absolute position: %.3f" % value
215
- )
209
+ self.log.info("TangoDCMotor.move to absolute position: %.3f" % value)
216
210
  logging.getLogger("TangoClient").info(
217
211
  "TangoDCMotor move. Trying to go to %s: that is a '%s'",
218
212
  value,
@@ -232,7 +226,7 @@ class TangoDCMotor(HardwareObject):
232
226
  # logging.info("TangoDCMotor: value %s " % str(value))
233
227
 
234
228
  def stop(self):
235
- logging.getLogger("HWR").info("TangoDCMotor.stop")
229
+ self.log.info("TangoDCMotor.stop")
236
230
  stopcmd = self.get_command_object("Stop")()
237
231
  if not stopcmd:
238
232
  stopcmd = TangoCommand("stopcmd", "Stop", self.tangoname)
@@ -1,5 +1,4 @@
1
1
  import enum
2
- import logging
3
2
  import time
4
3
 
5
4
  from gevent import Timeout
@@ -72,27 +71,27 @@ class SardanaMotor(AbstractMotor):
72
71
 
73
72
  self.actuator_name = self.get_property("actuator_name")
74
73
  if not self.name:
75
- logging.getLogger("HWR").info(
74
+ self.log.info(
76
75
  "Undefined property actuator_name in xml. Applying name during instance creation."
77
76
  )
78
77
  self.actuator_name = self.name
79
78
 
80
79
  self.threshold = self.get_property("threshold", self.threshold_default)
81
- logging.getLogger("HWR").debug(
80
+ self.log.debug(
82
81
  "Motor {0} threshold = {1}".format(self.actuator_name, self.threshold)
83
82
  )
84
83
 
85
84
  self.move_threshold = self.get_property(
86
85
  "move_threshold", self.move_threshold_default
87
86
  )
88
- logging.getLogger("HWR").debug(
87
+ self.log.debug(
89
88
  "Motor {0} move_threshold = {1}".format(
90
89
  self.actuator_name, self.move_threshold
91
90
  )
92
91
  )
93
92
 
94
93
  self.polling = self.get_property("interval", self.polling_default)
95
- logging.getLogger("HWR").debug(
94
+ self.log.debug(
96
95
  "Motor {0} polling = {1}".format(self.actuator_name, self.polling)
97
96
  )
98
97
 
@@ -5,7 +5,6 @@ Contains information regarding the current session and methods to
5
5
  access and manipulate this information.
6
6
  """
7
7
 
8
- import logging
9
8
  import os
10
9
  import socket
11
10
  import time
@@ -94,7 +93,7 @@ class Session(HardwareObject):
94
93
  domain = socket.getfqdn().split(".")
95
94
  self.email_extension = ".".join((domain[-2], domain[-1]))
96
95
  except (TypeError, IndexError):
97
- logging.getLogger("HWR").exception("")
96
+ self.log.exception("")
98
97
 
99
98
  self.set_base_data_directories(
100
99
  file_info["base_directory"],