mxcubecore 1.409.0__tar.gz → 1.411.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.

Potentially problematic release.


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

Files changed (459) hide show
  1. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/PKG-INFO +1 -1
  2. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ICATLIMS.py +135 -114
  3. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/AbstractCollect.py +1 -8
  4. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/pyproject.toml +1 -1
  5. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/COPYING +0 -0
  6. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/COPYING.LESSER +0 -0
  7. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/README.md +0 -0
  8. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/BaseHardwareObjects.py +0 -0
  9. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/Command/Epics.py +0 -0
  10. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/Command/Exporter.py +0 -0
  11. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/Command/Mockup.py +0 -0
  12. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/Command/Pool.py +0 -0
  13. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/Command/Sardana.py +0 -0
  14. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/Command/Spec.py +0 -0
  15. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/Command/Taco.py +0 -0
  16. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/Command/Tango.py +0 -0
  17. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/Command/Tine.py +0 -0
  18. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/Command/__init__.py +0 -0
  19. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/Command/exporter/ExporterClient.py +0 -0
  20. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/Command/exporter/ExporterStates.py +0 -0
  21. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/Command/exporter/MDEvents.py +0 -0
  22. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/Command/exporter/StandardClient.py +0 -0
  23. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/Command/exporter/__init__.py +0 -0
  24. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/CommandContainer.py +0 -0
  25. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjectFileParser.py +0 -0
  26. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ALBA/ALBAAutoProcessing.py +0 -0
  27. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ALBA/ALBABackLight.py +0 -0
  28. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ALBA/ALBABeamInfo.py +0 -0
  29. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ALBA/ALBACalibration.py +0 -0
  30. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ALBA/ALBACats.py +0 -0
  31. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ALBA/ALBACatsMaint.py +0 -0
  32. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ALBA/ALBAClusterJob.py +0 -0
  33. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ALBA/ALBACollect.py +0 -0
  34. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ALBA/ALBADataAnalysis.py +0 -0
  35. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ALBA/ALBAEnergy.py +0 -0
  36. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ALBA/ALBAEpsActuator.py +0 -0
  37. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ALBA/ALBAFastShutter.py +0 -0
  38. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ALBA/ALBAFlux.py +0 -0
  39. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ALBA/ALBAFrontEnd.py +0 -0
  40. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ALBA/ALBAFrontLight.py +0 -0
  41. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ALBA/ALBAISPyBClient.py +0 -0
  42. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ALBA/ALBAMachineInfo.py +0 -0
  43. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ALBA/ALBAMiniDiff.py +0 -0
  44. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ALBA/ALBAPilatus.py +0 -0
  45. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ALBA/ALBASession.py +0 -0
  46. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ALBA/ALBASupervisor.py +0 -0
  47. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ALBA/ALBATransmission.py +0 -0
  48. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ALBA/ALBAZoomMotor.py +0 -0
  49. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ALBA/ALBAZoomMotorAutoBrightness.py +0 -0
  50. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ALBA/XalocCalibration.py +0 -0
  51. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ALBA/XalocMachineInfo.py +0 -0
  52. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ALBA/XalocMiniDiff.py +0 -0
  53. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ALBA/__init__.py +0 -0
  54. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/Attenuators.py +0 -0
  55. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/AutoPowerSardanaMotor.py +0 -0
  56. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/BeamInfo.py +0 -0
  57. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/Beamline.py +0 -0
  58. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/BeamlineActions.py +0 -0
  59. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/BeamlineTools.py +0 -0
  60. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/Bliss.py +0 -0
  61. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/BlissActuator.py +0 -0
  62. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/BlissEnergy.py +0 -0
  63. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/BlissHutchTrigger.py +0 -0
  64. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/BlissMotor.py +0 -0
  65. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/BlissMotorWPositions.py +0 -0
  66. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/BlissNState.py +0 -0
  67. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/BlissRontecMCA.py +0 -0
  68. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/BlissShutter.py +0 -0
  69. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/Cats90.py +0 -0
  70. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/CatsBessy.py +0 -0
  71. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/CatsMaint.py +0 -0
  72. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/CentringMath.py +0 -0
  73. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DESY/Centring.py +0 -0
  74. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DESY/DigitalZoomMotor.py +0 -0
  75. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DESY/MjpgStreamVideo.py +0 -0
  76. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DESY/P11AlbulaView.py +0 -0
  77. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DESY/P11BackLight.py +0 -0
  78. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DESY/P11Beam.py +0 -0
  79. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DESY/P11BeamStop.py +0 -0
  80. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DESY/P11Collect.py +0 -0
  81. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DESY/P11Collimator.py +0 -0
  82. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DESY/P11DetectorCover.py +0 -0
  83. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DESY/P11DetectorDistance.py +0 -0
  84. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DESY/P11DoorInterlock.py +0 -0
  85. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DESY/P11EDNACharacterisation.py +0 -0
  86. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DESY/P11EigerDetector.py +0 -0
  87. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DESY/P11Energy.py +0 -0
  88. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DESY/P11FastShutter.py +0 -0
  89. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DESY/P11Flux.py +0 -0
  90. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DESY/P11ISPyBClient.py +0 -0
  91. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DESY/P11MachineInfo.py +0 -0
  92. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DESY/P11NanoDiff.py +0 -0
  93. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DESY/P11Pinhole.py +0 -0
  94. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DESY/P11SampleChanger.py +0 -0
  95. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DESY/P11Session.py +0 -0
  96. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DESY/P11Shutter.py +0 -0
  97. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DESY/P11Transmission.py +0 -0
  98. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DESY/P11YagDiode.py +0 -0
  99. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DESY/P11Zoom.py +0 -0
  100. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DESY/ValueStateChannel.py +0 -0
  101. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DESY/__init__.py +0 -0
  102. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DataPublisher.py +0 -0
  103. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/DozorOnlineProcessing.py +0 -0
  104. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EDNACharacterisation.py +0 -0
  105. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLAperture.py +0 -0
  106. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLBSD.py +0 -0
  107. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLBeam.py +0 -0
  108. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLBeamCentering.py +0 -0
  109. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLBeamFocusing.py +0 -0
  110. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLBeamlineTest.py +0 -0
  111. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLBeamstop.py +0 -0
  112. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLCRL.py +0 -0
  113. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLCollect.py +0 -0
  114. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLDetector.py +0 -0
  115. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLDoorInterlock.py +0 -0
  116. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLEnergy.py +0 -0
  117. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLEnergyScan.py +0 -0
  118. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLExporterClient.py +0 -0
  119. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLFlux.py +0 -0
  120. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLImageTracking.py +0 -0
  121. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLMachineInfo.py +0 -0
  122. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLMiniDiff.py +0 -0
  123. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLMotorsGroup.py +0 -0
  124. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLOfflineProcessing.py +0 -0
  125. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLOnlineProcessing.py +0 -0
  126. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLPPUControl.py +0 -0
  127. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLPiezoMotor.py +0 -0
  128. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLQueueEntry.py +0 -0
  129. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLResolution.py +0 -0
  130. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLSSXChip.py +0 -0
  131. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLSafetyShutter.py +0 -0
  132. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLSession.py +0 -0
  133. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLSlitBox.py +0 -0
  134. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLTableMotor.py +0 -0
  135. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLTransfocator.py +0 -0
  136. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLTransmission.py +0 -0
  137. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLXRFSpectrum.py +0 -0
  138. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/EMBLXrayImaging.py +0 -0
  139. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/MDFastShutter.py +0 -0
  140. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/TINEMotor.py +0 -0
  141. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBL/__init__.py +0 -0
  142. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBLFlexHCD.py +0 -0
  143. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EMBLFlexHarvester.py +0 -0
  144. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/BlissHutchTrigger.py +0 -0
  145. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/BlissTurret.py +0 -0
  146. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/BlissVolpi.py +0 -0
  147. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/ESRFBeam.py +0 -0
  148. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/ESRFBeamDefiner.py +0 -0
  149. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/ESRFBeamInfo.py +0 -0
  150. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/ESRFBeamlineActions.py +0 -0
  151. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/ESRFEnergyScan.py +0 -0
  152. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/ESRFMD2SC3.py +0 -0
  153. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/ESRFMetadataManagerClient.py +0 -0
  154. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/ESRFMultiCollect.py +0 -0
  155. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/ESRFPhotonFlux.py +0 -0
  156. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/ESRFSC3.py +0 -0
  157. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/ESRFSession.py +0 -0
  158. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/ESRFSmallXrayCentring.py +0 -0
  159. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/ESRFXRFSpectrum.py +0 -0
  160. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/ID232BeamDefiner.py +0 -0
  161. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/ID29HutchTrigger.py +0 -0
  162. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/ID30A3BeamDefiner.py +0 -0
  163. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/ID30BBeamDefiner.py +0 -0
  164. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/MD2MultiCollect.py +0 -0
  165. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/OxfordCryostream.py +0 -0
  166. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/SSXICATLIMS.py +0 -0
  167. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/TangoKeithleyPhotonFlux.py +0 -0
  168. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/Transmission.py +0 -0
  169. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/__init__.py +0 -0
  170. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/calc_flux.py +0 -0
  171. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/queue_entry/__init__.py +0 -0
  172. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/queue_entry/fast_char_collection.py +0 -0
  173. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/queue_entry/mx_base_queue_entry.py +0 -0
  174. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/queue_entry/ssx_base_queue_entry.py +0 -0
  175. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/queue_entry/ssx_big_foil_collection.py +0 -0
  176. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/queue_entry/ssx_chip_collection.py +0 -0
  177. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/queue_entry/ssx_foil_collection.py +0 -0
  178. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/queue_entry/ssx_injector_collection.py +0 -0
  179. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/queue_entry/ssx_laser_hare_collection.py +0 -0
  180. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/queue_entry/ssx_laser_injector_collection.py +0 -0
  181. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/queue_entry/ssx_line_scan_collection.py +0 -0
  182. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRF/queue_entry/test_collection.py +0 -0
  183. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ESRFLIMS.py +0 -0
  184. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/EdnaWorkflow.py +0 -0
  185. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/Energy.py +0 -0
  186. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ExporterMotor.py +0 -0
  187. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ExporterNState.py +0 -0
  188. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/FlexHCD.py +0 -0
  189. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/FlexHCDMaintenance.py +0 -0
  190. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/GenericDiffractometer.py +0 -0
  191. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/Gphl/CollectEmulator.py +0 -0
  192. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/Gphl/GphlMessages.py +0 -0
  193. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/Gphl/GphlQueueEntry.py +0 -0
  194. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/Gphl/GphlWorkflow.py +0 -0
  195. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/Gphl/GphlWorkflowConnection.py +0 -0
  196. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/Gphl/Transcal2MiniKappa.py +0 -0
  197. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/Gphl/__init__.py +0 -0
  198. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/Gphl/run_mxcube_test.csh +0 -0
  199. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/Grob.py +0 -0
  200. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/GrobDiff.py +0 -0
  201. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/GrobGonio.py +0 -0
  202. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/GrobMotor.py +0 -0
  203. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/GrobSampleChanger.py +0 -0
  204. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/Harvester.py +0 -0
  205. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/HarvesterMaintenance.py +0 -0
  206. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ISARAMaint.py +0 -0
  207. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/LNLS/LNLSLIMS.py +0 -0
  208. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/LNLS/__init__.py +0 -0
  209. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/LdapAuthenticator.py +0 -0
  210. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/Lima2Detector.py +0 -0
  211. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/LimaEigerDetector.py +0 -0
  212. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/LimaPilatusDetector.py +0 -0
  213. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/MAXIV/ISPyBLims.py +0 -0
  214. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/MAXIV/MAXIVAutoProcessing.py +0 -0
  215. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/MAXIV/MachInfo.py +0 -0
  216. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/MAXIV/MicroMAX/__init__.py +0 -0
  217. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/MAXIV/MicroMAX/beamline.py +0 -0
  218. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/MAXIV/MicroMAX/beamline_actions.py +0 -0
  219. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/MAXIV/__init__.py +0 -0
  220. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/MAXIV/beamline.py +0 -0
  221. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/MAXIV/session.py +0 -0
  222. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/MD2Motor.py +0 -0
  223. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/MD3UP.py +0 -0
  224. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/MachCurrent.py +0 -0
  225. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/Mar225.py +0 -0
  226. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/Marvin.py +0 -0
  227. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/Microdiff.py +0 -0
  228. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/MicrodiffActuator.py +0 -0
  229. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/MicrodiffAperture.py +0 -0
  230. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/MicrodiffBeamstop.py +0 -0
  231. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/MicrodiffFocusMotor.py +0 -0
  232. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/MicrodiffInOut.py +0 -0
  233. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/MicrodiffKappaMotor.py +0 -0
  234. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/MicrodiffLight.py +0 -0
  235. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/MicrodiffLightBeamstop.py +0 -0
  236. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/MicrodiffMotor.py +0 -0
  237. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/MicrodiffSamplePseudo.py +0 -0
  238. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/MicrodiffZoom.py +0 -0
  239. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/MiniDiff.py +0 -0
  240. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/MiniKappaCorrection.py +0 -0
  241. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/MinidiffAperture.py +0 -0
  242. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/MotorWPositions.py +0 -0
  243. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/MotorsNPosition.py +0 -0
  244. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/MultiplePositions.py +0 -0
  245. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/NState.py +0 -0
  246. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/Native/__init__.py +0 -0
  247. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ObjectsController.py +0 -0
  248. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/PlateManipulator.py +0 -0
  249. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/PlateManipulatorMaintenance.py +0 -0
  250. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/ProposalTypeISPyBLims.py +0 -0
  251. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/PyISPyBClient.py +0 -0
  252. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/QtAxisCamera.py +0 -0
  253. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/QtGraphicsLib.py +0 -0
  254. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/QtGraphicsManager.py +0 -0
  255. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/QtInstanceServer.py +0 -0
  256. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/QtLimaVideo.py +0 -0
  257. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/QtTangoLimaVideo.py +0 -0
  258. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/QueueManager.py +0 -0
  259. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/QueueModel.py +0 -0
  260. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/RedisClient.py +0 -0
  261. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/Resolution.py +0 -0
  262. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SC3.py +0 -0
  263. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Attenuator.py +0 -0
  264. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/PX1BeamInfo.py +0 -0
  265. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/PX1CatsMaint.py +0 -0
  266. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Collect.py +0 -0
  267. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Configuration.py +0 -0
  268. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Cryotong.py +0 -0
  269. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/PX1DetectorDistance.py +0 -0
  270. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Energy.py +0 -0
  271. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/PX1EnergyScan.py +0 -0
  272. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Environment.py +0 -0
  273. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/PX1MiniDiff.py +0 -0
  274. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Pilatus.py +0 -0
  275. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Pss.py +0 -0
  276. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/PX1Resolution.py +0 -0
  277. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/PX1TangoLight.py +0 -0
  278. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/PX1/__init__.py +0 -0
  279. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Attenuator.py +0 -0
  280. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/PX2/PX2BeamInfo.py +0 -0
  281. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Collect.py +0 -0
  282. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Diffractometer.py +0 -0
  283. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Energy.py +0 -0
  284. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Guillotine.py +0 -0
  285. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Qt4_LimaVideo.py +0 -0
  286. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Resolution.py +0 -0
  287. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/PX2/PX2Video.py +0 -0
  288. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/PX2/__init__.py +0 -0
  289. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/SOLEILCatsMaint.py +0 -0
  290. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/SOLEILEnergyScan.py +0 -0
  291. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/SOLEILFlux.py +0 -0
  292. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/SOLEILGuillotine.py +0 -0
  293. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/SOLEILISPyBClient.py +0 -0
  294. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/SOLEILMachineInfo.py +0 -0
  295. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/SOLEILPss.py +0 -0
  296. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/SOLEILRuche.py +0 -0
  297. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/SOLEILSafetyShutter.py +0 -0
  298. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/SOLEILSession.py +0 -0
  299. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/SOLEILqueue_entry.py +0 -0
  300. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/TangoDCMotor.py +0 -0
  301. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SOLEIL/__init__.py +0 -0
  302. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SampleStage.py +0 -0
  303. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SampleView.py +0 -0
  304. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SardanaMotor.py +0 -0
  305. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SecureXMLRpcRequestHandler.py +0 -0
  306. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/Session.py +0 -0
  307. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SimpleHTML.py +0 -0
  308. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SpecMotor.py +0 -0
  309. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SpecMotorWPositions.py +0 -0
  310. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SpecMotorWSpecPositions.py +0 -0
  311. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SpecScan.py +0 -0
  312. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SpecShell.py +0 -0
  313. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/SpecState.py +0 -0
  314. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/StateMachine.py +0 -0
  315. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/TangoLimaMpegVideo.py +0 -0
  316. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/TangoLimaVideo.py +0 -0
  317. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/TangoLimaVideoDevice.py +0 -0
  318. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/TangoMachineInfo.py +0 -0
  319. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/TangoMotor.py +0 -0
  320. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/TangoShutter.py +0 -0
  321. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/Transmission.py +0 -0
  322. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/UnitTest.py +0 -0
  323. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/UserTypeISPyBLims.py +0 -0
  324. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/VimbaVideo.py +0 -0
  325. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/XMLRPCServer.py +0 -0
  326. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/XRFSpectrum.py +0 -0
  327. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/XSDataAutoprocv1_0.py +0 -0
  328. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/XSDataCommon.py +0 -0
  329. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/XSDataControlDozorv1_1.py +0 -0
  330. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/XSDataMXCuBEv1_3.py +0 -0
  331. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/XSDataMXCuBEv1_4.py +0 -0
  332. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/XSDataMXv1.py +0 -0
  333. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/__init__.py +0 -0
  334. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/AbstractActuator.py +0 -0
  335. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/AbstractAperture.py +0 -0
  336. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/AbstractAuthenticator.py +0 -0
  337. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/AbstractBeam.py +0 -0
  338. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/AbstractCharacterisation.py +0 -0
  339. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/AbstractDetector.py +0 -0
  340. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/AbstractEnergy.py +0 -0
  341. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/AbstractEnergyScan.py +0 -0
  342. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/AbstractFlux.py +0 -0
  343. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/AbstractLims.py +0 -0
  344. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/AbstractMCA.py +0 -0
  345. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/AbstractMachineInfo.py +0 -0
  346. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/AbstractMotor.py +0 -0
  347. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/AbstractMultiCollect.py +0 -0
  348. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/AbstractNState.py +0 -0
  349. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/AbstractOnlineProcessing.py +0 -0
  350. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/AbstractProcedure.py +0 -0
  351. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/AbstractResolution.py +0 -0
  352. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/AbstractSampleChanger.py +0 -0
  353. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/AbstractSampleView.py +0 -0
  354. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/AbstractShutter.py +0 -0
  355. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/AbstractSlits.py +0 -0
  356. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/AbstractTransmission.py +0 -0
  357. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/AbstractVideoDevice.py +0 -0
  358. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/AbstractXRFSpectrum.py +0 -0
  359. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/AbstractXrayCentring.py +0 -0
  360. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/ISPyBAbstractLims.py +0 -0
  361. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/ISPyBDataAdapter.py +0 -0
  362. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/ISPyBValueFactory.py +0 -0
  363. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/__init__.py +0 -0
  364. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/sample_changer/Component.py +0 -0
  365. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/sample_changer/Container.py +0 -0
  366. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/sample_changer/Crims.py +0 -0
  367. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/sample_changer/Sample.py +0 -0
  368. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/abstract/sample_changer/__init__.py +0 -0
  369. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/autoprocessing.py +0 -0
  370. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/edna_test_data.py +0 -0
  371. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/ActuatorMockup.py +0 -0
  372. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/ApertureMockup.py +0 -0
  373. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/BeamDefinerMockup.py +0 -0
  374. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/BeamMockup.py +0 -0
  375. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/BeamlineActionsMockup.py +0 -0
  376. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/BeamlineTestMockup.py +0 -0
  377. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/BeamstopMockup.py +0 -0
  378. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/CatsMaintMockup.py +0 -0
  379. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/CollectMockup.py +0 -0
  380. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/DetectorMockup.py +0 -0
  381. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/DiffractometerMockup.py +0 -0
  382. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/DoorInterlockMockup.py +0 -0
  383. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/EDNACharacterisationMockup.py +0 -0
  384. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/EnergyMockup.py +0 -0
  385. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/EnergyScanMockup.py +0 -0
  386. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/ExporterNStateMockup.py +0 -0
  387. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/FluxMockup.py +0 -0
  388. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/HarvesterMockup.py +0 -0
  389. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/ISPyBClientMockup.py +0 -0
  390. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/ISPyBRestClientMockup.py +0 -0
  391. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/LimaDetectorMockup.py +0 -0
  392. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/MDCameraMockup.py +0 -0
  393. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/MachineInfoMockup.py +0 -0
  394. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/MicrodiffApertureMockup.py +0 -0
  395. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/MicrodiffInOutMockup.py +0 -0
  396. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/MicrodiffZoomMockup.py +0 -0
  397. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/MotorMockup.py +0 -0
  398. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/MotorMockupBis.py +0 -0
  399. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/MultiCollectMockup.py +0 -0
  400. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/OfflineProcessingMockup.py +0 -0
  401. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/OnlineProcessingMockup.py +0 -0
  402. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/PlateManipulatorMockup.py +0 -0
  403. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/PlottingMockup.py +0 -0
  404. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/ProcedureMockup.py +0 -0
  405. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/QtVideoMockup.py +0 -0
  406. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/ResolutionMockup.py +0 -0
  407. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/SOLEILCharacterisationMockup.py +0 -0
  408. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/SampleChangerMockup.py +0 -0
  409. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/ScanMockup.py +0 -0
  410. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/ShapeHistoryMockup.py +0 -0
  411. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/ShutterMockup.py +0 -0
  412. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/SlitsMockup.py +0 -0
  413. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/TransmissionMockup.py +0 -0
  414. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/XRFMockup.py +0 -0
  415. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/XRFSpectrumMockup.py +0 -0
  416. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/XrayCentringMockup.py +0 -0
  417. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/__init__.py +0 -0
  418. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/mockup/sample.jpg +0 -0
  419. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareObjects/sample_centring.py +0 -0
  420. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/HardwareRepository.py +0 -0
  421. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/Poller.py +0 -0
  422. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/TaskUtils.py +0 -0
  423. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/__init__.py +0 -0
  424. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/__version__.py +0 -0
  425. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/dispatcher.py +0 -0
  426. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/model/__init__.py +0 -0
  427. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/model/common.py +0 -0
  428. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/model/configmodel.py +0 -0
  429. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/model/crystal_symmetry.py +0 -0
  430. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/model/lims_session.py +0 -0
  431. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/model/procedure_model.py +0 -0
  432. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/model/protocols/__init__.py +0 -0
  433. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/model/protocols/epics.py +0 -0
  434. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/model/protocols/exporter.py +0 -0
  435. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/model/protocols/sardana.py +0 -0
  436. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/model/protocols/tango.py +0 -0
  437. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/model/queue_model_enumerables.py +0 -0
  438. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/model/queue_model_objects.py +0 -0
  439. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/protocols_config.py +0 -0
  440. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/queue_entry/__init__.py +0 -0
  441. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/queue_entry/advanced_connector.py +0 -0
  442. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/queue_entry/base_queue_entry.py +0 -0
  443. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/queue_entry/characterisation.py +0 -0
  444. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/queue_entry/data_collection.py +0 -0
  445. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/queue_entry/energy_scan.py +0 -0
  446. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/queue_entry/generic_workflow.py +0 -0
  447. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/queue_entry/import_helper.py +0 -0
  448. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/queue_entry/optical_centring.py +0 -0
  449. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/queue_entry/sample_centring.py +0 -0
  450. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/queue_entry/test_collection.py +0 -0
  451. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/queue_entry/xray_centering.py +0 -0
  452. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/queue_entry/xray_centering2.py +0 -0
  453. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/queue_entry/xrf_spectrum.py +0 -0
  454. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/saferef.py +0 -0
  455. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/utils/__init__.py +0 -0
  456. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/utils/conversion.py +0 -0
  457. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/utils/qt_import.py +0 -0
  458. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/utils/tango.py +0 -0
  459. {mxcubecore-1.409.0 → mxcubecore-1.411.0}/mxcubecore/utils/units.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: mxcubecore
3
- Version: 1.409.0
3
+ Version: 1.411.0
4
4
  Summary: Core libraries for the MXCuBE application
5
5
  License: LGPL-3.0-or-later
6
6
  Keywords: mxcube,mxcube3,mxcubecore
@@ -4,7 +4,7 @@ import shutil
4
4
  from collections import defaultdict
5
5
  from datetime import datetime, timedelta
6
6
  from pathlib import Path
7
- from typing import TYPE_CHECKING, List, Optional
7
+ from typing import TYPE_CHECKING, Any, List, Optional
8
8
  from zoneinfo import ZoneInfo
9
9
 
10
10
  import requests
@@ -231,7 +231,6 @@ class ICATLIMS(AbstractLims):
231
231
  def __add_download_path_to_processing_plan(
232
232
  self, processing_plan, downloads: List[Download]
233
233
  ):
234
- # Build a lookup for file_path by filename
235
234
  file_path_lookup = {d.filename: d.path for d in downloads}
236
235
  group_paths = defaultdict(list)
237
236
  for d in downloads:
@@ -240,21 +239,23 @@ class ICATLIMS(AbstractLims):
240
239
 
241
240
  # Enrich the processing_plan
242
241
  for item in processing_plan:
243
- if item["key"] == "Advanced_processing":
244
- for pipeline in item["value"]:
245
- # Update reference
246
- ref = pipeline.get("reference")
247
- if ref in file_path_lookup:
248
- pipeline["reference"] = {"filepath": file_path_lookup[ref]}
249
-
250
- # Update search_models
251
- if "search_models" in pipeline:
252
- models = json.loads(pipeline["search_models"])
253
- for model in models:
254
- group = model.get("pdb_group")
255
- if group in group_paths:
256
- model["file_paths"] = group_paths[group]
257
- pipeline["search_models"] = models
242
+ key = item.get("key")
243
+ value = item.get("value")
244
+ if (
245
+ key == "reference"
246
+ and isinstance(value, str)
247
+ and value in file_path_lookup
248
+ ):
249
+ item["value"] = {"filepath": file_path_lookup[value]}
250
+ if key == "search_models":
251
+ models = value
252
+ if isinstance(models, str):
253
+ models = json.loads(models)
254
+ for model in models:
255
+ group = model.get("pdb_group")
256
+ if group in group_paths:
257
+ model["file_paths"] = group_paths[group]
258
+ item["value"] = models
258
259
 
259
260
  def _safe_json_loads(self, json_str):
260
261
  try:
@@ -262,25 +263,7 @@ class ICATLIMS(AbstractLims):
262
263
  except Exception:
263
264
  return str(json_str)
264
265
 
265
- def __to_sample(
266
- self, tracking_sample: dict, puck: dict, sample_sheets: List[SampleSheet]
267
- ) -> dict:
268
- """
269
- Convert a tracking sample and associated metadata into the internal
270
- sample data structure.
271
- - Extracts relevant sample metadata.
272
- - Resolves protein acronym from the sample sheet if available.
273
- - Maps experiment plan details into a diffraction plan dictionary.
274
- - Assembles all relevant fields into a structured sample dictionary.
275
-
276
- Args:
277
- tracking_sample (dict): The raw sample data from tracking.
278
- puck (dict): The puck (container) metadata associated with the sample.
279
- sample_sheets (List[SampleSheet]): List of sample sheets used for lookup.
280
-
281
- Returns:
282
- dict: A dictionary representing the standardized internal sample format.
283
- """
266
+ def __extract_sample_identifiers(self, tracking_sample: dict, puck: dict) -> dict:
284
267
  # Basic identifiers
285
268
  sample_name = str(tracking_sample.get("name"))
286
269
 
@@ -302,66 +285,8 @@ class ICATLIMS(AbstractLims):
302
285
  puck_name = puck.get("name", "UnknownPuck")
303
286
  parcel_name = puck.get("parcelName")
304
287
  parcel_id = puck.get("parcelId")
305
- # Determine protein acronym using sample sheet if available
306
- protein_acronym = sample_name # Default fallback
307
288
 
308
- sample_sheet = self.get_sample_sheet_by_id(sample_sheets, sample_sheet_id)
309
- if sample_sheet:
310
- protein_acronym = sample_sheet.name
311
-
312
- # This converts to key-value pairs
313
- experiment_plan = {
314
- item["key"]: item["value"]
315
- for item in tracking_sample.get("experimentPlan", {})
316
- }
317
-
318
- processing_plan = tracking_sample.get("processingPlan", [])
319
- downloads: List[Download] = []
320
- if processing_plan:
321
- for item in processing_plan:
322
- # when possible this converts the string to json
323
- item["value"] = self._safe_json_loads(item["value"])
324
-
325
- sample_information = None
326
- try:
327
- sample_information: SampleInformation = (
328
- self.__get_sample_information_by(sample_sheet_id)
329
- )
330
- if sample_information is not None:
331
- destination_folder = (
332
- HWR.beamline.session.get_base_process_directory()
333
- )
334
- msg = "Download resource: "
335
- msg += f"sample_sheet_id={sample_sheet_id} "
336
- msg += f"destination_folder={destination_folder}"
337
- logger.debug(msg)
338
- downloads = self._download_resources(
339
- sample_sheet_id,
340
- sample_information.resources,
341
- destination_folder,
342
- sample_name,
343
- )
344
- msg = f"downloaded {len(downloads)} resources"
345
- logger.debug(msg)
346
- if len(downloads) > 0:
347
- try:
348
- self.__add_download_path_to_processing_plan(
349
- processing_plan, downloads
350
- )
351
- except RuntimeError:
352
- logger.exception(
353
- "Failed __add_download_path_to_processing_plan"
354
- )
355
-
356
- processing_plan = {
357
- item["key"]: item["value"] for item in processing_plan
358
- }
359
-
360
- except RuntimeError as e:
361
- msg = f"error getting sample information {e}"
362
- logger.warning(msg)
363
-
364
- comments = tracking_sample.get("comments")
289
+ protein_acronym = self.__resolve_protein_acronym(sample_name, sample_sheet_id)
365
290
 
366
291
  return {
367
292
  "sampleName": sample_name,
@@ -376,29 +301,125 @@ class ICATLIMS(AbstractLims):
376
301
  "SampleTrackingParcel_id": parcel_id,
377
302
  "SampleTrackingContainer_id": puck_name,
378
303
  "SampleTrackingContainer_name": parcel_id,
379
- "smiles": None, # Placeholder for future chemical structure info
304
+ }
305
+
306
+ def __resolve_protein_acronym(self, sample_name: str, sample_sheet_id: str) -> str:
307
+ sample_sheet = self.get_sample_sheet_by_id(self.sample_sheets, sample_sheet_id)
308
+ return sample_sheet.name if sample_sheet else sample_name
309
+
310
+ def __parse_experiment_plan(self, tracking_sample: dict) -> dict[str, Any]:
311
+ return {
312
+ item["key"]: item["value"]
313
+ for item in tracking_sample.get("experimentPlan", {})
314
+ }
315
+
316
+ def __build_diffraction_plan(self, experiment_plan: dict) -> dict[str, Any]:
317
+ return {
318
+ # "diffractionPlanId": 457980, TODO: do we need this?
319
+ "experimentKind": experiment_plan.get("experimentKind"),
320
+ "numberOfPositions": experiment_plan.get("numberOfPositions"),
321
+ "observedResolution": experiment_plan.get("observedResolution"),
322
+ "preferredBeamDiameter": experiment_plan.get("preferredBeamDiameter"),
323
+ "radiationSensitivity": experiment_plan.get("radiationSensitivity"),
324
+ "requiredCompleteness": experiment_plan.get("requiredCompleteness"),
325
+ "requiredMultiplicity": experiment_plan.get("requiredMultiplicity"),
326
+ "requiredResolution": experiment_plan.get("requiredResolution"),
327
+ }
328
+
329
+ def __prepare_processing_plan(
330
+ self, tracking_sample: dict, sample_sheet_id: str, protein_acronym: str
331
+ ) -> dict[str, Any]:
332
+ processing_plan = tracking_sample.get("processingPlan", [])
333
+ if not processing_plan:
334
+ return {}
335
+
336
+ # Convert string values to JSON if possible
337
+ for item in processing_plan:
338
+ item["value"] = self._safe_json_loads(item.get("value"))
339
+
340
+ downloads = self.__get_or_download_plan_resources(
341
+ sample_sheet_id, protein_acronym
342
+ )
343
+
344
+ if downloads:
345
+ try:
346
+ self.__add_download_path_to_processing_plan(processing_plan, downloads)
347
+ except RuntimeError:
348
+ logger.exception("Failed __add_download_path_to_processing_plan")
349
+ return {item["key"]: item["value"] for item in processing_plan}
350
+
351
+ def __get_or_download_plan_resources(
352
+ self, sample_sheet_id: str, protein_acronym: str
353
+ ) -> List[Download]:
354
+ if not hasattr(self, "_downloads_cache"):
355
+ self._downloads_cache = {}
356
+
357
+ cache_key = (sample_sheet_id, protein_acronym)
358
+ if cache_key in self._downloads_cache:
359
+ logger.debug(f"Reusing cached downloads for {cache_key}")
360
+ return self._downloads_cache[cache_key]
361
+
362
+ sample_information = self.__get_sample_information_by(sample_sheet_id)
363
+ if not sample_information:
364
+ return []
365
+
366
+ # create subfolder per protein acronym
367
+ destination_folder = (
368
+ Path(HWR.beamline.session.get_base_process_directory())
369
+ / "processing_plan_resources"
370
+ / protein_acronym
371
+ )
372
+ destination_folder.mkdir(parents=True, exist_ok=True)
373
+
374
+ logger.debug(
375
+ f"Download resource: sample_sheet_id={sample_sheet_id} "
376
+ f"destination_folder={destination_folder}"
377
+ )
378
+
379
+ downloads = self._download_resources(
380
+ sample_sheet_id, sample_information.resources, destination_folder, ""
381
+ )
382
+
383
+ logger.debug(f"downloaded {len(downloads)} resources")
384
+
385
+ self._downloads_cache[cache_key] = downloads
386
+ return downloads
387
+
388
+ def __to_sample(
389
+ self, tracking_sample: dict, puck: dict, sample_sheets: List[SampleSheet]
390
+ ) -> dict[str, Any]:
391
+ """
392
+ Convert a tracking sample and associated metadata into the internal
393
+ sample data structure.
394
+ - Extracts relevant sample metadata.
395
+ - Resolves protein acronym from the sample sheet if available.
396
+ - Maps experiment plan details into a diffraction plan dictionary.
397
+ - Assembles all relevant fields into a structured sample dictionary.
398
+
399
+ Args:
400
+ tracking_sample (dict): The raw sample data from tracking.
401
+ puck (dict): The puck (container) metadata associated with the sample.
402
+ sample_sheets (List[SampleSheet]): List of sample sheets used for lookup.
403
+
404
+ Returns:
405
+ dict: A dictionary representing the standardized internal sample format.
406
+ """
407
+ sample_id_info = self.__extract_sample_identifiers(tracking_sample, puck)
408
+ experiment_plan = self.__parse_experiment_plan(tracking_sample)
409
+ processing_plan = self.__prepare_processing_plan(
410
+ tracking_sample,
411
+ sample_id_info["sample_sheet_id"],
412
+ sample_id_info["proteinAcronym"],
413
+ )
414
+
415
+ return {
416
+ **sample_id_info,
380
417
  "experimentType": experiment_plan.get("workflowType"),
381
418
  "crystalSpaceGroup": experiment_plan.get("forceSpaceGroup"),
382
- "diffractionPlan": {
383
- # "diffractionPlanId": 457980, TODO: do we need this?
384
- "experimentKind": experiment_plan.get("experimentKind"),
385
- "numberOfPositions": experiment_plan.get("numberOfPositions"),
386
- "observedResolution": experiment_plan.get("observedResolution"),
387
- "preferredBeamDiameter": experiment_plan.get("preferredBeamDiameter"),
388
- "radiationSensitivity": experiment_plan.get("radiationSensitivity"),
389
- "requiredCompleteness": experiment_plan.get("requiredCompleteness"),
390
- "requiredMultiplicity": experiment_plan.get("requiredMultiplicity"),
391
- "requiredResolution": experiment_plan.get("requiredResolution"),
392
- },
393
- "cellA": experiment_plan.get("unit_cell_a"),
394
- "cellB": experiment_plan.get("unit_cell_b"),
395
- "cellC": experiment_plan.get("unit_cell_c"),
396
- "cellAlpha": experiment_plan.get("unit_cell_alpha"),
397
- "cellBeta": experiment_plan.get("unit_cell_beta"),
398
- "cellGamma": experiment_plan.get("unit_cell_gamma"),
419
+ "diffractionPlan": self.__build_diffraction_plan(experiment_plan),
399
420
  "experimentPlan": experiment_plan,
400
421
  "processingPlan": processing_plan,
401
- "comments": comments,
422
+ "comments": tracking_sample.get("comments"),
402
423
  }
403
424
 
404
425
  def create_session(self, session_dict):
@@ -101,13 +101,6 @@ class AbstractCollect(HardwareObject, object):
101
101
  def init(self):
102
102
  self.ready_event = gevent.event.Event()
103
103
 
104
- undulators = []
105
- try:
106
- for undulator in self.config.undulators:
107
- undulators.append(undulator)
108
- except Exception:
109
- self.log.exception("")
110
-
111
104
  beam_div_hor, beam_div_ver = HWR.beamline.beam.get_beam_divergence()
112
105
 
113
106
  self.set_beamline_configuration(
@@ -126,7 +119,7 @@ class AbstractCollect(HardwareObject, object):
126
119
  detector_px=HWR.beamline.detector.get_property("px"),
127
120
  detector_py=HWR.beamline.detector.get_property("py"),
128
121
  detector_binning_mode=HWR.beamline.detector.get_binning_mode(),
129
- undulators=undulators,
122
+ undulators=self.get_property("undulators", []),
130
123
  focusing_optic=self.get_property("focusing_optic"),
131
124
  monochromator_type=self.get_property("monochromator"),
132
125
  beam_divergence_vertical=beam_div_hor,
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "mxcubecore"
3
- version = "1.409.0"
3
+ version = "1.411.0"
4
4
  license = "LGPL-3.0-or-later"
5
5
  description = "Core libraries for the MXCuBE application"
6
6
  authors = [
File without changes
File without changes