nxstools 4.35.1__tar.gz → 4.37.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 (462) hide show
  1. {nxstools-4.35.1 → nxstools-4.37.0}/ChangeLog +8 -0
  2. {nxstools-4.35.1/nxstools.egg-info → nxstools-4.37.0}/PKG-INFO +1 -1
  3. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/h5cppwriter.py +9 -9
  4. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/h5rediswriter.py +215 -21
  5. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/release.py +1 -1
  6. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/limaccd.xml +1 -1
  7. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/limaccd_filestartnum_cb.ds.xml +1 -1
  8. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/limaccdvds.xml +1 -1
  9. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/limaccdvds_filestartnum_cb.ds.xml +1 -1
  10. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pco.xml +1 -1
  11. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pco_filestartnum_cb.ds.xml +1 -1
  12. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pilatus.xml +1 -1
  13. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pilatus_filestartnum_cb.ds.xml +1 -1
  14. {nxstools-4.35.1 → nxstools-4.37.0/nxstools.egg-info}/PKG-INFO +1 -1
  15. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateDeviceDSDB_test.py +10 -0
  16. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateOnlineCPFS_test.py +6 -4
  17. {nxstools-4.35.1 → nxstools-4.37.0}/.ci/debian10_py2/Dockerfile +0 -0
  18. {nxstools-4.35.1 → nxstools-4.37.0}/.ci/debian10_py3/Dockerfile +0 -0
  19. {nxstools-4.35.1 → nxstools-4.37.0}/.ci/debian11_py3/Dockerfile +0 -0
  20. {nxstools-4.35.1 → nxstools-4.37.0}/.ci/debian12_py3/Dockerfile +0 -0
  21. {nxstools-4.35.1 → nxstools-4.37.0}/.ci/debian9_py2/Dockerfile +0 -0
  22. {nxstools-4.35.1 → nxstools-4.37.0}/.ci/debian9_py3/Dockerfile +0 -0
  23. {nxstools-4.35.1 → nxstools-4.37.0}/.ci/install.sh +0 -0
  24. {nxstools-4.35.1 → nxstools-4.37.0}/.ci/run.sh +0 -0
  25. {nxstools-4.35.1 → nxstools-4.37.0}/.ci/ubuntu18.04_py2/Dockerfile +0 -0
  26. {nxstools-4.35.1 → nxstools-4.37.0}/.ci/ubuntu18.04_py3/Dockerfile +0 -0
  27. {nxstools-4.35.1 → nxstools-4.37.0}/.ci/ubuntu20.04_py3/Dockerfile +0 -0
  28. {nxstools-4.35.1 → nxstools-4.37.0}/.ci/ubuntu22.04_py3/Dockerfile +0 -0
  29. {nxstools-4.35.1 → nxstools-4.37.0}/.ci/ubuntu23.04_py3/Dockerfile +0 -0
  30. {nxstools-4.35.1 → nxstools-4.37.0}/.ci/ubuntu23.10_py3/Dockerfile +0 -0
  31. {nxstools-4.35.1 → nxstools-4.37.0}/.ci/ubuntu24.04_py3/Dockerfile +0 -0
  32. {nxstools-4.35.1 → nxstools-4.37.0}/.ci/ubuntu24.10_py3/Dockerfile +0 -0
  33. {nxstools-4.35.1 → nxstools-4.37.0}/.flake8 +0 -0
  34. {nxstools-4.35.1 → nxstools-4.37.0}/.github/workflows/tests.yml +0 -0
  35. {nxstools-4.35.1 → nxstools-4.37.0}/.gitignore +0 -0
  36. {nxstools-4.35.1 → nxstools-4.37.0}/COPYRIGHT +0 -0
  37. {nxstools-4.35.1 → nxstools-4.37.0}/MANIFEST.in +0 -0
  38. {nxstools-4.35.1 → nxstools-4.37.0}/README.rst +0 -0
  39. {nxstools-4.35.1 → nxstools-4.37.0}/doc/Makefile +0 -0
  40. {nxstools-4.35.1 → nxstools-4.37.0}/doc/conf.py +0 -0
  41. {nxstools-4.35.1 → nxstools-4.37.0}/doc/index.rst +0 -0
  42. {nxstools-4.35.1 → nxstools-4.37.0}/doc/make.bat +0 -0
  43. {nxstools-4.35.1 → nxstools-4.37.0}/doc/nxscollect.rst +0 -0
  44. {nxstools-4.35.1 → nxstools-4.37.0}/doc/nxsconfig.rst +0 -0
  45. {nxstools-4.35.1 → nxstools-4.37.0}/doc/nxscreate.rst +0 -0
  46. {nxstools-4.35.1 → nxstools-4.37.0}/doc/nxsdata.rst +0 -0
  47. {nxstools-4.35.1 → nxstools-4.37.0}/doc/nxsetup.rst +0 -0
  48. {nxstools-4.35.1 → nxstools-4.37.0}/doc/nxsfileinfo.rst +0 -0
  49. {nxstools-4.35.1 → nxstools-4.37.0}/doc/nxstools.rst +0 -0
  50. {nxstools-4.35.1 → nxstools-4.37.0}/man/nxscollect.1 +0 -0
  51. {nxstools-4.35.1 → nxstools-4.37.0}/man/nxsconfig.1 +0 -0
  52. {nxstools-4.35.1 → nxstools-4.37.0}/man/nxscreate.1 +0 -0
  53. {nxstools-4.35.1 → nxstools-4.37.0}/man/nxsdata.1 +0 -0
  54. {nxstools-4.35.1 → nxstools-4.37.0}/man/nxsetup.1 +0 -0
  55. {nxstools-4.35.1 → nxstools-4.37.0}/man/nxsfileinfo.1 +0 -0
  56. {nxstools-4.35.1 → nxstools-4.37.0}/man/nxstools.1 +0 -0
  57. {nxstools-4.35.1 → nxstools-4.37.0}/nxscollect +0 -0
  58. {nxstools-4.35.1 → nxstools-4.37.0}/nxsconfig +0 -0
  59. {nxstools-4.35.1 → nxstools-4.37.0}/nxscreate +0 -0
  60. {nxstools-4.35.1 → nxstools-4.37.0}/nxsdata +0 -0
  61. {nxstools-4.35.1 → nxstools-4.37.0}/nxsetup +0 -0
  62. {nxstools-4.35.1 → nxstools-4.37.0}/nxsfileinfo +0 -0
  63. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/__init__.py +0 -0
  64. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/filenamegenerator.py +0 -0
  65. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/filewriter.py +0 -0
  66. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/h5pywriter.py +0 -0
  67. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/nxsargparser.py +0 -0
  68. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/nxscollect.py +0 -0
  69. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/nxsconfig.py +0 -0
  70. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/nxscreate.py +0 -0
  71. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/nxscreator.py +0 -0
  72. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/nxsdata.py +0 -0
  73. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/nxsdevicetools.py +0 -0
  74. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/nxsetup.py +0 -0
  75. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/nxsfileinfo.py +0 -0
  76. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/nxsfileparser.py +0 -0
  77. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/nxsparser.py +0 -0
  78. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/nxsxml.py +0 -0
  79. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/ontology/__init__.py +0 -0
  80. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/ontology/ontology.json +0 -0
  81. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/pyeval/__init__.py +0 -0
  82. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/pyeval/absorber.py +0 -0
  83. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/pyeval/beamtimeid.py +0 -0
  84. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/pyeval/cobold.py +0 -0
  85. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/pyeval/common.py +0 -0
  86. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/pyeval/dalsa.py +0 -0
  87. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/pyeval/dalsavds.py +0 -0
  88. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/pyeval/datasignal.py +0 -0
  89. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/pyeval/dcm.py +0 -0
  90. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/pyeval/eigerdectris.py +0 -0
  91. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/pyeval/lambdavds.py +0 -0
  92. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/pyeval/limaccd.py +0 -0
  93. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/pyeval/lmbd.py +0 -0
  94. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/pyeval/marccd.py +0 -0
  95. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/pyeval/minipix.py +0 -0
  96. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/pyeval/mssar.py +0 -0
  97. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/pyeval/mythen.py +0 -0
  98. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/pyeval/pco.py +0 -0
  99. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/pyeval/pe.py +0 -0
  100. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/pyeval/pilatus.py +0 -0
  101. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/pyeval/pilc.py +0 -0
  102. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/pyeval/pilcvds.py +0 -0
  103. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/pyeval/qbpm.py +0 -0
  104. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/pyeval/scdataset.py +0 -0
  105. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/pyeval/secop.py +0 -0
  106. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/pyeval/tangovimba.py +0 -0
  107. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/pyeval/timestamp.py +0 -0
  108. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/pyeval/xspress3.py +0 -0
  109. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/redisutils.py +0 -0
  110. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/__init__.py +0 -0
  111. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/absorber.xml +0 -0
  112. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/absorber_foil.ds.xml +0 -0
  113. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/absorber_thickness.ds.xml +0 -0
  114. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/beamstop.xml +0 -0
  115. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/beamtime_filename.ds.xml +0 -0
  116. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/beamtime_id.ds.xml +0 -0
  117. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/beamtimefname.ds.xml +0 -0
  118. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/beamtimefname.xml +0 -0
  119. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/beamtimeid.ds.xml +0 -0
  120. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/beamtimeid.xml +0 -0
  121. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/chcut.xml +0 -0
  122. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/chcut_crystal.ds.xml +0 -0
  123. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/chcut_unitcalibration.ds.xml +0 -0
  124. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/chemical_formula.ds.xml +0 -0
  125. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/client_start_time.ds.xml +0 -0
  126. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/cobold.xml +0 -0
  127. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/coboldhisto.xml +0 -0
  128. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/coboldhisto_timeofflight.ds.xml +0 -0
  129. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/collect2.xml +0 -0
  130. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/collect3.xml +0 -0
  131. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/collect4.xml +0 -0
  132. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/collect5.xml +0 -0
  133. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/collect6.xml +0 -0
  134. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/collection_description.ds.xml +0 -0
  135. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/collection_identifier.ds.xml +0 -0
  136. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/common2_common.ds.xml +0 -0
  137. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/common3_common.ds.xml +0 -0
  138. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/dalsa.xml +0 -0
  139. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/dalsa_external_data.ds.xml +0 -0
  140. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/dalsa_nxdata.ds.xml +0 -0
  141. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/dalsavds.xml +0 -0
  142. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/dalsavds_filestartnum_cb.ds.xml +0 -0
  143. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/dalsavds_nrexposedframes_cb.ds.xml +0 -0
  144. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/dalsavds_nxdata.ds.xml +0 -0
  145. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/dalsavds_triggermode_cb.ds.xml +0 -0
  146. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/dataaxessignal.xml +0 -0
  147. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/datasignal.xml +0 -0
  148. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/dcm.xml +0 -0
  149. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/dcm_crystal.ds.xml +0 -0
  150. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/dcm_reflection.ds.xml +0 -0
  151. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/dcm_unitcalibration.ds.xml +0 -0
  152. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/default.xml +0 -0
  153. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/defaultaxes.ds.xml +0 -0
  154. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/defaultcollection.xml +0 -0
  155. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/defaultinstrument.xml +0 -0
  156. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/defaultsample.xml +0 -0
  157. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/defaultsampleidentifier.xml +0 -0
  158. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/defaultsignal.ds.xml +0 -0
  159. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/description.xml +0 -0
  160. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/descriptiontext.xml +0 -0
  161. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/detectorlive.xml +0 -0
  162. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eiger1m16vds.xml +0 -0
  163. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eiger1m16vds_description_cb.ds.xml +0 -0
  164. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eiger1m16vds_nbimages_cb.ds.xml +0 -0
  165. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eiger1m16vds_stepindex.ds.xml +0 -0
  166. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eiger1m16vds_triggermode_cb.ds.xml +0 -0
  167. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eiger1m32vds.xml +0 -0
  168. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eiger1m32vds_description_cb.ds.xml +0 -0
  169. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eiger1m32vds_nbimages_cb.ds.xml +0 -0
  170. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eiger1m32vds_stepindex.ds.xml +0 -0
  171. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eiger1m32vds_triggermode_cb.ds.xml +0 -0
  172. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eiger4m16vds.xml +0 -0
  173. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eiger4m16vds_description_cb.ds.xml +0 -0
  174. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eiger4m16vds_nbimages_cb.ds.xml +0 -0
  175. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eiger4m16vds_stepindex.ds.xml +0 -0
  176. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eiger4m16vds_triggermode_cb.ds.xml +0 -0
  177. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eiger4m32vds.xml +0 -0
  178. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eiger4m32vds_description_cb.ds.xml +0 -0
  179. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eiger4m32vds_nbimages_cb.ds.xml +0 -0
  180. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eiger4m32vds_stepindex.ds.xml +0 -0
  181. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eiger4m32vds_triggermode_cb.ds.xml +0 -0
  182. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eiger9m16vds.xml +0 -0
  183. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eiger9m16vds_description_cb.ds.xml +0 -0
  184. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eiger9m16vds_nbimages_cb.ds.xml +0 -0
  185. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eiger9m16vds_stepindex.ds.xml +0 -0
  186. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eiger9m16vds_triggermode_cb.ds.xml +0 -0
  187. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eiger9m32vds.xml +0 -0
  188. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eiger9m32vds_description_cb.ds.xml +0 -0
  189. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eiger9m32vds_nbimages_cb.ds.xml +0 -0
  190. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eiger9m32vds_stepindex.ds.xml +0 -0
  191. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eiger9m32vds_triggermode_cb.ds.xml +0 -0
  192. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eigerdectris.xml +0 -0
  193. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eigerdectris_description_cb.ds.xml +0 -0
  194. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eigerdectris_nbimages_cb.ds.xml +0 -0
  195. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eigerdectris_stepindex.ds.xml +0 -0
  196. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eigerdectris_triggermode_cb.ds.xml +0 -0
  197. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eigerdectrismesh.xml +0 -0
  198. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eigerdectrismesh_description_cb.ds.xml +0 -0
  199. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eigerdectrismesh_nbimages_cb.ds.xml +0 -0
  200. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eigerdectrismesh_stepindex.ds.xml +0 -0
  201. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/eigerdectrismesh_triggermode_cb.ds.xml +0 -0
  202. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/empty.xml +0 -0
  203. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/end_time.ds.xml +0 -0
  204. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/experiment_description.ds.xml +0 -0
  205. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/groupsecop.ds.xml +0 -0
  206. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/groupsecop_time.ds.xml +0 -0
  207. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/keithley.xml +0 -0
  208. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/lambda.xml +0 -0
  209. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/lambda2m.xml +0 -0
  210. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/lambda2m_m1_external_data.ds.xml +0 -0
  211. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/lambda2m_m1_nxdata.ds.xml +0 -0
  212. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/lambda2m_m2_external_data.ds.xml +0 -0
  213. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/lambda2m_m2_nxdata.ds.xml +0 -0
  214. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/lambda2m_m3_external_data.ds.xml +0 -0
  215. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/lambda2m_m3_nxdata.ds.xml +0 -0
  216. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/lambda_external_data.ds.xml +0 -0
  217. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/lambda_nxdata.ds.xml +0 -0
  218. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/lambdavds.xml +0 -0
  219. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/lambdavds_description.ds.xml +0 -0
  220. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/lambdavds_framenumbers_cb.ds.xml +0 -0
  221. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/lambdavds_nxdata.ds.xml +0 -0
  222. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/lambdavds_savefilename_cb.ds.xml +0 -0
  223. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/lambdavds_triggermode_cb.ds.xml +0 -0
  224. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/lambdavdsnm.xml +0 -0
  225. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/lambdavdsnm_nxdata.ds.xml +0 -0
  226. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/lambdavdsnm_triggermode_cb.ds.xml +0 -0
  227. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/limaccd_description.ds.xml +0 -0
  228. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/limaccd_postrun.ds.xml +0 -0
  229. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/limaccd_xpixelsize.ds.xml +0 -0
  230. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/limaccd_ypixelsize.ds.xml +0 -0
  231. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/limaccdvds_description.ds.xml +0 -0
  232. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/limaccdvds_postrun.ds.xml +0 -0
  233. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/limaccdvds_xpixelsize.ds.xml +0 -0
  234. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/limaccdvds_ypixelsize.ds.xml +0 -0
  235. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/maia.xml +0 -0
  236. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/maiadimension.xml +0 -0
  237. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/maiaflux.xml +0 -0
  238. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/marccd.xml +0 -0
  239. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/marccd_postrun.ds.xml +0 -0
  240. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/mcaxia.xml +0 -0
  241. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/minipix.xml +0 -0
  242. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/minipix_description.ds.xml +0 -0
  243. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/minipix_framenumbers_cb.ds.xml +0 -0
  244. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/minipix_nxdata.ds.xml +0 -0
  245. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/minipix_savefilename_cb.ds.xml +0 -0
  246. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/minipix_triggermode_cb.ds.xml +0 -0
  247. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/msnsar_env.ds.xml +0 -0
  248. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/mssar_env.ds.xml +0 -0
  249. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/mythen.xml +0 -0
  250. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/mythen2.xml +0 -0
  251. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/mythen_filestartnumber.ds.xml +0 -0
  252. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/mythen_postrun.ds.xml +0 -0
  253. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/nexdatas_configuration.ds.xml +0 -0
  254. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/nexdatas_version.ds.xml +0 -0
  255. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/parametercopymap.xml +0 -0
  256. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pco_description.ds.xml +0 -0
  257. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pco_postrun.ds.xml +0 -0
  258. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/perkinelmerdetector.xml +0 -0
  259. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/perkinelmerdetector_description.ds.xml +0 -0
  260. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/perkinelmerdetector_fileindex_cb.ds.xml +0 -0
  261. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/perkinelmerdetector_postrun.ds.xml +0 -0
  262. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pilatus100k_description.ds.xml +0 -0
  263. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pilatus1m_description.ds.xml +0 -0
  264. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pilatus2m_description.ds.xml +0 -0
  265. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pilatus300k_description.ds.xml +0 -0
  266. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pilatus6m_description.ds.xml +0 -0
  267. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pilatus_description.ds.xml +0 -0
  268. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pilatus_mxparameters_cb.ds.xml +0 -0
  269. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pilatus_postrun.ds.xml +0 -0
  270. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pilc.xml +0 -0
  271. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pilc_triggermode_cb.ds.xml +0 -0
  272. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pilcslavevds.xml +0 -0
  273. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pilcslavevds_exposuretimemap.ds.xml +0 -0
  274. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pilcslavevds_value1map.ds.xml +0 -0
  275. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pilcslavevds_value2map.ds.xml +0 -0
  276. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pilcslavevds_value3map.ds.xml +0 -0
  277. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pilcslavevds_value4map.ds.xml +0 -0
  278. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pilcslavevds_value5map.ds.xml +0 -0
  279. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pilctimeid.xml +0 -0
  280. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pilctimeid_triggermode_cb.ds.xml +0 -0
  281. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pilcvds.xml +0 -0
  282. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pilcvds4.xml +0 -0
  283. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pilcvds_attrmap.ds.xml +0 -0
  284. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pilcvds_countermap.ds.xml +0 -0
  285. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pilcvds_encoder1map.ds.xml +0 -0
  286. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pilcvds_encoder2map.ds.xml +0 -0
  287. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pilcvds_encoder3map.ds.xml +0 -0
  288. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pilcvds_encoder4map.ds.xml +0 -0
  289. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pilcvds_encoder5map.ds.xml +0 -0
  290. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pinhole.xml +0 -0
  291. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/pointdet.xml +0 -0
  292. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/prodigyremote.xml +0 -0
  293. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/qbpm.xml +0 -0
  294. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/qbpm_foil.ds.xml +0 -0
  295. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/sample_description.ds.xml +0 -0
  296. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/sample_env_links.ds.xml +0 -0
  297. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/sample_identifier.ds.xml +0 -0
  298. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/sample_log_links.ds.xml +0 -0
  299. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/sample_name.ds.xml +0 -0
  300. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/sample_nxdata.ds.xml +0 -0
  301. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/sampledescription.xml +0 -0
  302. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/sampledescriptiontext.xml +0 -0
  303. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/sampleenv_nxdata.ds.xml +0 -0
  304. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/samplehkl.xml +0 -0
  305. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/sardanaenvironment.ds.xml +0 -0
  306. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/secop.ds.xml +0 -0
  307. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/secop_time.ds.xml +0 -0
  308. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/signal_axes.ds.xml +0 -0
  309. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/signal_name.ds.xml +0 -0
  310. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/signalname.ds.xml +0 -0
  311. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/singlesecop.ds.xml +0 -0
  312. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/singlesecop_time.ds.xml +0 -0
  313. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/slit.xml +0 -0
  314. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/source.xml +0 -0
  315. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/start_time.ds.xml +0 -0
  316. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/start_timestamp.ds.xml +0 -0
  317. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/starttime.ds.xml +0 -0
  318. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/starttime.xml +0 -0
  319. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/tango.ds.xml +0 -0
  320. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/tangovimba.xml +0 -0
  321. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/tangovimba_external_data.ds.xml +0 -0
  322. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/tangovimba_nxdata.ds.xml +0 -0
  323. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/title.ds.xml +0 -0
  324. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/undulator.xml +0 -0
  325. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/xspress3.xml +0 -0
  326. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools/xmltemplates/xspress3_triggermode_cb.ds.xml +0 -0
  327. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools.egg-info/SOURCES.txt +0 -0
  328. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools.egg-info/dependency_links.txt +0 -0
  329. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools.egg-info/not-zip-safe +0 -0
  330. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools.egg-info/requires.txt +0 -0
  331. {nxstools-4.35.1 → nxstools-4.37.0}/nxstools.egg-info/top_level.txt +0 -0
  332. {nxstools-4.35.1 → nxstools-4.37.0}/setup.cfg +0 -0
  333. {nxstools-4.35.1 → nxstools-4.37.0}/setup.py +0 -0
  334. {nxstools-4.35.1 → nxstools-4.37.0}/test/FileWriterH5CppH5PY_test.py +0 -0
  335. {nxstools-4.35.1 → nxstools-4.37.0}/test/FileWriterH5Cpp_test.py +0 -0
  336. {nxstools-4.35.1 → nxstools-4.37.0}/test/FileWriterH5PY_test.py +0 -0
  337. {nxstools-4.35.1 → nxstools-4.37.0}/test/H5CppRedisWriter_test.py +0 -0
  338. {nxstools-4.35.1 → nxstools-4.37.0}/test/H5CppWriter_test.py +0 -0
  339. {nxstools-4.35.1 → nxstools-4.37.0}/test/H5PYWriter_test.py +0 -0
  340. {nxstools-4.35.1 → nxstools-4.37.0}/test/MacroServer2 +0 -0
  341. {nxstools-4.35.1 → nxstools-4.37.0}/test/MacroServer3 +0 -0
  342. {nxstools-4.35.1 → nxstools-4.37.0}/test/MacroServerSetUp.py +0 -0
  343. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCollectH5Cpp_test.py +0 -0
  344. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCollectH5PY_test.py +0 -0
  345. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCollect_test.py +0 -0
  346. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSConfig_test.py +0 -0
  347. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateClientDSDB2_test.py +0 -0
  348. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateClientDSDBR2_test.py +0 -0
  349. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateClientDSDBR_test.py +0 -0
  350. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateClientDSDB_test.py +0 -0
  351. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateClientDSFS2_test.py +0 -0
  352. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateClientDSFS3_test.py +0 -0
  353. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateClientDSFS_test.py +0 -0
  354. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateCompDB2_test.py +0 -0
  355. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateCompDBR2_test.py +0 -0
  356. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateCompDBR_test.py +0 -0
  357. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateCompDB_test.py +0 -0
  358. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateCompFS2_test.py +0 -0
  359. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateCompFS3_test.py +0 -0
  360. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateCompFS_test.py +0 -0
  361. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateCompare_test.py +0 -0
  362. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateDeviceDSDB2_test.py +0 -0
  363. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateDeviceDSDBR2_test.py +0 -0
  364. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateDeviceDSDBR_test.py +0 -0
  365. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateDeviceDSFS2_test.py +0 -0
  366. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateDeviceDSFS3_test.py +0 -0
  367. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateDeviceDSFS4_test.py +0 -0
  368. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateDeviceDSFS_test.py +0 -0
  369. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateOnlineCPDB2_test.py +0 -0
  370. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateOnlineCPDBR2_test.py +0 -0
  371. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateOnlineCPDBR_test.py +0 -0
  372. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateOnlineCPDB_test.py +0 -0
  373. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateOnlineCPFS2_test.py +0 -0
  374. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateOnlineCPFS3_test.py +0 -0
  375. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateOnlineDSDB2_test.py +0 -0
  376. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateOnlineDSDBE2_test.py +0 -0
  377. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateOnlineDSDBE_test.py +0 -0
  378. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateOnlineDSDBR2_test.py +0 -0
  379. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateOnlineDSDBR_test.py +0 -0
  380. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateOnlineDSDB_test.py +0 -0
  381. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateOnlineDSFS2_test.py +0 -0
  382. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateOnlineDSFS3_test.py +0 -0
  383. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateOnlineDSFS_test.py +0 -0
  384. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreatePoolDSDB2_test.py +0 -0
  385. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreatePoolDSDBR2_test.py +0 -0
  386. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreatePoolDSDBR_test.py +0 -0
  387. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreatePoolDSDB_test.py +0 -0
  388. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreatePoolDSFS2_test.py +0 -0
  389. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreatePoolDSFS3_test.py +0 -0
  390. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreatePoolDSFS_test.py +0 -0
  391. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreatePyEvalH5Cpp_test.py +0 -0
  392. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreatePyEvalH5PY_test.py +0 -0
  393. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateSECoPCPDB_test.py +0 -0
  394. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateSECoPCPFS_test.py +0 -0
  395. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateStdCompDB2_test.py +0 -0
  396. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateStdCompDBE2_test.py +0 -0
  397. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateStdCompDBE_test.py +0 -0
  398. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateStdCompDBR2_test.py +0 -0
  399. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateStdCompDBR_test.py +0 -0
  400. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateStdCompDB_test.py +0 -0
  401. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateStdCompFS2_test.py +0 -0
  402. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateStdCompFS3_test.py +0 -0
  403. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateStdCompFS_test.py +0 -0
  404. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateTangoDSDB2_test.py +0 -0
  405. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateTangoDSDBR2_test.py +0 -0
  406. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateTangoDSDBR_test.py +0 -0
  407. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateTangoDSDB_test.py +0 -0
  408. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateTangoDSFS2_test.py +0 -0
  409. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateTangoDSFS3_test.py +0 -0
  410. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreateTangoDSFS_test.py +0 -0
  411. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSCreate_test.py +0 -0
  412. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSData_test.py +0 -0
  413. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSFileInfoH5Cpp_test.py +0 -0
  414. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSFileInfoH5PY_test.py +0 -0
  415. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSFileInfo_test.py +0 -0
  416. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSTools_test.py +0 -0
  417. {nxstools-4.35.1 → nxstools-4.37.0}/test/NXSetUp_test.py +0 -0
  418. {nxstools-4.35.1 → nxstools-4.37.0}/test/ServerSetUp.py +0 -0
  419. {nxstools-4.35.1 → nxstools-4.37.0}/test/TestPool.py +0 -0
  420. {nxstools-4.35.1 → nxstools-4.37.0}/test/TestPoolSetUp.py +0 -0
  421. {nxstools-4.35.1 → nxstools-4.37.0}/test/TestServer2 +0 -0
  422. {nxstools-4.35.1 → nxstools-4.37.0}/test/TestServer3 +0 -0
  423. {nxstools-4.35.1 → nxstools-4.37.0}/test/TestServerSetUp.py +0 -0
  424. {nxstools-4.35.1 → nxstools-4.37.0}/test/WriterSetUp.py +0 -0
  425. {nxstools-4.35.1 → nxstools-4.37.0}/test/__init__.py +0 -0
  426. {nxstools-4.35.1 → nxstools-4.37.0}/test/__main__.py +0 -0
  427. {nxstools-4.35.1 → nxstools-4.37.0}/test/checks.py +0 -0
  428. {nxstools-4.35.1 → nxstools-4.37.0}/test/files/empty.json +0 -0
  429. {nxstools-4.35.1 → nxstools-4.37.0}/test/files/empty1.json +0 -0
  430. {nxstools-4.35.1 → nxstools-4.37.0}/test/files/metadata-group-map.lst +0 -0
  431. {nxstools-4.35.1 → nxstools-4.37.0}/test/files/metadata-group-map2.lst +0 -0
  432. {nxstools-4.35.1 → nxstools-4.37.0}/test/files/mymeta2_00011.fio +0 -0
  433. {nxstools-4.35.1 → nxstools-4.37.0}/test/files/mys0_13_1_00190.fio +0 -0
  434. {nxstools-4.35.1 → nxstools-4.37.0}/test/files/myscan_00034.scan.json +0 -0
  435. {nxstools-4.35.1 → nxstools-4.37.0}/test/files/myscan_00034b.scan.json +0 -0
  436. {nxstools-4.35.1 → nxstools-4.37.0}/test/files/myscan_00035.scan.json +0 -0
  437. {nxstools-4.35.1 → nxstools-4.37.0}/test/files/myuni.xml +0 -0
  438. {nxstools-4.35.1 → nxstools-4.37.0}/test/files/myuni2.xml +0 -0
  439. {nxstools-4.35.1 → nxstools-4.37.0}/test/files/myunidy.xml +0 -0
  440. {nxstools-4.35.1 → nxstools-4.37.0}/test/files/myunidy2.xml +0 -0
  441. {nxstools-4.35.1 → nxstools-4.37.0}/test/files/secop.conf +0 -0
  442. {nxstools-4.35.1 → nxstools-4.37.0}/test/files/secop2.conf +0 -0
  443. {nxstools-4.35.1 → nxstools-4.37.0}/test/files/test_file.cbf +0 -0
  444. {nxstools-4.35.1 → nxstools-4.37.0}/test/files/test_file.tif +0 -0
  445. {nxstools-4.35.1 → nxstools-4.37.0}/test/files/test_file0.tif +0 -0
  446. {nxstools-4.35.1 → nxstools-4.37.0}/test/files/test_file1.tif +0 -0
  447. {nxstools-4.35.1 → nxstools-4.37.0}/test/files/test_file2.tif +0 -0
  448. {nxstools-4.35.1 → nxstools-4.37.0}/test/files/test_file3.tif +0 -0
  449. {nxstools-4.35.1 → nxstools-4.37.0}/test/files/test_file4.tif +0 -0
  450. {nxstools-4.35.1 → nxstools-4.37.0}/test/files/test_file5.tif +0 -0
  451. {nxstools-4.35.1 → nxstools-4.37.0}/test/files/tn.png +0 -0
  452. {nxstools-4.35.1 → nxstools-4.37.0}/test/main.py +0 -0
  453. {nxstools-4.35.1 → nxstools-4.37.0}/test/nxsextrasp00/__init__.py +0 -0
  454. {nxstools-4.35.1 → nxstools-4.37.0}/test/nxsextrasp00/collect4.xml +0 -0
  455. {nxstools-4.35.1 → nxstools-4.37.0}/test/nxsextrasp00/common4_common.ds.xml +0 -0
  456. {nxstools-4.35.1 → nxstools-4.37.0}/test/nxsextrasp00/mymca.xml +0 -0
  457. {nxstools-4.35.1 → nxstools-4.37.0}/tests/simpleXMLAScan.py +0 -0
  458. {nxstools-4.35.1 → nxstools-4.37.0}/tests/simpleXMLCScan.py +0 -0
  459. {nxstools-4.35.1 → nxstools-4.37.0}/tests/simpleXMLScan.py +0 -0
  460. {nxstools-4.35.1 → nxstools-4.37.0}/tests/testNXSxml.py +0 -0
  461. {nxstools-4.35.1 → nxstools-4.37.0}/tests/testXMLCreator.py +0 -0
  462. {nxstools-4.35.1 → nxstools-4.37.0}/tests/testXMLtrigger.py +0 -0
@@ -1,3 +1,11 @@
1
+ 2026-01-22 Jan Kotanski <jankotan@gmail.com>
2
+ * ensure filestartnum is int (#850)
3
+ * tagged as v4.37.0
4
+
5
+ 2025-12-11 Jan Kotanski <jankotan@gmail.com>
6
+ * add caching of attribute values for h5redis writer (#848)
7
+ * tagged as v4.36.0
8
+
1
9
  2025-12-11 Jan Kotanski <jankotan@gmail.com>
2
10
  * add prodigyremote component (#845)
3
11
  * tagged as v4.35.1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nxstools
3
- Version: 4.35.1
3
+ Version: 4.37.0
4
4
  Summary: Configuration tools for NeXDaTaS Tango Servers
5
5
  Home-page: http://github.com/nexdatas/nxstools
6
6
  Author: Jan Kotanski, Eugen Wintersberger , Halil Pasic
@@ -1196,7 +1196,7 @@ class H5CppField(filewriter.FTField):
1196
1196
  v = v[0, :, :]
1197
1197
  shape = v.shape
1198
1198
  if len(shape) == 2 and shape[1] == 1:
1199
- # v.reshape([shape[0]])
1199
+ # v.reshape([shape[0]]]
1200
1200
  v = v[0, :]
1201
1201
  shape = v.shape
1202
1202
  if len(shape) == 2 and shape[0] == 1:
@@ -1941,12 +1941,12 @@ class H5CppAttribute(filewriter.FTAttribute):
1941
1941
  (hasattr(o, "__len__") and t == slice(0, len(o), None)):
1942
1942
  if self.dtype in ['string', b'string']:
1943
1943
  if isinstance(o, str):
1944
- self._h5object.write(unicode(o))
1944
+ self.write(unicode(o))
1945
1945
  else:
1946
1946
  dtype = npunicode
1947
- self._h5object.write(np.array(o, dtype=dtype))
1947
+ self.write(np.array(o, dtype=dtype))
1948
1948
  else:
1949
- self._h5object.write(np.array(o, dtype=self.dtype))
1949
+ self.write(np.array(o, dtype=self.dtype))
1950
1950
  elif isinstance(t, slice):
1951
1951
  var = self._h5object.read()
1952
1952
  if self.dtype not in ['string', b'string']:
@@ -1956,11 +1956,11 @@ class H5CppAttribute(filewriter.FTAttribute):
1956
1956
  var[t] = np.array(o, dtype=dtype)
1957
1957
  var = var.astype(dtype)
1958
1958
  try:
1959
- self._h5object.write(var)
1959
+ self.write(var)
1960
1960
  except Exception:
1961
1961
  dtype = npunicode
1962
1962
  tvar = np.array(var, dtype=dtype)
1963
- self._h5object[0][self.name] = tvar
1963
+ self.write(tvar)
1964
1964
 
1965
1965
  elif isinstance(t, tuple):
1966
1966
  var = self._h5object.read()
@@ -1980,12 +1980,12 @@ class H5CppAttribute(filewriter.FTAttribute):
1980
1980
  else:
1981
1981
  var[t] = np.array(o, dtype=self.dtype).tolist()
1982
1982
  var = var.astype(dtype)
1983
- self._h5object.write(var)
1983
+ self.write(var)
1984
1984
  else:
1985
1985
  if isinstance(o, str) or isinstance(o, unicode):
1986
- self._h5object.write(unicode(o))
1986
+ self.write(unicode(o))
1987
1987
  else:
1988
- self._h5object.write(np.array(o, dtype=self.dtype))
1988
+ self.write(np.array(o, dtype=self.dtype))
1989
1989
 
1990
1990
  def __getitem__(self, t):
1991
1991
  """ read attribute value
@@ -1010,6 +1010,32 @@ class H5RedisGroup(H5Group):
1010
1010
  raise Exception("Undefined constructor parameters")
1011
1011
  H5Group.__init__(self, h5object, tparent)
1012
1012
  self.__nxclass = nxclass
1013
+ self.__avcache_lock = threading.Lock()
1014
+ self.__avcache = {}
1015
+
1016
+ def set_attr_value(self, name, value):
1017
+ """ set device parameters
1018
+
1019
+ :param name: attribute name
1020
+ :type name: :obj:`str`
1021
+ :param value: attribute value
1022
+ :type value: :obj:`any`
1023
+ """
1024
+ with self.__avcache_lock:
1025
+ self.__avcache[name] = value
1026
+
1027
+ def get_attr_value(self, name):
1028
+ """ get scan info parameters
1029
+
1030
+ :param name: attribute name
1031
+ :type name: :obj:`str`
1032
+ :returns value: attribute value
1033
+ :rtype value: :obj:`any`
1034
+ """
1035
+ with self.__avcache_lock:
1036
+ # print(self.__avcache)
1037
+ vl = self.__avcache.get(name, None)
1038
+ return vl
1013
1039
 
1014
1040
  def open(self, name):
1015
1041
  """ open a file tree element
@@ -1235,10 +1261,14 @@ class H5RedisGroup(H5Group):
1235
1261
  self.set_insname(n)
1236
1262
  if REDIS and nxclass in ["NXentry", u'NXentry']:
1237
1263
  self.reset_scaninfo(n)
1238
- return H5RedisGroup(
1264
+ gr = H5RedisGroup(
1239
1265
  h5imp=H5Group.create_group(self, n, nxclass),
1240
1266
  nxclass=nxclass)
1241
1267
 
1268
+ # print("CREATE", "NX_class", nxclass)
1269
+ self.set_attr_value("NX_class", nxclass)
1270
+ return gr
1271
+
1242
1272
  def create_virtual_field(self, name, layout, fillvalue=0):
1243
1273
  """ creates a virtual filed tres element
1244
1274
 
@@ -1354,6 +1384,43 @@ class H5RedisField(H5Field):
1354
1384
  self.__jstream = None
1355
1385
  self.__rstream = None
1356
1386
  self.__rcounter = 0
1387
+ self.__avcache_lock = threading.Lock()
1388
+ self.__avcache = {}
1389
+
1390
+ def set_attr_value(self, name, value):
1391
+ """ set device parameters
1392
+
1393
+ :param name: attribute name
1394
+ :type name: :obj:`str`
1395
+ :param value: attribute value
1396
+ :type value: :obj:`any`
1397
+ """
1398
+ with self.__avcache_lock:
1399
+ self.__avcache[name] = value
1400
+
1401
+ def get_attr_value(self, name):
1402
+ """ get scan info parameters
1403
+
1404
+ :param name: attribute name
1405
+ :type name: :obj:`str`
1406
+ :returns value: attribute value
1407
+ :rtype value: :obj:`any`
1408
+ """
1409
+ with self.__avcache_lock:
1410
+ vl = self.__avcache.get(name, None)
1411
+ return vl
1412
+
1413
+ def get_attrs(self):
1414
+ """ get scan info parameters
1415
+
1416
+ :param name: attribute name
1417
+ :type name: :obj:`str`
1418
+ :returns value: attribute value
1419
+ :rtype value: :obj:`any`
1420
+ """
1421
+ with self.__avcache_lock:
1422
+ vl = dict(self.__avcache)
1423
+ return vl
1357
1424
 
1358
1425
  def append_stream(self, name, stream):
1359
1426
  """ scan object
@@ -1511,7 +1578,7 @@ class H5RedisField(H5Field):
1511
1578
  h5imp=super(H5RedisField, self).attributes)
1512
1579
 
1513
1580
  def __set_step_channel_info(self, dsname, units, shape, strategy="STEP",
1514
- o=None):
1581
+ o=None, av=None):
1515
1582
  """ set step channel info
1516
1583
 
1517
1584
  :param dsname: datasource name
@@ -1525,6 +1592,7 @@ class H5RedisField(H5Field):
1525
1592
  :param o: object value to write
1526
1593
  :type o: :obj:`any`
1527
1594
  """
1595
+ av = av or {}
1528
1596
  attrs = self.attributes
1529
1597
  sds = {
1530
1598
  "name": dsname,
@@ -1541,8 +1609,8 @@ class H5RedisField(H5Field):
1541
1609
  anames = [at.name for at in attrs]
1542
1610
  for key, vl in attrdesc.items():
1543
1611
  if vl[0] in anames:
1544
- sds[key] = vl[1](
1545
- filewriter.first(attrs[vl[0]].read()))
1612
+ avl = av[vl[0]] if vl[0] in av.keys() else attrs[vl[0]].read()
1613
+ sds[key] = vl[1](filewriter.first(avl))
1546
1614
  sds["nexus_path"] = self.path
1547
1615
  self.append_scaninfo(sds, ["datadesc", dsname])
1548
1616
  try:
@@ -1665,7 +1733,7 @@ class H5RedisField(H5Field):
1665
1733
  else:
1666
1734
  raise
1667
1735
 
1668
- def __set_init_channel_info(self, dsname, units, shape, strategy, o):
1736
+ def __set_init_channel_info(self, dsname, units, shape, strategy, o, av):
1669
1737
  """ set init channel info
1670
1738
 
1671
1739
  :param dsname: datasource name
@@ -1691,8 +1759,8 @@ class H5RedisField(H5Field):
1691
1759
  anames = [at.name for at in attrs]
1692
1760
  for key, vl in attrdesc.items():
1693
1761
  if vl[0] in anames:
1694
- ids[key] = vl[1](
1695
- filewriter.first(attrs[vl[0]].read()))
1762
+ avl = av[vl[0]] if vl[0] in av.keys() else attrs[vl[0]].read()
1763
+ ids[key] = vl[1](filewriter.first(avl))
1696
1764
  ids["nexus_path"] = self.path
1697
1765
  pars = (self.get_scaninfo(["snapshot"]) or {}).keys()
1698
1766
  dsn = dsname
@@ -1710,11 +1778,12 @@ class H5RedisField(H5Field):
1710
1778
  np = str(filewriter.first(attrs[vl[0]].read()))
1711
1779
  if vl[2] or np:
1712
1780
  self.set_scaninfo(np, [key])
1713
- if isinstance(np, str):
1781
+ # print(key, np)
1782
+ if key == "title" and isinstance(np, str):
1714
1783
  macro_name = np.split(" ")[0]
1715
- for mn, plot in titleplots.items():
1716
- if mn in macro_name:
1717
- self.append_scaninfo(plot, ["plots"])
1784
+ for mn, plot in titleplots.items():
1785
+ if mn in macro_name:
1786
+ self.append_scaninfo(plot, ["plots"])
1718
1787
 
1719
1788
  except Exception as e:
1720
1789
  print(str(e))
@@ -1726,18 +1795,31 @@ class H5RedisField(H5Field):
1726
1795
  :param o: object value to write
1727
1796
  :type o: :obj:`any`
1728
1797
  """
1729
-
1730
1798
  attrs = self.attributes
1731
- strategy = filewriter.first(attrs["nexdatas_strategy"].read())
1799
+ av = self.get_attrs()
1800
+ strategy = av.get("nexdatas_strategy", None)
1801
+ if strategy is None:
1802
+ strategy = attrs["nexdatas_strategy"].read()
1803
+ strategy = filewriter.first(strategy)
1732
1804
  dsname = "%s_%s" % (self._tparent.name, self.name)
1733
1805
  dsnm = ""
1734
- if "nexdatas_source" in attrs.names():
1735
- dsnm = getdsname(
1736
- filewriter.first(attrs["nexdatas_source"].read()))
1806
+ dsnm = av.get("nexdatas_source", None)
1807
+ if dsnm is None and "nexdatas_source" in attrs.names():
1808
+ # dsnm = self.get_attr_value("nexdatas_source")
1809
+ # if dsnm is None:
1810
+ dsnm = attrs["nexdatas_source"].read()
1811
+ if dsnm is not None:
1812
+ dsnm = getdsname(filewriter.first(dsnm))
1737
1813
  dsname = dsnm
1738
- units = ""
1739
- if "units" in attrs.names():
1740
- units = filewriter.first(attrs["units"].read())
1814
+ units = av.get("units", None)
1815
+ if units is None:
1816
+ if "units" in attrs.names():
1817
+ units = attrs["units"].read()
1818
+ print("READ UNIT", units)
1819
+ if units is not None:
1820
+ units = filewriter.first(units)
1821
+ else:
1822
+ units = ""
1741
1823
  self.__dsname = dsname
1742
1824
  shape = []
1743
1825
  if hasattr(o, "shape"):
@@ -1749,9 +1831,10 @@ class H5RedisField(H5Field):
1749
1831
  if strategy in ["STEP"] and dsnm:
1750
1832
  # skip 2D images
1751
1833
  if not shape or len(shape) < 2 or FileStream is not None:
1752
- self.__set_step_channel_info(dsname, units, shape, strategy, o)
1834
+ self.__set_step_channel_info(
1835
+ dsname, units, shape, strategy, o, av)
1753
1836
  else:
1754
- self.__set_init_channel_info(dsname, units, shape, strategy, o)
1837
+ self.__set_init_channel_info(dsname, units, shape, strategy, o, av)
1755
1838
 
1756
1839
  def __setitem__(self, t, o):
1757
1840
  """ set value
@@ -1799,6 +1882,31 @@ class H5RedisLink(H5Link):
1799
1882
  if h5object is None:
1800
1883
  raise Exception("Undefined constructor parameters")
1801
1884
  H5Link.__init__(self, h5object, tparent)
1885
+ self.__avcache_lock = threading.Lock()
1886
+ self.__avcache = {}
1887
+
1888
+ def set_attr_value(self, name, value):
1889
+ """ set device parameters
1890
+
1891
+ :param name: attribute name
1892
+ :type name: :obj:`str`
1893
+ :param value: attribute value
1894
+ :type value: :obj:`any`
1895
+ """
1896
+ with self.__avcache_lock:
1897
+ self.__avcache[name] = value
1898
+
1899
+ def get_attr_value(self, name):
1900
+ """ get scan info parameters
1901
+
1902
+ :param name: attribute name
1903
+ :type name: :obj:`str`
1904
+ :returns value: attribute value
1905
+ :rtype value: :obj:`any`
1906
+ """
1907
+ with self.__avcache_lock:
1908
+ vl = self.__avcache.get(name, None)
1909
+ return vl
1802
1910
 
1803
1911
 
1804
1912
  class H5RedisDataFilter(H5DataFilter):
@@ -2096,6 +2204,8 @@ class H5RedisAttributeManager(H5AttributeManager):
2096
2204
  :returns: attribute object
2097
2205
  :rtype: :class:`H5RedisAttribute`
2098
2206
  """
2207
+ if overwrite:
2208
+ self.set_attr_value(name, None)
2099
2209
  return H5RedisAttribute(
2100
2210
  h5imp=H5AttributeManager.create(
2101
2211
  self, name, dtype, shape, overwrite))
@@ -2111,6 +2221,28 @@ class H5RedisAttributeManager(H5AttributeManager):
2111
2221
  return H5RedisAttribute(
2112
2222
  h5imp=H5AttributeManager.__getitem__(self, name))
2113
2223
 
2224
+ def set_attr_value(self, name, value):
2225
+ """ set device parameters
2226
+
2227
+ :param name: attribute name
2228
+ :type name: :obj:`str`
2229
+ :param value: attribute value
2230
+ :type value: :obj:`any`
2231
+ """
2232
+ if hasattr(self._tparent, "set_attr_value"):
2233
+ return self._tparent.set_attr_value(name, value)
2234
+
2235
+ def get_attr_value(self, name):
2236
+ """ get scan info parameters
2237
+
2238
+ :param name: attribute name
2239
+ :type name: :obj:`str`
2240
+ :returns value: attribute value
2241
+ :rtype value: :obj:`any`
2242
+ """
2243
+ if hasattr(self._tparent, "get_attr_value"):
2244
+ return self._tparent.get_attr_value(name)
2245
+
2114
2246
 
2115
2247
  class H5RedisAttribute(H5Attribute):
2116
2248
 
@@ -2133,3 +2265,65 @@ class H5RedisAttribute(H5Attribute):
2133
2265
  if h5object is None:
2134
2266
  raise Exception("Undefined constructor parameters")
2135
2267
  H5Attribute.__init__(self, h5object, tparent)
2268
+
2269
+ def read(self):
2270
+ """ read attribute value
2271
+
2272
+ :returns: python object
2273
+ :rtype: :obj:`any`
2274
+ """
2275
+ vl = None
2276
+ if H5CPP:
2277
+ vl = self.get_attr_value(self.name)
2278
+ # print("READ", self.name, vl)
2279
+ if vl is None:
2280
+ # print("READ", self.name, vl)
2281
+ vl = self._h5object.read()
2282
+ # print("READ2", self.name, vl)
2283
+ if vl is not None:
2284
+ self.set_attr_value(self.name, vl)
2285
+ if self.dtype in ['string', b'string']:
2286
+ try:
2287
+ vl = vl.decode('UTF-8')
2288
+ except Exception:
2289
+ pass
2290
+ return vl
2291
+
2292
+ def write(self, o):
2293
+ """ write attribute value
2294
+
2295
+ :param o: python object
2296
+ :type o: :obj:`any`
2297
+ """
2298
+ self._h5object.write(o)
2299
+ vl = o
2300
+ if vl is not None and H5CPP:
2301
+ if self.dtype in ['string', b'string']:
2302
+ try:
2303
+ vl = vl.decode('UTF-8')
2304
+ except Exception:
2305
+ pass
2306
+ # print("WRITE", self.name, vl)
2307
+ self.set_attr_value(self.name, vl)
2308
+
2309
+ def set_attr_value(self, name, value):
2310
+ """ set device parameters
2311
+
2312
+ :param name: attribute name
2313
+ :type name: :obj:`str`
2314
+ :param value: attribute value
2315
+ :type value: :obj:`any`
2316
+ """
2317
+ if hasattr(self._tparent, "set_attr_value"):
2318
+ return self._tparent.set_attr_value(name, value)
2319
+
2320
+ def get_attr_value(self, name):
2321
+ """ get scan info parameters
2322
+
2323
+ :param name: attribute name
2324
+ :type name: :obj:`str`
2325
+ :returns value: attribute value
2326
+ :rtype value: :obj:`any`
2327
+ """
2328
+ if hasattr(self._tparent, "get_attr_value"):
2329
+ return self._tparent.get_attr_value(name)
@@ -19,4 +19,4 @@
19
19
  """ NXS tools release version"""
20
20
 
21
21
  #: (:obj:`str`) package version
22
- __version__ = "4.35.1"
22
+ __version__ = "4.37.0"
@@ -46,7 +46,7 @@
46
46
  <field type="NX_CHAR" name="last_image_saved">
47
47
  <strategy mode="FINAL"/>$datasources.$(name)_last_image_saved</field>
48
48
  <field type="NX_UINT" name="signal">1</field>
49
- <field type="NX_CHAR" name="file_index_num">
49
+ <field type="NX_INT64" name="file_index_num">
50
50
  <strategy mode="STEP"/>$datasources.$(name)_filestartnum_cb</field>
51
51
  <field type="NX_CHAR" name="image_type">
52
52
  <strategy mode="FINAL"/>$datasources.$(name)_image_type</field>
@@ -3,7 +3,7 @@
3
3
  <datasource type="PYEVAL" name="$(name)_filestartnum_cb">
4
4
  <result name="result">
5
5
  from nxstools.pyeval import common
6
- ds.result = common.filestartnum_cb(commonblock, ds.$(name)_saving_next_number, ds.$(name)_acq_nb_frames, "$(name)_saving_next_number")
6
+ ds.result = common.filestartnum_cb(commonblock, int(ds.$(name)_saving_next_number or 0), ds.$(name)_acq_nb_frames, "$(name)_saving_next_number")
7
7
  </result>
8
8
  $datasources.$(name)_saving_next_number
9
9
  $datasources.$(name)_acq_nb_frames</datasource>
@@ -46,7 +46,7 @@
46
46
  <field type="NX_CHAR" name="last_image_saved">
47
47
  <strategy mode="FINAL"/>$datasources.$(name)_last_image_saved</field>
48
48
  <field type="NX_UINT" name="signal">1</field>
49
- <field type="NX_CHAR" name="next_file_index_num">
49
+ <field type="NX_INT64" name="next_file_index_num">
50
50
  <strategy mode="STEP"/>$datasources.$(name)_filestartnum_cb</field>
51
51
  <field type="NX_CHAR" name="image_type">
52
52
  <strategy mode="FINAL"/>$datasources.$(name)_image_type</field>
@@ -3,7 +3,7 @@
3
3
  <datasource type="PYEVAL" name="$(name)_filestartnum_cb">
4
4
  <result name="result">
5
5
  from nxstools.pyeval import common
6
- ds.result = common.filestartnum_cb(commonblock, ds.$(name)_saving_next_number, 0, "$(name)_saving_next_number")
6
+ ds.result = common.filestartnum_cb(commonblock, int(ds.$(name)_saving_next_number or 0), 0, "$(name)_saving_next_number")
7
7
  </result>
8
8
  $datasources.$(name)_saving_next_number</datasource>
9
9
  </definition>
@@ -50,7 +50,7 @@
50
50
  <strategy mode="FINAL"/>$datasources.$(name)_filepostfix</field>
51
51
  <field type="NX_CHAR" name="file_prefix">
52
52
  <strategy mode="FINAL"/>$datasources.$(name)_fileprefix</field>
53
- <field type="NX_CHAR" name="file_last_num">
53
+ <field type="NX_INT64" name="file_last_num">
54
54
  <strategy mode="STEP"/>$datasources.$(name)_filestartnum_cb</field>
55
55
  <field units="Celsius" type="NX_INT16" name="cooling_temp_set">
56
56
  <strategy mode="FINAL"/>$datasources.$(name)_coolingtempset</field>
@@ -3,7 +3,7 @@
3
3
  <datasource type="PYEVAL" name="$(name)_filestartnum_cb">
4
4
  <result name="result">
5
5
  from nxstools.pyeval import common
6
- ds.result = common.filestartnum_cb(commonblock, ds.$(name)_filestartnum, ds.$(name)_nbframes, "$(name)_filestartnum")
6
+ ds.result = common.filestartnum_cb(commonblock, int(ds.$(name)_filestartnum or 0), ds.$(name)_nbframes, "$(name)_filestartnum")
7
7
  </result>
8
8
  $datasources.$(name)_filestartnum
9
9
  $datasources.$(name)_nbframes</datasource>
@@ -30,7 +30,7 @@
30
30
  <field type="NX_CHAR" name="last_image_taken">
31
31
  <strategy mode="FINAL"/>$datasources.$(name)_lastimagetaken</field>
32
32
  <field type="NX_UINT" name="signal">1</field>
33
- <field type="NX_CHAR" name="file_start_index_num">
33
+ <field type="NX_INT64" name="file_start_index_num">
34
34
  <strategy mode="STEP"/>$datasources.$(name)_filestartnum_cb</field>
35
35
  <field type="NX_CHAR" name="mx_parameters">
36
36
  <strategy mode="FINAL"/>$datasources.$(name)_mxparameters_cb</field>
@@ -3,7 +3,7 @@
3
3
  <datasource type="PYEVAL" name="$(name)_filestartnum_cb">
4
4
  <result name="result">
5
5
  from nxstools.pyeval import common
6
- ds.result = common.filestartnum_cb(commonblock, ds.$(name)_filestartnum, ds.$(name)_nbframes, "$(name)_filestartnum")
6
+ ds.result = common.filestartnum_cb(commonblock, int(ds.$(name)_filestartnum or 0), ds.$(name)_nbframes, "$(name)_filestartnum")
7
7
  </result>
8
8
  $datasources.$(name)_filestartnum
9
9
  $datasources.$(name)_nbframes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nxstools
3
- Version: 4.35.1
3
+ Version: 4.37.0
4
4
  Summary: Configuration tools for NeXDaTaS Tango Servers
5
5
  Home-page: http://github.com/nexdatas/nxstools
6
6
  Author: Jan Kotanski, Eugen Wintersberger , Halil Pasic
@@ -178,6 +178,7 @@ class NXSCreateDeviceDSDBTest(
178
178
  ['testcs_jsonsettings',
179
179
  'testcs_selection',
180
180
  'testcs_xmlstring',
181
+ 'testcs_xmlcache',
181
182
  'testcs_variables',
182
183
  'testcs_linkdatasources',
183
184
  'testcs_extralinkdatasources',
@@ -215,6 +216,15 @@ class NXSCreateDeviceDSDBTest(
215
216
  '</definition>\n',
216
217
  '<?xml version=\'1.0\' encoding=\'utf8\'?>\n'
217
218
  '<definition>\n'
219
+ ' <datasource type="TANGO" name="testcs_xmlcache">\n'
220
+ ' <device name="%s" '
221
+ 'member="attribute" hostname="%s" port="%s"'
222
+ ' group="testcs_"/>\n'
223
+ ' <record name="XMLCache"/>\n'
224
+ ' </datasource>\n'
225
+ '</definition>\n',
226
+ '<?xml version=\'1.0\' encoding=\'utf8\'?>\n'
227
+ '<definition>\n'
218
228
  ' <datasource type="TANGO" name="testcs_variables">\n'
219
229
  ' <device name="%s" '
220
230
  'member="attribute" hostname="%s" port="%s"'
@@ -652,7 +652,7 @@ class NXSCreateOnlineCPFSTest(unittest.TestCase):
652
652
  '$datasources.mypilatus_lastimagetaken</field>\n'
653
653
  ' <field type="NX_UINT" '
654
654
  'name="signal">1</field>\n'
655
- ' <field type="NX_CHAR" '
655
+ ' <field type="NX_INT64" '
656
656
  'name="file_start_index_num">\n'
657
657
  ' <strategy mode="STEP"/>'
658
658
  '$datasources.mypilatus_filestartnum_cb</field>\n'
@@ -755,7 +755,8 @@ class NXSCreateOnlineCPFSTest(unittest.TestCase):
755
755
  ' <result name="result">\n'
756
756
  'from nxstools.pyeval import common\n'
757
757
  'ds.result = common.filestartnum_cb('
758
- 'commonblock, ds.mypilatus_filestartnum,'
758
+ 'commonblock,'
759
+ ' int(ds.mypilatus_filestartnum or 0),'
759
760
  ' ds.mypilatus_nbframes,'
760
761
  ' "mypilatus_filestartnum")\n'
761
762
  ' </result>\n'
@@ -970,7 +971,7 @@ class NXSCreateOnlineCPFSTest(unittest.TestCase):
970
971
  '$datasources.mypilatus_lastimagetaken</field>\n'
971
972
  ' <field type="NX_UINT" '
972
973
  'name="signal">1</field>\n'
973
- ' <field type="NX_CHAR" '
974
+ ' <field type="NX_INT64" '
974
975
  'name="file_start_index_num">\n'
975
976
  ' <strategy mode="STEP"/>'
976
977
  '$datasources.mypilatus_filestartnum_cb</field>\n'
@@ -1073,7 +1074,8 @@ class NXSCreateOnlineCPFSTest(unittest.TestCase):
1073
1074
  ' <result name="result">\n'
1074
1075
  'from nxstools.pyeval import common\n'
1075
1076
  'ds.result = common.filestartnum_cb('
1076
- 'commonblock, ds.mypilatus_filestartnum,'
1077
+ 'commonblock, '
1078
+ 'int(ds.mypilatus_filestartnum or 0),'
1077
1079
  ' ds.mypilatus_nbframes,'
1078
1080
  ' "mypilatus_filestartnum")\n'
1079
1081
  ' </result>\n'
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes