mxcubecore 1.329.0__tar.gz → 1.330.0__tar.gz

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.
Files changed (472) hide show
  1. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/PKG-INFO +1 -1
  2. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/ESRFXRFSpectrum.py +75 -54
  3. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRFLIMS.py +7 -5
  4. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ICATLIMS.py +104 -34
  5. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/AbstractXRFSpectrum.py +43 -35
  6. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/queue_entry/xrf_spectrum.py +6 -6
  7. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/pyproject.toml +1 -1
  8. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/COPYING +0 -0
  9. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/COPYING.LESSER +0 -0
  10. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/README.md +0 -0
  11. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/BaseHardwareObjects.py +0 -0
  12. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/Command/Epics.py +0 -0
  13. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/Command/Exporter.py +0 -0
  14. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/Command/Mockup.py +0 -0
  15. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/Command/Pool.py +0 -0
  16. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/Command/Sardana.py +0 -0
  17. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/Command/Spec.py +0 -0
  18. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/Command/Taco.py +0 -0
  19. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/Command/Tango.py +0 -0
  20. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/Command/Tine.py +0 -0
  21. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/Command/__init__.py +0 -0
  22. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/Command/exporter/ExporterClient.py +0 -0
  23. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/Command/exporter/ExporterStates.py +0 -0
  24. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/Command/exporter/MDEvents.py +0 -0
  25. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/Command/exporter/StandardClient.py +0 -0
  26. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/Command/exporter/__init__.py +0 -0
  27. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/CommandContainer.py +0 -0
  28. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjectFileParser.py +0 -0
  29. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ALBA/ALBAAutoProcessing.py +0 -0
  30. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ALBA/ALBABackLight.py +0 -0
  31. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ALBA/ALBABeamInfo.py +0 -0
  32. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ALBA/ALBACalibration.py +0 -0
  33. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ALBA/ALBACats.py +0 -0
  34. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ALBA/ALBACatsMaint.py +0 -0
  35. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ALBA/ALBAClusterJob.py +0 -0
  36. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ALBA/ALBACollect.py +0 -0
  37. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ALBA/ALBADataAnalysis.py +0 -0
  38. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ALBA/ALBAEnergy.py +0 -0
  39. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ALBA/ALBAEpsActuator.py +0 -0
  40. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ALBA/ALBAFastShutter.py +0 -0
  41. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ALBA/ALBAFlux.py +0 -0
  42. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ALBA/ALBAFrontEnd.py +0 -0
  43. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ALBA/ALBAFrontLight.py +0 -0
  44. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ALBA/ALBAISPyBClient.py +0 -0
  45. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ALBA/ALBAMachineInfo.py +0 -0
  46. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ALBA/ALBAMiniDiff.py +0 -0
  47. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ALBA/ALBAPilatus.py +0 -0
  48. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ALBA/ALBASession.py +0 -0
  49. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ALBA/ALBASupervisor.py +0 -0
  50. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ALBA/ALBATransmission.py +0 -0
  51. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ALBA/ALBAZoomMotor.py +0 -0
  52. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ALBA/ALBAZoomMotorAutoBrightness.py +0 -0
  53. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ALBA/XalocCalibration.py +0 -0
  54. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ALBA/XalocMachineInfo.py +0 -0
  55. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ALBA/XalocMiniDiff.py +0 -0
  56. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ALBA/__init__.py +0 -0
  57. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/Attenuators.py +0 -0
  58. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/AutoPowerSardanaMotor.py +0 -0
  59. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/BeamInfo.py +0 -0
  60. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/Beamline.py +0 -0
  61. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/BeamlineActions.py +0 -0
  62. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/BeamlineTools.py +0 -0
  63. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/Bliss.py +0 -0
  64. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/BlissActuator.py +0 -0
  65. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/BlissEnergy.py +0 -0
  66. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/BlissHutchTrigger.py +0 -0
  67. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/BlissMotor.py +0 -0
  68. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/BlissMotorWPositions.py +0 -0
  69. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/BlissNState.py +0 -0
  70. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/BlissRontecMCA.py +0 -0
  71. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/BlissShutter.py +0 -0
  72. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/Cats90.py +0 -0
  73. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/CatsBessy.py +0 -0
  74. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/CatsMaint.py +0 -0
  75. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/CentringMath.py +0 -0
  76. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DESY/Centring.py +0 -0
  77. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DESY/DigitalZoomMotor.py +0 -0
  78. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DESY/MjpgStreamVideo.py +0 -0
  79. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DESY/P11AlbulaView.py +0 -0
  80. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DESY/P11BackLight.py +0 -0
  81. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DESY/P11Beam.py +0 -0
  82. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DESY/P11BeamStop.py +0 -0
  83. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DESY/P11Collect.py +0 -0
  84. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DESY/P11Collimator.py +0 -0
  85. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DESY/P11DetectorCover.py +0 -0
  86. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DESY/P11DetectorDistance.py +0 -0
  87. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DESY/P11DoorInterlock.py +0 -0
  88. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DESY/P11EDNACharacterisation.py +0 -0
  89. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DESY/P11EigerDetector.py +0 -0
  90. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DESY/P11Energy.py +0 -0
  91. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DESY/P11FastShutter.py +0 -0
  92. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DESY/P11Flux.py +0 -0
  93. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DESY/P11ISPyBClient.py +0 -0
  94. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DESY/P11MachineInfo.py +0 -0
  95. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DESY/P11NanoDiff.py +0 -0
  96. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DESY/P11Pinhole.py +0 -0
  97. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DESY/P11SampleChanger.py +0 -0
  98. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DESY/P11Session.py +0 -0
  99. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DESY/P11Shutter.py +0 -0
  100. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DESY/P11Transmission.py +0 -0
  101. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DESY/P11YagDiode.py +0 -0
  102. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DESY/P11Zoom.py +0 -0
  103. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DESY/ValueStateChannel.py +0 -0
  104. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DESY/__init__.py +0 -0
  105. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DataPublisher.py +0 -0
  106. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/DozorOnlineProcessing.py +0 -0
  107. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EDNACharacterisation.py +0 -0
  108. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLAperture.py +0 -0
  109. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLBSD.py +0 -0
  110. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLBeam.py +0 -0
  111. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLBeamCentering.py +0 -0
  112. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLBeamFocusing.py +0 -0
  113. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLBeamlineTest.py +0 -0
  114. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLBeamstop.py +0 -0
  115. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLCRL.py +0 -0
  116. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLCollect.py +0 -0
  117. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLDetector.py +0 -0
  118. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLDoorInterlock.py +0 -0
  119. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLEnergy.py +0 -0
  120. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLEnergyScan.py +0 -0
  121. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLExporterClient.py +0 -0
  122. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLFlux.py +0 -0
  123. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLImageTracking.py +0 -0
  124. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLMachineInfo.py +0 -0
  125. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLMiniDiff.py +0 -0
  126. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLMotorsGroup.py +0 -0
  127. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLOfflineProcessing.py +0 -0
  128. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLOnlineProcessing.py +0 -0
  129. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLPPUControl.py +0 -0
  130. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLPiezoMotor.py +0 -0
  131. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLQueueEntry.py +0 -0
  132. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLResolution.py +0 -0
  133. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLSSXChip.py +0 -0
  134. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLSafetyShutter.py +0 -0
  135. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLSession.py +0 -0
  136. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLSlitBox.py +0 -0
  137. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLTableMotor.py +0 -0
  138. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLTransfocator.py +0 -0
  139. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLTransmission.py +0 -0
  140. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLXRFSpectrum.py +0 -0
  141. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/EMBLXrayImaging.py +0 -0
  142. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/MDFastShutter.py +0 -0
  143. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/TINEMotor.py +0 -0
  144. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBL/__init__.py +0 -0
  145. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBLFlexHCD.py +0 -0
  146. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EMBLFlexHarvester.py +0 -0
  147. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/BlissHutchTrigger.py +0 -0
  148. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/BlissTurret.py +0 -0
  149. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/BlissVolpi.py +0 -0
  150. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/ESRFBeam.py +0 -0
  151. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/ESRFBeamDefiner.py +0 -0
  152. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/ESRFBeamInfo.py +0 -0
  153. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/ESRFBeamlineActions.py +0 -0
  154. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/ESRFEnergyScan.py +0 -0
  155. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/ESRFMD2SC3.py +0 -0
  156. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/ESRFMetadataManagerClient.py +0 -0
  157. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/ESRFMultiCollect.py +0 -0
  158. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/ESRFPhotonFlux.py +0 -0
  159. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/ESRFSC3.py +0 -0
  160. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/ESRFSession.py +0 -0
  161. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/ESRFSmallXrayCentring.py +0 -0
  162. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/ID231EnergyScan.py +0 -0
  163. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/ID232BeamDefiner.py +0 -0
  164. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/ID29EnergyScan.py +0 -0
  165. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/ID29HutchTrigger.py +0 -0
  166. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/ID30A3BeamDefiner.py +0 -0
  167. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/MD2MultiCollect.py +0 -0
  168. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/OxfordCryostream.py +0 -0
  169. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/SSXICATLIMS.py +0 -0
  170. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/TangoKeithleyPhotonFlux.py +0 -0
  171. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/Transmission.py +0 -0
  172. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/__init__.py +0 -0
  173. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/calc_flux.py +0 -0
  174. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/queue_entry/__init__.py +0 -0
  175. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/queue_entry/fast_char_collection.py +0 -0
  176. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/queue_entry/mx_base_queue_entry.py +0 -0
  177. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/queue_entry/ssx_base_queue_entry.py +0 -0
  178. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/queue_entry/ssx_big_foil_collection.py +0 -0
  179. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/queue_entry/ssx_chip_collection.py +0 -0
  180. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/queue_entry/ssx_foil_collection.py +0 -0
  181. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/queue_entry/ssx_injector_collection.py +0 -0
  182. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/queue_entry/ssx_laser_hare_collection.py +0 -0
  183. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/queue_entry/ssx_laser_injector_collection.py +0 -0
  184. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/queue_entry/ssx_line_scan_collection.py +0 -0
  185. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ESRF/queue_entry/test_collection.py +0 -0
  186. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/EdnaWorkflow.py +0 -0
  187. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/Energy.py +0 -0
  188. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ExporterMotor.py +0 -0
  189. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ExporterNState.py +0 -0
  190. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/FlexHCD.py +0 -0
  191. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/FlexHCDMaintenance.py +0 -0
  192. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/GenericDiffractometer.py +0 -0
  193. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/Gphl/CollectEmulator.py +0 -0
  194. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/Gphl/GphlMessages.py +0 -0
  195. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/Gphl/GphlQueueEntry.py +0 -0
  196. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/Gphl/GphlWorkflow.py +0 -0
  197. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/Gphl/GphlWorkflowConnection.py +0 -0
  198. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/Gphl/Transcal2MiniKappa.py +0 -0
  199. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/Gphl/__init__.py +0 -0
  200. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/Gphl/run_mxcube_test.csh +0 -0
  201. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/Grob.py +0 -0
  202. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/GrobDiff.py +0 -0
  203. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/GrobGonio.py +0 -0
  204. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/GrobMotor.py +0 -0
  205. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/GrobSampleChanger.py +0 -0
  206. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/Harvester.py +0 -0
  207. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/HarvesterMaintenance.py +0 -0
  208. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ISARAMaint.py +0 -0
  209. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/LNLS/EPICSActuator.py +0 -0
  210. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/LNLS/EPICSMotor.py +0 -0
  211. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/LNLS/EPICSNState.py +0 -0
  212. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/LNLS/LNLSAperture.py +0 -0
  213. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/LNLS/LNLSBeam.py +0 -0
  214. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/LNLS/LNLSCamera.py +0 -0
  215. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/LNLS/LNLSCollect.py +0 -0
  216. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/LNLS/LNLSDetDistMotor.py +0 -0
  217. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/LNLS/LNLSDiffractometer.py +0 -0
  218. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/LNLS/LNLSEnergy.py +0 -0
  219. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/LNLS/LNLSPilatusDet.py +0 -0
  220. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/LNLS/LNLSSlits.py +0 -0
  221. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/LNLS/LNLSTransmission.py +0 -0
  222. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/LNLS/LNLSZoom.py +0 -0
  223. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/LNLS/__init__.py +0 -0
  224. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/LNLS/read_transmission_mnc.py +0 -0
  225. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/LNLS/set_transmission_mnc.py +0 -0
  226. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/LdapAuthenticator.py +0 -0
  227. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/Lima2Detector.py +0 -0
  228. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/LimaEigerDetector.py +0 -0
  229. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/LimaPilatusDetector.py +0 -0
  230. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/MAXIV/ISPyBLims.py +0 -0
  231. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/MAXIV/MAXIVAutoProcessing.py +0 -0
  232. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/MAXIV/MachInfo.py +0 -0
  233. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/MAXIV/MaxIVSession.py +0 -0
  234. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/MAXIV/MicroMAX/__init__.py +0 -0
  235. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/MAXIV/MicroMAX/beamline_actions.py +0 -0
  236. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/MAXIV/__init__.py +0 -0
  237. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/MD2Motor.py +0 -0
  238. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/MD3UP.py +0 -0
  239. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/MachCurrent.py +0 -0
  240. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/Mar225.py +0 -0
  241. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/Marvin.py +0 -0
  242. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/Microdiff.py +0 -0
  243. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/MicrodiffActuator.py +0 -0
  244. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/MicrodiffAperture.py +0 -0
  245. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/MicrodiffBeamstop.py +0 -0
  246. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/MicrodiffFocusMotor.py +0 -0
  247. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/MicrodiffInOut.py +0 -0
  248. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/MicrodiffKappaMotor.py +0 -0
  249. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/MicrodiffLight.py +0 -0
  250. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/MicrodiffLightBeamstop.py +0 -0
  251. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/MicrodiffMotor.py +0 -0
  252. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/MicrodiffSamplePseudo.py +0 -0
  253. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/MicrodiffZoom.py +0 -0
  254. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/MiniDiff.py +0 -0
  255. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/MiniKappaCorrection.py +0 -0
  256. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/MinidiffAperture.py +0 -0
  257. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/MotorWPositions.py +0 -0
  258. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/MotorsNPosition.py +0 -0
  259. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/MultiplePositions.py +0 -0
  260. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/NState.py +0 -0
  261. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/Native/__init__.py +0 -0
  262. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ObjectsController.py +0 -0
  263. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/PlateManipulator.py +0 -0
  264. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/PlateManipulatorMaintenance.py +0 -0
  265. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/ProposalTypeISPyBLims.py +0 -0
  266. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/PyISPyBClient.py +0 -0
  267. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/QtAxisCamera.py +0 -0
  268. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/QtGraphicsLib.py +0 -0
  269. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/QtGraphicsManager.py +0 -0
  270. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/QtInstanceServer.py +0 -0
  271. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/QtLimaVideo.py +0 -0
  272. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/QtTangoLimaVideo.py +0 -0
  273. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/QueueManager.py +0 -0
  274. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/QueueModel.py +0 -0
  275. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/RedisClient.py +0 -0
  276. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/Resolution.py +0 -0
  277. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SC3.py +0 -0
  278. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Attenuator.py +0 -0
  279. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/PX1BeamInfo.py +0 -0
  280. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/PX1CatsMaint.py +0 -0
  281. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Collect.py +0 -0
  282. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Configuration.py +0 -0
  283. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Cryotong.py +0 -0
  284. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/PX1DetectorDistance.py +0 -0
  285. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Energy.py +0 -0
  286. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/PX1EnergyScan.py +0 -0
  287. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Environment.py +0 -0
  288. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/PX1MiniDiff.py +0 -0
  289. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Pilatus.py +0 -0
  290. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Pss.py +0 -0
  291. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Resolution.py +0 -0
  292. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/PX1TangoLight.py +0 -0
  293. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/__init__.py +0 -0
  294. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Attenuator.py +0 -0
  295. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/PX2/PX2BeamInfo.py +0 -0
  296. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Collect.py +0 -0
  297. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Diffractometer.py +0 -0
  298. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Energy.py +0 -0
  299. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Guillotine.py +0 -0
  300. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Qt4_LimaVideo.py +0 -0
  301. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Resolution.py +0 -0
  302. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Video.py +0 -0
  303. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/PX2/__init__.py +0 -0
  304. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/SOLEILCatsMaint.py +0 -0
  305. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/SOLEILEnergyScan.py +0 -0
  306. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/SOLEILFlux.py +0 -0
  307. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/SOLEILGuillotine.py +0 -0
  308. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/SOLEILISPyBClient.py +0 -0
  309. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/SOLEILMachineInfo.py +0 -0
  310. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/SOLEILPss.py +0 -0
  311. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/SOLEILRuche.py +0 -0
  312. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/SOLEILSafetyShutter.py +0 -0
  313. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/SOLEILSession.py +0 -0
  314. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/SOLEILqueue_entry.py +0 -0
  315. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/TangoDCMotor.py +0 -0
  316. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SOLEIL/__init__.py +0 -0
  317. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SampleStage.py +0 -0
  318. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SampleView.py +0 -0
  319. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SardanaMotor.py +0 -0
  320. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SecureXMLRpcRequestHandler.py +0 -0
  321. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/Session.py +0 -0
  322. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SimpleHTML.py +0 -0
  323. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SpecMotor.py +0 -0
  324. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SpecMotorWPositions.py +0 -0
  325. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SpecMotorWSpecPositions.py +0 -0
  326. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SpecScan.py +0 -0
  327. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SpecShell.py +0 -0
  328. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/SpecState.py +0 -0
  329. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/StateMachine.py +0 -0
  330. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/TangoLimaMpegVideo.py +0 -0
  331. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/TangoLimaVideo.py +0 -0
  332. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/TangoLimaVideoDevice.py +0 -0
  333. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/TangoMachineInfo.py +0 -0
  334. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/TangoMotor.py +0 -0
  335. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/TangoShutter.py +0 -0
  336. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/Transmission.py +0 -0
  337. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/UnitTest.py +0 -0
  338. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/UserTypeISPyBLims.py +0 -0
  339. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/VimbaVideo.py +0 -0
  340. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/XMLRPCServer.py +0 -0
  341. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/XRFSpectrum.py +0 -0
  342. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/XSDataAutoprocv1_0.py +0 -0
  343. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/XSDataCommon.py +0 -0
  344. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/XSDataControlDozorv1_1.py +0 -0
  345. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/XSDataMXCuBEv1_3.py +0 -0
  346. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/XSDataMXCuBEv1_4.py +0 -0
  347. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/XSDataMXv1.py +0 -0
  348. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/__init__.py +0 -0
  349. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/AbstractActuator.py +0 -0
  350. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/AbstractAperture.py +0 -0
  351. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/AbstractAuthenticator.py +0 -0
  352. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/AbstractBeam.py +0 -0
  353. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/AbstractCharacterisation.py +0 -0
  354. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/AbstractCollect.py +0 -0
  355. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/AbstractDetector.py +0 -0
  356. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/AbstractEnergy.py +0 -0
  357. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/AbstractEnergyScan.py +0 -0
  358. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/AbstractFlux.py +0 -0
  359. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/AbstractLims.py +0 -0
  360. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/AbstractMCA.py +0 -0
  361. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/AbstractMachineInfo.py +0 -0
  362. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/AbstractMotor.py +0 -0
  363. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/AbstractMultiCollect.py +0 -0
  364. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/AbstractNState.py +0 -0
  365. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/AbstractOnlineProcessing.py +0 -0
  366. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/AbstractProcedure.py +0 -0
  367. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/AbstractResolution.py +0 -0
  368. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/AbstractSampleChanger.py +0 -0
  369. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/AbstractSampleView.py +0 -0
  370. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/AbstractShutter.py +0 -0
  371. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/AbstractSlits.py +0 -0
  372. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/AbstractTransmission.py +0 -0
  373. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/AbstractVideoDevice.py +0 -0
  374. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/AbstractXrayCentring.py +0 -0
  375. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/ISPyBAbstractLims.py +0 -0
  376. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/ISPyBDataAdapter.py +0 -0
  377. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/ISPyBValueFactory.py +0 -0
  378. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/__init__.py +0 -0
  379. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/sample_changer/Component.py +0 -0
  380. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/sample_changer/Container.py +0 -0
  381. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/sample_changer/Crims.py +0 -0
  382. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/sample_changer/Sample.py +0 -0
  383. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/abstract/sample_changer/__init__.py +0 -0
  384. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/autoprocessing.py +0 -0
  385. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/edna_test_data.py +0 -0
  386. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/ActuatorMockup.py +0 -0
  387. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/ApertureMockup.py +0 -0
  388. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/BeamDefinerMockup.py +0 -0
  389. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/BeamMockup.py +0 -0
  390. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/BeamlineActionsMockup.py +0 -0
  391. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/BeamlineTestMockup.py +0 -0
  392. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/BeamstopMockup.py +0 -0
  393. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/CatsMaintMockup.py +0 -0
  394. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/CollectMockup.py +0 -0
  395. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/DetectorMockup.py +0 -0
  396. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/DiffractometerMockup.py +0 -0
  397. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/DoorInterlockMockup.py +0 -0
  398. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/EDNACharacterisationMockup.py +0 -0
  399. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/EnergyMockup.py +0 -0
  400. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/EnergyScanMockup.py +0 -0
  401. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/ExporterNStateMockup.py +0 -0
  402. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/FluxMockup.py +0 -0
  403. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/HarvesterMockup.py +0 -0
  404. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/ISPyBClientMockup.py +0 -0
  405. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/ISPyBRestClientMockup.py +0 -0
  406. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/LimaDetectorMockup.py +0 -0
  407. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/MDCameraMockup.py +0 -0
  408. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/MachineInfoMockup.py +0 -0
  409. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/MicrodiffApertureMockup.py +0 -0
  410. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/MicrodiffInOutMockup.py +0 -0
  411. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/MicrodiffZoomMockup.py +0 -0
  412. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/MotorMockup.py +0 -0
  413. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/MotorMockupBis.py +0 -0
  414. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/MultiCollectMockup.py +0 -0
  415. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/OfflineProcessingMockup.py +0 -0
  416. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/OnlineProcessingMockup.py +0 -0
  417. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/PlateManipulatorMockup.py +0 -0
  418. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/PlottingMockup.py +0 -0
  419. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/ProcedureMockup.py +0 -0
  420. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/QtVideoMockup.py +0 -0
  421. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/ResolutionMockup.py +0 -0
  422. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/SOLEILCharacterisationMockup.py +0 -0
  423. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/SampleChangerMockup.py +0 -0
  424. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/ScanMockup.py +0 -0
  425. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/ShapeHistoryMockup.py +0 -0
  426. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/ShutterMockup.py +0 -0
  427. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/SlitsMockup.py +0 -0
  428. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/TransmissionMockup.py +0 -0
  429. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/XRFMockup.py +0 -0
  430. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/XRFSpectrumMockup.py +0 -0
  431. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/XrayCentringMockup.py +0 -0
  432. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/__init__.py +0 -0
  433. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/mockup/sample.jpg +0 -0
  434. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareObjects/sample_centring.py +0 -0
  435. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/HardwareRepository.py +0 -0
  436. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/Poller.py +0 -0
  437. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/TaskUtils.py +0 -0
  438. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/__init__.py +0 -0
  439. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/__version__.py +0 -0
  440. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/dispatcher.py +0 -0
  441. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/model/__init__.py +0 -0
  442. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/model/common.py +0 -0
  443. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/model/configmodel.py +0 -0
  444. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/model/crystal_symmetry.py +0 -0
  445. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/model/lims_session.py +0 -0
  446. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/model/procedure_model.py +0 -0
  447. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/model/protocols/__init__.py +0 -0
  448. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/model/protocols/epics.py +0 -0
  449. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/model/protocols/exporter.py +0 -0
  450. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/model/protocols/sardana.py +0 -0
  451. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/model/protocols/tango.py +0 -0
  452. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/model/queue_model_enumerables.py +0 -0
  453. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/model/queue_model_objects.py +0 -0
  454. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/protocols_config.py +0 -0
  455. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/queue_entry/__init__.py +0 -0
  456. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/queue_entry/advanced_connector.py +0 -0
  457. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/queue_entry/base_queue_entry.py +0 -0
  458. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/queue_entry/characterisation.py +0 -0
  459. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/queue_entry/data_collection.py +0 -0
  460. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/queue_entry/energy_scan.py +0 -0
  461. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/queue_entry/generic_workflow.py +0 -0
  462. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/queue_entry/import_helper.py +0 -0
  463. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/queue_entry/optical_centring.py +0 -0
  464. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/queue_entry/sample_centring.py +0 -0
  465. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/queue_entry/test_collection.py +0 -0
  466. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/queue_entry/xray_centering.py +0 -0
  467. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/queue_entry/xray_centering2.py +0 -0
  468. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/saferef.py +0 -0
  469. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/utils/__init__.py +0 -0
  470. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/utils/conversion.py +0 -0
  471. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/utils/qt_import.py +0 -0
  472. {mxcubecore-1.329.0 → mxcubecore-1.330.0}/mxcubecore/utils/units.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: mxcubecore
3
- Version: 1.329.0
3
+ Version: 1.330.0
4
4
  Summary: Core libraries for the MXCuBE application
5
5
  License: LGPL-3.0-or-later
6
6
  Keywords: mxcube,mxcube3,mxcubecore
@@ -38,12 +38,13 @@ __copyright__ = """ Copyright © by the MXCuBE collaboration """
38
38
  __license__ = "LGPLv3+"
39
39
 
40
40
  import logging
41
- import os.path
42
41
  from ast import literal_eval
42
+ from pathlib import Path
43
+ from shutil import copy2
43
44
  from unittest.mock import MagicMock
44
45
  from warnings import warn
45
46
 
46
- import numpy
47
+ import numpy as np
47
48
  from PyMca5.PyMca import (
48
49
  ClassMcaTheory,
49
50
  ConfigDict,
@@ -62,7 +63,7 @@ class ESRFXRFSpectrum(AbstractXRFSpectrum):
62
63
  def __init__(self, name):
63
64
  super().__init__(name)
64
65
  self.cfgfile = None
65
- self.config_fit = None
66
+ self.config = None
66
67
  self.ctrl_hwobj = None
67
68
  self.mcafit = None
68
69
  self.default_erange = None
@@ -73,15 +74,16 @@ class ESRFXRFSpectrum(AbstractXRFSpectrum):
73
74
  super().init()
74
75
  self.ctrl_hwobj = self.get_object_by_role("controller")
75
76
  self.cfgfile = self.get_property(
76
- "cfgfile", "/users/blissadm/local/beamline_configuration/misc/15keV.cfg"
77
+ "cfgfile",
78
+ "/users/blissadm/local/beamline_configuration/misc/15keV.cfg",
77
79
  )
78
- self.config_fit = ConfigDict.ConfigDict()
80
+ self.config = ConfigDict.ConfigDict()
79
81
  self.mcafit = ClassMcaTheory.McaTheory(self.cfgfile)
80
82
  self.default_erange = literal_eval(
81
- self.get_property("default_energy_range", "[2.0, 15.0]")
83
+ self.get_property("default_energy_range", "[2.0, 15.0]"),
82
84
  )
83
85
  self.cfg_energies = literal_eval(
84
- self.get_property("cfg_energies", "[7, 9, 12, 15]")
86
+ self.get_property("cfg_energies", "[7, 9, 12, 15]"),
85
87
  )
86
88
 
87
89
  def _doSpectrum(self, ctime, filename):
@@ -92,14 +94,18 @@ class ESRFXRFSpectrum(AbstractXRFSpectrum):
92
94
  )
93
95
  return self._execute_spectrum(ctime, filename)
94
96
 
95
- def _execute_spectrum(self, integration_time=None, filename=None):
97
+ def _execute_spectrum(
98
+ self,
99
+ integration_time: float | None = None,
100
+ filename: str | None = None,
101
+ ) -> bool:
96
102
  """Local XRF spectrum sequence.
97
103
 
98
104
  Args:
99
- integration_time (float): MCA integration time [s].
100
- filename (str): Data file (full path).
105
+ integration_time: MCA integration time [s].
106
+ filename: Data file (full path).
101
107
  Returns:
102
- (bool): Procedure executed correctly (True) or error (False)
108
+ Procedure executed correctly (True) or error (False)
103
109
  """
104
110
  filename = filename or self.spectrum_info_dict["filename"]
105
111
  integration_time = integration_time or self.default_integration_time
@@ -124,13 +130,13 @@ class ESRFXRFSpectrum(AbstractXRFSpectrum):
124
130
 
125
131
  # Next methods are for fitting the data with pymca
126
132
 
127
- def mcafit_configuration(self, config=None):
133
+ def mcafit_configuration(self, config: dict | None = None):
128
134
  """Configure the fitting parameters. The procedure is time consuming.
129
135
  It is only executed if the last configuration file is not the same.
130
136
 
131
137
  Args:
132
- config(dict): Configuration dictionary, containing among others the
133
- configuration file name.
138
+ config: Configuration dictionary, containing among others the
139
+ configuration file name.
134
140
  """
135
141
  change = False
136
142
  if not config or "file" not in config:
@@ -141,33 +147,36 @@ class ESRFXRFSpectrum(AbstractXRFSpectrum):
141
147
  if self.cfgfile != cfgfile:
142
148
  self.cfgfile = cfgfile
143
149
  change = True
144
- self.config_fit.read(self.cfgfile)
145
- if "concentrations" not in self.config_fit:
146
- self.config_fit["concentrations"] = {}
150
+ self.config.read(self.cfgfile)
151
+ if "concentrations" not in self.config:
152
+ self.config["concentrations"] = {}
147
153
  change = True
148
- if "attenuators" not in self.config_fit:
149
- self.config_fit["attenuators"] = {
150
- "Matrix": [1, "Water", 1.0, 0.01, 45.0, 45.0]
151
- }
154
+ if "attenuators" not in self.config:
155
+ self.config["attenuators"] = {"Matrix": [1, "Water", 1.0, 0.01, 45.0, 45.0]}
152
156
  change = True
153
157
  if "flux" in config:
154
- self.config_fit["concentrations"]["flux"] = float(config["flux"])
158
+ self.config["concentrations"]["flux"] = float(config["flux"])
155
159
  change = True
156
160
  if "time" in config:
157
- self.config_fit["concentrations"]["time"] = float(config["time"])
161
+ self.config["concentrations"]["time"] = float(config["time"])
158
162
  change = True
159
163
 
160
164
  if change:
161
- self.mcafit.configure(self.config_fit)
162
-
163
- def spectrum_analyse(self, data=None, calib=None, config=None):
165
+ self.mcafit.configure(self.config)
166
+
167
+ def spectrum_analyse(
168
+ self,
169
+ data: list | None = None,
170
+ calib: list | None = None,
171
+ config: dict | None = None,
172
+ ) -> bool:
164
173
  """Execute the fitting. Write the fitted data files to the archive
165
174
  directory.
166
175
 
167
176
  Args:
168
- data (list): The raw data.
169
- calib (list): The mca calibration.
170
- config (dict): The configuration dictionary.
177
+ data: The raw data.
178
+ calib: The mca calibration.
179
+ config: The configuration dictionary.
171
180
  """
172
181
 
173
182
  if not config:
@@ -177,9 +186,9 @@ class ESRFXRFSpectrum(AbstractXRFSpectrum):
177
186
  "bsX": self.spectrum_info_dict["beamSizeHorizontal"],
178
187
  "bsY": self.spectrum_info_dict["beamSizeVertical"],
179
188
  "legend": self.spectrum_info_dict["annotatedPymcaXfeSpectrum"],
180
- "htmldir": os.path.split(
181
- self.spectrum_info_dict["annotatedPymcaXfeSpectrum"]
182
- )[0],
189
+ "htmldir": Path(
190
+ self.spectrum_info_dict["annotatedPymcaXfeSpectrum"],
191
+ ).parent,
183
192
  }
184
193
 
185
194
  self.mcafit_configuration(config)
@@ -191,15 +200,15 @@ class ESRFXRFSpectrum(AbstractXRFSpectrum):
191
200
 
192
201
  try:
193
202
  if data[0].size == 2:
194
- xdata = numpy.array(data[:, 0]) * 1.0
195
- ydata = numpy.array(data[:, 1])
203
+ xdata = np.array(data[:, 0]) * 1.0
204
+ ydata = np.array(data[:, 1])
196
205
  else:
197
206
  xdata = data[0] * 1.0
198
207
  ydata = data[1]
199
208
 
200
209
  try:
201
- xmin = self.config_fit["fit"]["xmin"]
202
- xmax = self.config_fit["fit"]["xmax"]
210
+ xmin = self.config["fit"]["xmin"]
211
+ xmax = self.config["fit"]["xmax"]
203
212
  except KeyError:
204
213
  xmin = data[0][0]
205
214
  xmax = data[0][-1]
@@ -211,19 +220,26 @@ class ESRFXRFSpectrum(AbstractXRFSpectrum):
211
220
  if fitresult:
212
221
  fitresult = {"fitresult": fitresult[0], "result": fitresult[1]}
213
222
 
214
- # write the csv file to pyarch
223
+ # create the gallery directory
224
+ new_dir = Path(self.spectrum_info_dict["filename"]).parent / "gallery"
225
+ if not self.create_directory(new_dir):
226
+ self.update_state(self.STATES.FAULT)
227
+ return False
228
+
229
+ # write the csv file to pyarch and gallery
215
230
  csvname = self.spectrum_info_dict["fittedDataFileFullPath"]
216
231
  self._write_csv_file(fitresult["result"], csvname)
232
+ copy2(csvname, new_dir / Path(csvname).name)
217
233
 
218
234
  # write html report to pyarch
219
- fname = os.path.basename(self.spectrum_info_dict["filename"])
235
+ fname = Path(self.spectrum_info_dict["filename"]).name
220
236
  outfile = fname.split(".")[0]
221
- outdir = os.path.dirname(
222
- self.spectrum_info_dict["annotatedPymcaXfeSpectrum"]
223
- )
237
+ outdir = Path(
238
+ self.spectrum_info_dict["annotatedPymcaXfeSpectrum"],
239
+ ).parent
224
240
 
225
241
  _kw = {
226
- "outdir": outdir,
242
+ "outdir": str(outdir),
227
243
  "outfile": outfile,
228
244
  "fitresult": fitresult,
229
245
  "plotdict": {"logy": False},
@@ -232,6 +248,13 @@ class ESRFXRFSpectrum(AbstractXRFSpectrum):
232
248
  report = QtMcaAdvancedFitReport.QtMcaAdvancedFitReport(**_kw)
233
249
  text = report.getText()
234
250
  report.writeReport(text=text)
251
+
252
+ # copy png file to galery
253
+ copy2(
254
+ self.spectrum_info_dict["jpegScanFileFullPath"],
255
+ new_dir,
256
+ )
257
+
235
258
  return True
236
259
  return False
237
260
  except Exception as exp:
@@ -241,17 +264,17 @@ class ESRFXRFSpectrum(AbstractXRFSpectrum):
241
264
  self.spectrum_command_failed()
242
265
  return False
243
266
 
244
- def _write_csv_file(self, fitresult, fname=None):
267
+ def _write_csv_file(self, fitresult: dict, fname: str | None = None):
245
268
  """Write fitted data to a csv file.
246
269
 
247
270
  Args:
248
- fitresult(dict): Data as dictionary.
271
+ fitresult: Data as dictionary.
249
272
  Kwargs:
250
- fname (str): Filename to write to (full path).
273
+ fname: Filename to write to (full path).
251
274
  """
252
275
  fname = fname or self.spectrum_info_dict["fittedDataFileFullPath"]
253
- if os.path.exists(fname):
254
- os.remove(fname)
276
+ if Path(fname).exists():
277
+ Path(fname).unlink()
255
278
 
256
279
  # get the significant peaks
257
280
  peaks_dict = {}
@@ -283,7 +306,7 @@ class ESRFXRFSpectrum(AbstractXRFSpectrum):
283
306
  header += delimiter + f'"{key}"'
284
307
 
285
308
  # logging.getLogger("user_level_log").info("Writing %s" % fname)
286
- with open(fname, "w") as csv_fd:
309
+ with Path(fname).open("w") as csv_fd:
287
310
  csv_fd.write(header)
288
311
  csv_fd.write("\n")
289
312
  for i in range(fitresult["xdata"].size):
@@ -301,23 +324,21 @@ class ESRFXRFSpectrum(AbstractXRFSpectrum):
301
324
  fitresult["continuum"][i],
302
325
  delimiter,
303
326
  fitresult["pileup"][i],
304
- )
327
+ ),
305
328
  )
306
329
  for val in peaks_dict.values():
307
330
  csv_fd.write(f"{delimiter}{val[i]:.7g}")
308
331
 
309
332
  csv_fd.write("\n")
310
333
 
311
- def _get_cfgfile(self, energy):
334
+ def _get_cfgfile(self, energy: float) -> str:
312
335
  """Get the correct configuration file.
313
336
 
314
337
  Args:
315
338
  energy(float): The energy to choose which configuration file.
316
339
  """
317
340
  self.cfg_energies.sort()
318
-
319
- cfg_path = os.path.split(self.cfgfile)[0]
320
341
  for egy in self.cfg_energies:
321
342
  if egy > energy:
322
- return os.path.join(cfg_path, f"{str(egy)}keV.cfg")
323
- return self.cfgfile
343
+ return str(Path(self.cfgfile).parent / f"{egy}keV.cfg")
344
+ return str(self.cfgfile)
@@ -24,7 +24,7 @@ class ESRFLIMS(AbstractLims):
24
24
  self.ispyb = self.get_object_by_role("ispyb")
25
25
 
26
26
  self.is_local_host = False
27
- self.active_lims = self.drac.get_lims_name()
27
+ self.active_lims = self.drac.get_lims_name()[0]
28
28
 
29
29
  def get_lims_name(self) -> List[Lims]:
30
30
  return self.drac.get_lims_name() + self.ispyb.get_lims_name()
@@ -225,8 +225,8 @@ class ESRFLIMS(AbstractLims):
225
225
  def allow_session(self, session: Session):
226
226
  return self.drac.allow_session(session)
227
227
 
228
- def get_session_by_id(self, id: str):
229
- return self.drac.get_session_by_id(id)
228
+ def get_session_by_id(self, sid: str):
229
+ return self.drac.get_session_by_id(sid)
230
230
 
231
231
  def get_user_name(self):
232
232
  return self.drac.get_user_name()
@@ -252,11 +252,13 @@ class ESRFLIMS(AbstractLims):
252
252
 
253
253
  def store_energy_scan(self, energyscan_dict):
254
254
  energyscan_dict["sessionId"] = self.ispyb.get_session_id()
255
- return self.ispyb.store_energy_scan(energyscan_dict)
255
+ self.drac.store_energy_scan(energyscan_dict)
256
+ return self.ispyb.store_energy_scan(self._clean_sample_id(energyscan_dict))
256
257
 
257
258
  def store_xfe_spectrum(self, xfespectrum_dict):
258
259
  xfespectrum_dict["sessionId"] = self.ispyb.get_session_id()
259
- return self.ispyb.store_xfe_spectrum(xfespectrum_dict)
260
+ self.drac.store_xfe_spectrum(xfespectrum_dict)
261
+ return self.ispyb.store_xfe_spectrum(self._clean_sample_id(xfespectrum_dict))
260
262
 
261
263
  def store_workflow(self, *args, **kwargs):
262
264
  pass
@@ -1,9 +1,9 @@
1
1
  import json
2
2
  import logging
3
- import pathlib
4
3
  import shutil
5
4
  from collections import defaultdict
6
5
  from datetime import datetime, timedelta
6
+ from pathlib import Path
7
7
  from typing import List, Optional
8
8
  from zoneinfo import ZoneInfo
9
9
 
@@ -82,7 +82,8 @@ class ICATLIMS(AbstractLims):
82
82
  sessions = self.to_sessions(self.__get_all_investigations())
83
83
 
84
84
  if len(sessions) == 0:
85
- raise Exception("No sessions available for user %s" % (user_name))
85
+ msg = f"No sessions available for user {user_name}"
86
+ raise RuntimeError(msg)
86
87
 
87
88
  logger.debug("Successfully retrieved %s sessions" % (len(sessions)))
88
89
 
@@ -101,7 +102,7 @@ class ICATLIMS(AbstractLims):
101
102
  break
102
103
 
103
104
  if not session_found:
104
- raise Exception(
105
+ raise RuntimeError(
105
106
  "Current session in-use (with id %s) not avaialble to user %s"
106
107
  % (self.session_manager.active_session.session_id, user_name)
107
108
  )
@@ -291,13 +292,13 @@ class ICATLIMS(AbstractLims):
291
292
  # id to the sample sheet declared in the user portal
292
293
  sample_sheet_id = tracking_sample.get("sampleId")
293
294
  # identifier that points to the sample tracking
294
- trackingSampleId = tracking_sample.get("_id")
295
+ tracking_sample_id = tracking_sample.get("_id")
295
296
 
296
297
  logger.debug(
297
- "[ICATClient] Sample ids sample_id=%s sample_sheet_id=%s trackingSampleId=%s",
298
+ "[ICATClient] Sample ids sample_id=%s sample_sheet_id=%s tracking_sample_id=%s",
298
299
  sample_id,
299
300
  sample_sheet_id,
300
- trackingSampleId,
301
+ tracking_sample_id,
301
302
  )
302
303
 
303
304
  sample_location = tracking_sample.get("sampleContainerPosition")
@@ -352,7 +353,7 @@ class ICATLIMS(AbstractLims):
352
353
  processing_plan, downloads
353
354
  )
354
355
  except RuntimeError:
355
- logger.error(
356
+ logger.exception(
356
357
  "Failed __add_download_path_to_processing_plan"
357
358
  )
358
359
 
@@ -369,7 +370,7 @@ class ICATLIMS(AbstractLims):
369
370
  "sampleName": sample_name,
370
371
  "sampleId": sample_id,
371
372
  "sample_sheet_id": sample_sheet_id,
372
- "trackingSampleId": trackingSampleId,
373
+ "trackingSampleId": tracking_sample_id,
373
374
  "proteinAcronym": protein_acronym,
374
375
  "sampleLocation": sample_location,
375
376
  "containerCode": puck_name,
@@ -410,11 +411,13 @@ class ICATLIMS(AbstractLims):
410
411
  pass
411
412
 
412
413
  @property
413
- def only_staff_session_selection(self):
414
- return bool(self.get_property("only_staff_session_selection", default=False))
414
+ def only_staff_session_selection(self) -> bool:
415
+ return bool(
416
+ self.get_property("only_staff_session_selection", default_value=False)
417
+ )
415
418
 
416
419
  def store_robot_action(self, proposal_id: str):
417
- raise Exception("Not implemented")
420
+ raise NotImplementedError
418
421
 
419
422
  @property
420
423
  def filter(self):
@@ -452,11 +455,11 @@ class ICATLIMS(AbstractLims):
452
455
  def after_offset_days(self):
453
456
  return self.get_property("after_offset_days", "1")
454
457
 
455
- def _string_to_format_date(self, date: str, format: str) -> str:
458
+ def _string_to_format_date(self, date: str, fmt: str) -> str:
456
459
  if date is not None:
457
460
  date_time = self._tz_aware_fromisoformat(date)
458
461
  if date_time is not None:
459
- return date_time.strftime(format)
462
+ return date_time.strftime(fmt)
460
463
  return ""
461
464
 
462
465
  def _string_to_date(self, date: str) -> str:
@@ -468,7 +471,7 @@ class ICATLIMS(AbstractLims):
468
471
  def _tz_aware_fromisoformat(self, date: str) -> datetime:
469
472
  try:
470
473
  return datetime.fromisoformat(date).astimezone()
471
- except Exception:
474
+ except (TypeError, ValueError):
472
475
  return None
473
476
 
474
477
  def set_active_session_by_id(self, session_id: str) -> Session:
@@ -483,7 +486,7 @@ class ICATLIMS(AbstractLims):
483
486
 
484
487
  if len(sessions) == 0:
485
488
  logger.warning("Session list is empty. No session candidates")
486
- raise Exception("No sessions available")
489
+ raise RuntimeError("No sessions available")
487
490
 
488
491
  if len(sessions) == 1:
489
492
  self.session_manager.active_session = sessions[0]
@@ -495,7 +498,7 @@ class ICATLIMS(AbstractLims):
495
498
 
496
499
  session_list = [obj for obj in sessions if obj.session_id == session_id]
497
500
  if len(session_list) != 1:
498
- raise Exception(
501
+ raise RuntimeError(
499
502
  "Session not found in the local list of sessions. session_id="
500
503
  + session_id
501
504
  )
@@ -507,19 +510,19 @@ class ICATLIMS(AbstractLims):
507
510
  logger.debug("allow_session investigationId=%s", session.session_id)
508
511
  self.icatClient.reschedule_investigation(session.session_id)
509
512
 
510
- def get_session_by_id(self, id: str):
513
+ def get_session_by_id(self, sid: str):
511
514
  logger.debug(
512
515
  "get_session_by_id investigationId=%s investigations=%s",
513
- id,
516
+ sid,
514
517
  str(len(self.investigations)),
515
518
  )
516
- investigation_list = list(filter(lambda p: p["id"] == id, self.investigations))
519
+ investigation_list = list(filter(lambda p: p["id"] == sid, self.investigations))
517
520
  if len(investigation_list) == 1:
518
521
  self.investigation = investigation_list[0]
519
522
  return self.__to_session(investigation_list[0])
520
523
  logger.warn(
521
524
  "No investigation found. get_session_by_id investigationId=%s investigations=%s",
522
- id,
525
+ sid,
523
526
  str(len(self.investigations)),
524
527
  )
525
528
  return None
@@ -802,11 +805,11 @@ class ICATLIMS(AbstractLims):
802
805
  try:
803
806
  if cell is not None and puck is not None:
804
807
  position = int(cell * 3) + int(puck)
805
- except Exception as e:
806
- logger.exception(e)
808
+ except Exception:
809
+ logger.exception()
807
810
  return position, sample_position
808
- except Exception as e:
809
- logger.exception(e)
811
+ except Exception:
812
+ logger.exception()
810
813
 
811
814
  def store_beamline_setup(self, session_id: str, bl_config_dict: dict):
812
815
  pass
@@ -817,8 +820,76 @@ class ICATLIMS(AbstractLims):
817
820
  def store_energy_scan(self, energyscan_dict: dict):
818
821
  pass
819
822
 
820
- def store_xfe_spectrum(self, xfespectrum_dict: dict):
821
- pass
823
+ def store_xfe_spectrum(self, collection_parameters: dict):
824
+ status = {"xfeFluorescenceSpectrumId": -1}
825
+ try:
826
+ try:
827
+ beamline = self._get_scheduled_beamline()
828
+ msg = f"Dataset Beamline={beamline} "
829
+ msg += f"Current Beamline={HWR.beamline.session.beamline_name}"
830
+ logging.getLogger("HWR").info(msg)
831
+ except Exception:
832
+ logging.getLogger("HWR").exception(
833
+ "Failed to get _get_scheduled_beamline",
834
+ )
835
+ _session = HWR.beamline.session
836
+ proposal = f"{_session.proposal_code}{_session.proposal_number}"
837
+
838
+ try:
839
+ dt_aware = datetime.strptime(
840
+ collection_parameters.get("startTime"),
841
+ "%Y-%m-%d %H:%M:%S",
842
+ ).replace(tzinfo=ZoneInfo("Europe/Paris"))
843
+ dt_aware_end = datetime.strptime(
844
+ collection_parameters.get("endTime"),
845
+ "%Y-%m-%d %H:%M:%S",
846
+ ).replace(tzinfo=ZoneInfo("Europe/Paris"))
847
+
848
+ start_time = dt_aware.isoformat(timespec="microseconds")
849
+ end_time = dt_aware_end.isoformat(timespec="microseconds")
850
+ except TypeError:
851
+ logging.getLogger("HWR").exception("Failed to parse start and end time")
852
+
853
+ directory = Path(collection_parameters["filename"]).parent
854
+
855
+ msg = f"SampleId is: {collection_parameters.get('blSampleId')}"
856
+ logging.getLogger("HWR").debug(msg)
857
+ try:
858
+ sample = HWR.beamline.lims.find_sample_by_sample_id(
859
+ collection_parameters.get("blSampleId")
860
+ )
861
+ sample_name = sample["sampleName"]
862
+ except (AttributeError, TypeError):
863
+ sample_name = "unknown"
864
+ msg = f"Sample not found {collection_parameters.get('blSampleId')}"
865
+ logging.getLogger("HWR").debug(msg)
866
+
867
+ metadata = {
868
+ "sampleId": collection_parameters.get("blSampleId"),
869
+ "MX_beamSizeAtSampleX": collection_parameters.get("beamSizeHorizontal"),
870
+ "MX_beamSizeAtSampleY": collection_parameters.get("beamSizeVertical"),
871
+ "MX_directory": str(directory),
872
+ "MX_exposureTime": collection_parameters.get("exposureTime"),
873
+ "MX_flux": collection_parameters.get("flux"),
874
+ "scanType": "xrf",
875
+ "MX_transmission": collection_parameters.get("beamTransmission"),
876
+ "Sample_name": sample_name,
877
+ "InstrumentMonochromator_energy": collection_parameters.get("energy"),
878
+ "startDate": start_time,
879
+ "endDate": end_time,
880
+ }
881
+
882
+ self.icatClient.store_dataset(
883
+ beamline=beamline,
884
+ proposal=proposal,
885
+ dataset=str(directory.name),
886
+ path=str(directory),
887
+ metadata=metadata,
888
+ )
889
+ except Exception:
890
+ logging.getLogger("ispyb_client").exception()
891
+
892
+ return status
822
893
 
823
894
  def store_workflow(self, workflow_dict: dict):
824
895
  pass
@@ -871,7 +942,7 @@ class ICATLIMS(AbstractLims):
871
942
  else:
872
943
  logger.exception("HTTP error for sample %s", sample_id)
873
944
 
874
- except requests.exceptions.RequestException as e:
945
+ except requests.exceptions.RequestException:
875
946
  logger.exception("Request error for sample %s", sample_id)
876
947
  return None
877
948
 
@@ -883,15 +954,15 @@ class ICATLIMS(AbstractLims):
883
954
 
884
955
  Parameters:
885
956
  sample (str): Sample identifier.
886
- output_folder (str): Directory where files will be saved.
957
+ output_folder (str): Directory where storefiles will be saved.
887
958
 
888
959
  Returns:
889
960
  dict: A dictionary containing the paths of the downloaded files.
890
961
  """
891
962
  downloaded_files: List[Download] = []
892
963
  for resource in resources:
893
- resource_folder = pathlib.Path(output_folder) / sample_name
894
- resource_folder = pathlib.Path(resource_folder) / (
964
+ resource_folder = Path(output_folder) / sample_name
965
+ resource_folder = Path(resource_folder) / (
895
966
  resource.groupName if resource.groupName else ""
896
967
  )
897
968
  resource_folder.mkdir(
@@ -931,7 +1002,7 @@ class ICATLIMS(AbstractLims):
931
1002
 
932
1003
  try:
933
1004
  fileinfo = collection_parameters["fileinfo"]
934
- directory = pathlib.Path(fileinfo["directory"])
1005
+ directory = Path(fileinfo["directory"])
935
1006
  dataset_name = directory.name
936
1007
  # Determine the scan type
937
1008
  if dataset_name.endswith("mesh"):
@@ -1086,7 +1157,7 @@ class ICATLIMS(AbstractLims):
1086
1157
  except RuntimeError:
1087
1158
  logger.warning("Failed to get MX_axis_end")
1088
1159
 
1089
- icat_metadata_path = pathlib.Path(directory) / "metadata.json"
1160
+ icat_metadata_path = Path(directory) / "metadata.json"
1090
1161
  with open(icat_metadata_path, "w") as f:
1091
1162
  # We add the processing and experiment plan only in the metadata.json
1092
1163
  # it will not work thought pyicat-plus
@@ -1107,7 +1178,7 @@ class ICATLIMS(AbstractLims):
1107
1178
  for snapshot_index in range(1, 5):
1108
1179
  key = f"xtalSnapshotFullPath{snapshot_index}"
1109
1180
  if key in collection_parameters:
1110
- snapshot_path = pathlib.Path(collection_parameters[key])
1181
+ snapshot_path = Path(collection_parameters[key])
1111
1182
  if snapshot_path.exists():
1112
1183
  logger.debug(
1113
1184
  f"Copying snapshot index {snapshot_index} to gallery"
@@ -1167,4 +1238,3 @@ class ICATLIMS(AbstractLims):
1167
1238
  :param sample_dict: A dictionary with the properties for the entry.
1168
1239
  :type sample_dict: dict
1169
1240
  """
1170
- pass