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
@@ -339,7 +339,7 @@ class GenericDiffractometer(HardwareObject):
339
339
  # self.image_height = HWR.beamline.sample_view.camera.get_height()
340
340
  # self.image_width = HWR.beamline.sample_view.camera.get_width()
341
341
  # else:
342
- # logging.getLogger("HWR").debug(
342
+ # self.log.debug(
343
343
  # "Diffractometer: " + "Camera hwobj is not defined"
344
344
  # )
345
345
 
@@ -350,9 +350,7 @@ class GenericDiffractometer(HardwareObject):
350
350
  )
351
351
  else:
352
352
  self.beam_position = [0, 0]
353
- logging.getLogger("HWR").warning(
354
- "Diffractometer: " + "BeamInfo hwobj is not defined"
355
- )
353
+ self.log.warning("Diffractometer: " + "BeamInfo hwobj is not defined")
356
354
 
357
355
  self.front_light_switch = self.get_object_by_role("frontlightswitch")
358
356
  self.back_light_switch = self.get_object_by_role("backlightswitch")
@@ -363,7 +361,7 @@ class GenericDiffractometer(HardwareObject):
363
361
  try:
364
362
  self.used_channels_list = eval(ss0)
365
363
  except Exception:
366
- logging.getLogger("HWR").exception("")
364
+ self.log.exception("")
367
365
 
368
366
  for channel_name in self.used_channels_list:
369
367
  self.channel_dict[channel_name] = self.get_channel_object(channel_name)
@@ -392,7 +390,7 @@ class GenericDiffractometer(HardwareObject):
392
390
  try:
393
391
  self.used_commands_list = eval(self.get_property("used_commands", "[]"))
394
392
  except Exception:
395
- logging.getLogger("HWR").exception("")
393
+ self.log.exception("")
396
394
  for command_name in self.used_commands_list:
397
395
  self.command_dict[command_name] = self.get_command_object(command_name)
398
396
 
@@ -442,7 +440,7 @@ class GenericDiffractometer(HardwareObject):
442
440
  temp_motor_hwobj, "stateChanged", self.zoom_motor_state_changed
443
441
  )
444
442
  else:
445
- logging.getLogger("HWR").warning(
443
+ self.log.warning(
446
444
  "Diffractometer: Motor "
447
445
  + "%s listed in the centring motor list, but not initalized"
448
446
  % motor_name
@@ -450,9 +448,7 @@ class GenericDiffractometer(HardwareObject):
450
448
 
451
449
  # sample changer -----------------------------------------------------
452
450
  if HWR.beamline.sample_changer is None:
453
- logging.getLogger("HWR").warning(
454
- "Diffractometer: Sample Changer is not defined"
455
- )
451
+ self.log.warning("Diffractometer: Sample Changer is not defined")
456
452
  else:
457
453
  # By default use sample changer if it's defined and transfer_mode
458
454
  # is set to SAMPLE_CHANGER.
@@ -479,21 +475,19 @@ class GenericDiffractometer(HardwareObject):
479
475
  self.motor_hwobj_dict["sampy"]
480
476
  )
481
477
  except Exception:
482
- logging.getLogger("HWR").exception("")
478
+ self.log.exception("")
483
479
 
484
480
  try:
485
481
  self.delay_state_polling = self.get_property("delay_state_polling")
486
482
  except Exception:
487
- logging.getLogger("HWR").exception("")
483
+ self.log.exception("")
488
484
 
489
485
  # Other parameters ---------------------------------------------------
490
486
  try:
491
487
  self.zoom_centre = eval(self.get_property("zoom_centre"))
492
488
  except Exception:
493
489
  self.zoom_centre = {"x": 0, "y": 0}
494
- logging.getLogger("HWR").warning(
495
- "Diffractometer: " + "zoom centre not configured"
496
- )
490
+ self.log.warning("Diffractometer: " + "zoom centre not configured")
497
491
 
498
492
  self.reversing_rotation = self.get_property("reversing_rotation")
499
493
  try:
@@ -503,7 +497,7 @@ class GenericDiffractometer(HardwareObject):
503
497
  self.grid_direction = eval(self.get_property("grid_direction"))
504
498
  except Exception:
505
499
  self.grid_direction = {"fast": (0, 1), "slow": (1, 0), "omega_ref": 0}
506
- logging.getLogger("HWR").warning(
500
+ self.log.warning(
507
501
  "Diffractometer: Grid " + "direction is not defined. Using default."
508
502
  )
509
503
 
@@ -698,9 +692,7 @@ class GenericDiffractometer(HardwareObject):
698
692
  if flag:
699
693
  # check both transfer_mode and sample_Changer
700
694
  if HWR.beamline.sample_changer is None:
701
- logging.getLogger("HWR").error(
702
- "Diffractometer: Sample " + "Changer is not available"
703
- )
695
+ self.log.error("Diffractometer: Sample " + "Changer is not available")
704
696
  return False
705
697
 
706
698
  if (
@@ -710,7 +702,7 @@ class GenericDiffractometer(HardwareObject):
710
702
  # if transferMode is not defined, ignore the checkup
711
703
  self.use_sc = True
712
704
  else:
713
- logging.getLogger("HWR").error(
705
+ self.log.error(
714
706
  "Diffractometer: Set the "
715
707
  + "diffractometer TransferMode to SAMPLE_CHANGER first!!"
716
708
  )
@@ -723,9 +715,7 @@ class GenericDiffractometer(HardwareObject):
723
715
  """
724
716
  Descript. :
725
717
  """
726
- logging.getLogger("HWR").info(
727
- "current_transfer_mode is set to %s" % transfer_mode
728
- )
718
+ self.log.info("current_transfer_mode is set to %s" % transfer_mode)
729
719
  self.transfer_mode = transfer_mode
730
720
  if transfer_mode != "SAMPLE_CHANGER":
731
721
  self.use_sc = False
@@ -825,7 +815,7 @@ class GenericDiffractometer(HardwareObject):
825
815
  """ """
826
816
 
827
817
  if self.current_centring_method is not None:
828
- logging.getLogger("HWR").error(
818
+ self.log.error(
829
819
  "Diffractometer: already in centring method %s"
830
820
  % self.current_centring_method
831
821
  )
@@ -841,17 +831,13 @@ class GenericDiffractometer(HardwareObject):
841
831
  try:
842
832
  centring_method = self.centring_methods[method]
843
833
  except KeyError as diag:
844
- logging.getLogger("HWR").error(
845
- "Diffractometer: unknown centring method (%s)" % str(diag)
846
- )
834
+ self.log.error("Diffractometer: unknown centring method (%s)" % str(diag))
847
835
  self.emit_centring_failed()
848
836
  else:
849
837
  try:
850
838
  centring_method(sample_info, wait_result=wait)
851
839
  except Exception:
852
- logging.getLogger("HWR").exception(
853
- "Diffractometer: problem while centring"
854
- )
840
+ self.log.exception("Diffractometer: problem while centring")
855
841
  self.emit_centring_failed()
856
842
 
857
843
  def cancel_centring_method(self, reject=False):
@@ -859,7 +845,7 @@ class GenericDiffractometer(HardwareObject):
859
845
  try:
860
846
  self.current_centring_procedure.kill()
861
847
  except Exception:
862
- logging.getLogger("HWR").exception(
848
+ self.log.exception(
863
849
  "Diffractometer: problem aborting the centring method"
864
850
  )
865
851
  try:
@@ -986,7 +972,7 @@ class GenericDiffractometer(HardwareObject):
986
972
  self.emit_centring_moving()
987
973
 
988
974
  try:
989
- logging.getLogger("HWR").debug(
975
+ self.log.debug(
990
976
  "Centring finished. Moving motors to position %s" % str(motor_pos)
991
977
  )
992
978
  self.move_to_motors_positions(motor_pos, wait=True)
@@ -998,9 +984,9 @@ class GenericDiffractometer(HardwareObject):
998
984
  # centred positions include omega to initial position
999
985
  pass
1000
986
  # if not self.in_plate_mode():
1001
- # logging.getLogger("HWR").debug("Centring finished. Moving omega back to initial position")
987
+ # self.log.debug("Centring finished. Moving omega back to initial position")
1002
988
  # self.motor_hwobj_dict['phi'].set_value_relative(-180, timeout=None)
1003
- # logging.getLogger("HWR").debug(" Moving omega done")
989
+ # self.log.debug(" Moving omega done")
1004
990
 
1005
991
  if (
1006
992
  self.current_centring_method
@@ -1135,9 +1121,7 @@ class GenericDiffractometer(HardwareObject):
1135
1121
  pos["phiMotor"] = omega
1136
1122
  self.move_to_motors_positions(pos)
1137
1123
  except Exception:
1138
- logging.getLogger("HWR").exception(
1139
- "Diffractometer: could not center to beam, aborting"
1140
- )
1124
+ self.log.exception("Diffractometer: could not center to beam, aborting")
1141
1125
 
1142
1126
  def image_clicked(
1143
1127
  self, x: float, y: float, xi: float | None = None, yi: float | None = None
@@ -1245,7 +1229,7 @@ class GenericDiffractometer(HardwareObject):
1245
1229
  self.current_centring_method = None
1246
1230
  self.current_centring_procedure = None
1247
1231
  else:
1248
- logging.getLogger("HWR").debug(
1232
+ self.log.debug(
1249
1233
  "Diffractometer: Trying to emit "
1250
1234
  + "centringSuccessful outside of a centring"
1251
1235
  )
@@ -1412,7 +1396,7 @@ class GenericDiffractometer(HardwareObject):
1412
1396
  self.sample_is_loaded_changed,
1413
1397
  )
1414
1398
  except Exception:
1415
- logging.getLogger("HWR").exception("")
1399
+ self.log.exception("")
1416
1400
 
1417
1401
  if (
1418
1402
  head_type == GenericDiffractometer.HEAD_TYPE_MINIKAPPA
@@ -1424,7 +1408,7 @@ class GenericDiffractometer(HardwareObject):
1424
1408
  self.sample_is_loaded_changed,
1425
1409
  )
1426
1410
  else:
1427
- logging.getLogger("HWR").info(
1411
+ self.log.info(
1428
1412
  "Diffractometer: SmartMagnet "
1429
1413
  + "is not available, only works for Minikappa and SmartMagnet head"
1430
1414
  )
@@ -1469,9 +1453,7 @@ class GenericDiffractometer(HardwareObject):
1469
1453
  try:
1470
1454
  data = GonioHeadConfiguration(**chip_def)
1471
1455
  except ValidationError:
1472
- logging.getLogger("HWR").exception(
1473
- "Validation error in %s" % chip_def_fpath
1474
- )
1456
+ self.log.exception("Validation error in %s" % chip_def_fpath)
1475
1457
 
1476
1458
  return data
1477
1459
 
@@ -1488,9 +1470,7 @@ class GenericDiffractometer(HardwareObject):
1488
1470
  try:
1489
1471
  GonioHeadConfiguration(**data)
1490
1472
  except ValidationError:
1491
- logging.getLogger("HWR").exception(
1492
- "Validation error in %s" % chip_def_fpath
1493
- )
1473
+ self.log.exception("Validation error in %s" % chip_def_fpath)
1494
1474
  else:
1495
1475
  _f.write(json.dumps(data, indent=4))
1496
1476
 
@@ -21,7 +21,6 @@ You should have received a copy of the GNU Lesser General Public License
21
21
  along with MXCuBE. If not, see <https://www.gnu.org/licenses/>.
22
22
  """
23
23
 
24
- import logging
25
24
  import os
26
25
  import re
27
26
  import subprocess
@@ -296,8 +295,8 @@ class CollectEmulator(CollectMockup):
296
295
 
297
296
  for tag, val in self.config.simcal_options.items():
298
297
  command_list.extend(conversion.command_option(tag, val, prefix="--"))
299
- logging.getLogger("HWR").info("Executing command: %s", " ".join(command_list))
300
- logging.getLogger("HWR").info("Executing environment: %s", sorted(envs.items()))
298
+ self.log.info("Executing command: %s", " ".join(command_list))
299
+ self.log.info("Executing environment: %s", sorted(envs.items()))
301
300
 
302
301
  if compress_data:
303
302
  command_list.append("--gzip-img")
@@ -323,23 +322,23 @@ class CollectEmulator(CollectMockup):
323
322
  # # NBNB leaving this in causes simulations to be killed and missing images
324
323
  # super(CollectEmulator, self).data_collection_hook()
325
324
 
326
- logging.getLogger("HWR").info("Waiting for simcal collection emulation.")
325
+ self.log.info("Waiting for simcal collection emulation.")
327
326
  # NBNB TODO put in time-out, somehow
328
327
  return_code = running_process.wait()
329
328
  except Exception:
330
- logging.getLogger("HWR").error("Error in GΦL collection emulation")
329
+ self.log.error("Error in GΦL collection emulation")
331
330
  raise
332
331
  finally:
333
332
  fp1.close()
334
333
  process = gphl_connection.collect_emulator_process
335
334
  gphl_connection.collect_emulator_process = None
336
335
  if process == "ABORTED":
337
- logging.getLogger("HWR").info("Simcal collection emulation aborted")
336
+ self.log.info("Simcal collection emulation aborted")
338
337
  elif return_code:
339
338
  raise RuntimeError(
340
339
  "simcal process terminated with return code %s" % return_code
341
340
  )
342
341
  else:
343
- logging.getLogger("HWR").info("Simcal collection emulation successful")
342
+ self.log.info("Simcal collection emulation successful")
344
343
  self.ready_event.set()
345
344
  return
@@ -49,7 +49,7 @@ class GphlWorkflowQueueEntry(BaseQueueEntry):
49
49
  )
50
50
  HWR.beamline.gphl_workflow.post_execute()
51
51
  HWR.beamline.gphl_workflow.pre_execute(self)
52
- logging.getLogger("HWR").debug("Done GphlWorkflowQueueEntry.pre_execute")
52
+ self.log.debug("Done GphlWorkflowQueueEntry.pre_execute")
53
53
 
54
54
  def post_execute(self):
55
55
  BaseQueueEntry.post_execute(self)
@@ -60,5 +60,5 @@ class GphlWorkflowQueueEntry(BaseQueueEntry):
60
60
  def stop(self):
61
61
  HWR.beamline.gphl_workflow.workflow_aborted("Dummy", "Dummy")
62
62
  BaseQueueEntry.stop(self)
63
- logging.getLogger("HWR").info("MXCuBE aborting current GΦL workflow")
63
+ self.log.info("MXCuBE aborting current GΦL workflow")
64
64
  self.get_view().setText(1, "Stopped")
@@ -492,10 +492,10 @@ class GphlWorkflow(HardwareObject):
492
492
  }
493
493
  fields["input_space_group"] = {
494
494
  "title": "Space Group",
495
- "default": crystal_symmetry.regularise_space_group(
496
- data_model.input_space_group
497
- )
498
- or "",
495
+ "default": (
496
+ crystal_symmetry.regularise_space_group(data_model.input_space_group)
497
+ or ""
498
+ ),
499
499
  "type": "string",
500
500
  "readOnly": True,
501
501
  }
@@ -938,13 +938,13 @@ class GphlWorkflow(HardwareObject):
938
938
 
939
939
  tt0 = self._workflow_queue.get()
940
940
  if tt0 is StopIteration:
941
- logging.getLogger("HWR").debug("GΦL queue StopIteration")
941
+ self.log.debug("GΦL queue StopIteration")
942
942
  break
943
943
 
944
944
  message_type, payload, correlation_id, result_list = tt0
945
945
  func = self._processor_functions.get(message_type)
946
946
  if func is None:
947
- logging.getLogger("HWR").error(
947
+ self.log.error(
948
948
  "GΦL message %s not recognised by MXCuBE. Terminating...",
949
949
  message_type,
950
950
  )
@@ -953,9 +953,7 @@ class GphlWorkflow(HardwareObject):
953
953
  if not self.config.settings.get("suppress_external_log_output"):
954
954
  func(payload, correlation_id)
955
955
  else:
956
- logging.getLogger("HWR").info(
957
- "GΦL queue processing %s", message_type
958
- )
956
+ self.log.info("GΦL queue processing %s", message_type)
959
957
  response = func(payload, correlation_id)
960
958
  if result_list is not None:
961
959
  result_list.append((response, correlation_id))
@@ -1019,22 +1017,22 @@ class GphlWorkflow(HardwareObject):
1019
1017
  """Print text info to console,. log etc."""
1020
1018
  subprocess_name = self._server_subprocess_names.get(correlation_id)
1021
1019
  if subprocess_name:
1022
- logging.getLogger("HWR").info("%s: %s" % (subprocess_name, payload))
1020
+ self.log.info("%s: %s" % (subprocess_name, payload))
1023
1021
  else:
1024
- logging.getLogger("HWR").info(payload)
1022
+ self.log.info(payload)
1025
1023
 
1026
1024
  def echo_subprocess_started(self, payload, correlation_id):
1027
1025
  name = payload.name
1028
1026
  if correlation_id:
1029
1027
  self._server_subprocess_names[correlation_id] = name
1030
- logging.getLogger("HWR").info("%s : STARTING", name)
1028
+ self.log.info("%s : STARTING", name)
1031
1029
 
1032
1030
  def echo_subprocess_stopped(self, payload, correlation_id):
1033
1031
  try:
1034
1032
  name = self._server_subprocess_names.pop(correlation_id)
1035
1033
  except KeyError:
1036
1034
  name = "Unknown process"
1037
- logging.getLogger("HWR").info("%s : FINISHED", name)
1035
+ self.log.info("%s : FINISHED", name)
1038
1036
 
1039
1037
  def get_configuration_data(self, payload, correlation_id):
1040
1038
  return GphlMessages.ConfigurationData(self.file_paths["gphl_beamline_config"])
@@ -1166,9 +1164,7 @@ class GphlWorkflow(HardwareObject):
1166
1164
  if not allowed_widths:
1167
1165
  allowed_widths = list(self.config.settings.get("default_image_widths"))
1168
1166
  allowed_widths.sort()
1169
- logging.getLogger("HWR").info(
1170
- "No allowed image widths returned by strategy - use defaults"
1171
- )
1167
+ self.log.info("No allowed image widths returned by strategy - use defaults")
1172
1168
 
1173
1169
  # set starting and unchanging values of parameters
1174
1170
  resolution = HWR.beamline.resolution.get_value()
@@ -1633,7 +1629,7 @@ class GphlWorkflow(HardwareObject):
1633
1629
  user_modifiable = geometric_strategy.isUserModifiable
1634
1630
  if user_modifiable:
1635
1631
  # Query user for new rotationSetting and make it,
1636
- logging.getLogger("HWR").warning(
1632
+ self.log.warning(
1637
1633
  "User modification of sweep settings not implemented. Ignored"
1638
1634
  )
1639
1635
  new_dose = parameters["use_dose"]
@@ -1687,7 +1683,7 @@ class GphlWorkflow(HardwareObject):
1687
1683
  new_dcg_name = "GΦL DiffractCal"
1688
1684
  else:
1689
1685
  new_dcg_name = "GΦL Characterisation"
1690
- logging.getLogger("HWR").debug("setup_data_collection %s", new_dcg_name)
1686
+ self.log.debug("setup_data_collection %s", new_dcg_name)
1691
1687
  new_dcg_model = queue_model_objects.TaskGroup()
1692
1688
  new_dcg_model.set_enabled(True)
1693
1689
  new_dcg_model.set_name(new_dcg_name)
@@ -1760,7 +1756,7 @@ class GphlWorkflow(HardwareObject):
1760
1756
  translation_settings = self.calculate_recentring(
1761
1757
  okp, ref_xyz=current_xyz, ref_okp=current_okp
1762
1758
  )
1763
- logging.getLogger("HWR").debug(
1759
+ self.log.debug(
1764
1760
  "GPHL Recentring. okp, motors, %s, %s"
1765
1761
  % (okp, sorted(translation_settings.items()))
1766
1762
  )
@@ -1846,7 +1842,7 @@ class GphlWorkflow(HardwareObject):
1846
1842
 
1847
1843
  if recentring_mode == "start":
1848
1844
  q_e = self.enqueue_sample_centring(motor_settings=settings)
1849
- logging.getLogger("HWR").debug(
1845
+ self.log.debug(
1850
1846
  "GPHL recenter at : "
1851
1847
  + ", ".join("%s:%s" % item for item in sorted(settings.items()))
1852
1848
  )
@@ -1861,7 +1857,7 @@ class GphlWorkflow(HardwareObject):
1861
1857
  translation = GphlMessages.GoniostatTranslation(
1862
1858
  rotation=sweepSetting, **settings
1863
1859
  )
1864
- logging.getLogger("HWR").debug(
1860
+ self.log.debug(
1865
1861
  "GPHL calculate recentring: "
1866
1862
  + ", ".join("%s:%s" % item for item in sorted(settings.items()))
1867
1863
  )
@@ -1911,9 +1907,7 @@ class GphlWorkflow(HardwareObject):
1911
1907
  # output from bytes to string (with default encoding),
1912
1908
  # avoiding an explicit decoding step.
1913
1909
  result = {}
1914
- logging.getLogger("HWR").debug(
1915
- "Running Recen command: %s", " ".join(command_list)
1916
- )
1910
+ self.log.debug("Running Recen command: %s", " ".join(command_list))
1917
1911
  try:
1918
1912
  output = subprocess.check_output(
1919
1913
  command_list,
@@ -1922,7 +1916,7 @@ class GphlWorkflow(HardwareObject):
1922
1916
  universal_newlines=True,
1923
1917
  )
1924
1918
  except subprocess.CalledProcessError as err:
1925
- logging.getLogger("HWR").error(
1919
+ self.log.error(
1926
1920
  "Recen failed with returncode %s. Output was:\n%s",
1927
1921
  err.returncode,
1928
1922
  err.output,
@@ -1942,7 +1936,7 @@ class GphlWorkflow(HardwareObject):
1942
1936
  elif ss0 == "NORMAL termination":
1943
1937
  terminated_ok = True
1944
1938
  else:
1945
- logging.getLogger("HWR").error(
1939
+ self.log.error(
1946
1940
  "Recen failed with normal termination=%s. Output was:\n" % terminated_ok
1947
1941
  + output
1948
1942
  )
@@ -1953,14 +1947,14 @@ class GphlWorkflow(HardwareObject):
1953
1947
  if limits:
1954
1948
  limit = limits[0]
1955
1949
  if limit is not None and val < limit:
1956
- logging.getLogger("HWR").warning(
1950
+ self.log.warning(
1957
1951
  "WARNING, centring motor "
1958
1952
  "%s position %s recentred to below minimum limit %s"
1959
1953
  % (tag, val, limit)
1960
1954
  )
1961
1955
  limit = limits[1]
1962
1956
  if limit is not None and val > limit:
1963
- logging.getLogger("HWR").warning(
1957
+ self.log.warning(
1964
1958
  "WARNING, centring motor "
1965
1959
  "%s position %s recentred to above maximum limit %s"
1966
1960
  % (tag, val, limit)
@@ -2036,7 +2030,7 @@ class GphlWorkflow(HardwareObject):
2036
2030
  acq_parameters.num_images = scan.width.numImages
2037
2031
  acq_parameters.osc_start = scan.start
2038
2032
  acq_parameters.osc_range = scan.width.imageWidth
2039
- logging.getLogger("HWR").info(
2033
+ self.log.info(
2040
2034
  "Scan: %s images of %s deg. starting at %s (%s deg)",
2041
2035
  acq_parameters.num_images,
2042
2036
  acq_parameters.osc_range,
@@ -2498,9 +2492,7 @@ class GphlWorkflow(HardwareObject):
2498
2492
  )
2499
2493
  zoom_motor.moveToPosition(ll0[-1])
2500
2494
  else:
2501
- logging.getLogger("HWR").warning(
2502
- "No predefined positions for zoom motor."
2503
- )
2495
+ self.log.warning("No predefined positions for zoom motor.")
2504
2496
  else:
2505
2497
  logging.getLogger("user_level_log").info(
2506
2498
  "Sample re-centering now active - Zoom in before continuing."
@@ -2593,9 +2585,7 @@ class GphlWorkflow(HardwareObject):
2593
2585
  snapshot_index + 1,
2594
2586
  )
2595
2587
  snapshot_filename = os.path.join(snapshot_directory, snapshot_filename)
2596
- logging.getLogger("HWR").debug(
2597
- "Centring snapshot stored at %s", snapshot_filename
2598
- )
2588
+ self.log.debug("Centring snapshot stored at %s", snapshot_filename)
2599
2589
  collect_hwobj._take_crystal_snapshot(snapshot_filename)
2600
2590
  if summed_angle:
2601
2591
  HWR.beamline.diffractometer.move_omega_relative(-summed_angle)
@@ -2641,9 +2631,7 @@ class GphlWorkflow(HardwareObject):
2641
2631
  os.makedirs(image_root)
2642
2632
  except Exception:
2643
2633
  # No need to raise error - program will fail downstream
2644
- logging.getLogger("HWR").error(
2645
- "Could not create image root directory: %s", image_root
2646
- )
2634
+ self.log.error("Could not create image root directory: %s", image_root)
2647
2635
 
2648
2636
  priorInformation = GphlMessages.PriorInformation(workflow_model, image_root)
2649
2637
 
@@ -2889,9 +2877,7 @@ class GphlWorkflow(HardwareObject):
2889
2877
  raise ValueError("Test sample requires gphl_test_samples dir specified")
2890
2878
  sample_dir = os.path.join(sample_dir, sample_name)
2891
2879
  if not sample_dir:
2892
- logging.getLogger("HWR").warning(
2893
- "No emulation sample dir found for sample %s", sample_name
2894
- )
2880
+ self.log.warning("No emulation sample dir found for sample %s", sample_name)
2895
2881
  return sample_dir
2896
2882
 
2897
2883
  def get_emulation_crystal_data(self, sample_name=None):
@@ -2942,7 +2928,7 @@ class GphlWorkflow(HardwareObject):
2942
2928
  elif instruction == "reffiles":
2943
2929
  update_dict = self.update_reference_files(parameters)
2944
2930
  except:
2945
- logging.getLogger("HWR").error(
2931
+ self.log.error(
2946
2932
  "Error in GΦL parameter update for %s, Continuing ...",
2947
2933
  instruction,
2948
2934
  )
@@ -2989,7 +2975,7 @@ class GphlWorkflow(HardwareObject):
2989
2975
  ):
2990
2976
  update_dict = self.adjust_dose(parameters)
2991
2977
  except:
2992
- logging.getLogger("HWR").error(
2978
+ self.log.error(
2993
2979
  "Error in GΦL parameter update for %s, Continuing ...",
2994
2980
  instruction,
2995
2981
  )