nxstools 4.37.0__tar.gz → 4.38.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.37.0 → nxstools-4.38.0}/ChangeLog +4 -0
  2. {nxstools-4.37.0/nxstools.egg-info → nxstools-4.38.0}/PKG-INFO +1 -1
  3. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/h5cppwriter.py +318 -51
  4. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/h5pywriter.py +8 -0
  5. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/h5rediswriter.py +23 -116
  6. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/release.py +1 -1
  7. {nxstools-4.37.0 → nxstools-4.38.0/nxstools.egg-info}/PKG-INFO +1 -1
  8. {nxstools-4.37.0 → nxstools-4.38.0}/test/H5CppWriter_test.py +0 -1
  9. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreatePyEvalH5Cpp_test.py +3 -0
  10. {nxstools-4.37.0 → nxstools-4.38.0}/.ci/debian10_py2/Dockerfile +0 -0
  11. {nxstools-4.37.0 → nxstools-4.38.0}/.ci/debian10_py3/Dockerfile +0 -0
  12. {nxstools-4.37.0 → nxstools-4.38.0}/.ci/debian11_py3/Dockerfile +0 -0
  13. {nxstools-4.37.0 → nxstools-4.38.0}/.ci/debian12_py3/Dockerfile +0 -0
  14. {nxstools-4.37.0 → nxstools-4.38.0}/.ci/debian9_py2/Dockerfile +0 -0
  15. {nxstools-4.37.0 → nxstools-4.38.0}/.ci/debian9_py3/Dockerfile +0 -0
  16. {nxstools-4.37.0 → nxstools-4.38.0}/.ci/install.sh +0 -0
  17. {nxstools-4.37.0 → nxstools-4.38.0}/.ci/run.sh +0 -0
  18. {nxstools-4.37.0 → nxstools-4.38.0}/.ci/ubuntu18.04_py2/Dockerfile +0 -0
  19. {nxstools-4.37.0 → nxstools-4.38.0}/.ci/ubuntu18.04_py3/Dockerfile +0 -0
  20. {nxstools-4.37.0 → nxstools-4.38.0}/.ci/ubuntu20.04_py3/Dockerfile +0 -0
  21. {nxstools-4.37.0 → nxstools-4.38.0}/.ci/ubuntu22.04_py3/Dockerfile +0 -0
  22. {nxstools-4.37.0 → nxstools-4.38.0}/.ci/ubuntu23.04_py3/Dockerfile +0 -0
  23. {nxstools-4.37.0 → nxstools-4.38.0}/.ci/ubuntu23.10_py3/Dockerfile +0 -0
  24. {nxstools-4.37.0 → nxstools-4.38.0}/.ci/ubuntu24.04_py3/Dockerfile +0 -0
  25. {nxstools-4.37.0 → nxstools-4.38.0}/.ci/ubuntu24.10_py3/Dockerfile +0 -0
  26. {nxstools-4.37.0 → nxstools-4.38.0}/.flake8 +0 -0
  27. {nxstools-4.37.0 → nxstools-4.38.0}/.github/workflows/tests.yml +0 -0
  28. {nxstools-4.37.0 → nxstools-4.38.0}/.gitignore +0 -0
  29. {nxstools-4.37.0 → nxstools-4.38.0}/COPYRIGHT +0 -0
  30. {nxstools-4.37.0 → nxstools-4.38.0}/MANIFEST.in +0 -0
  31. {nxstools-4.37.0 → nxstools-4.38.0}/README.rst +0 -0
  32. {nxstools-4.37.0 → nxstools-4.38.0}/doc/Makefile +0 -0
  33. {nxstools-4.37.0 → nxstools-4.38.0}/doc/conf.py +0 -0
  34. {nxstools-4.37.0 → nxstools-4.38.0}/doc/index.rst +0 -0
  35. {nxstools-4.37.0 → nxstools-4.38.0}/doc/make.bat +0 -0
  36. {nxstools-4.37.0 → nxstools-4.38.0}/doc/nxscollect.rst +0 -0
  37. {nxstools-4.37.0 → nxstools-4.38.0}/doc/nxsconfig.rst +0 -0
  38. {nxstools-4.37.0 → nxstools-4.38.0}/doc/nxscreate.rst +0 -0
  39. {nxstools-4.37.0 → nxstools-4.38.0}/doc/nxsdata.rst +0 -0
  40. {nxstools-4.37.0 → nxstools-4.38.0}/doc/nxsetup.rst +0 -0
  41. {nxstools-4.37.0 → nxstools-4.38.0}/doc/nxsfileinfo.rst +0 -0
  42. {nxstools-4.37.0 → nxstools-4.38.0}/doc/nxstools.rst +0 -0
  43. {nxstools-4.37.0 → nxstools-4.38.0}/man/nxscollect.1 +0 -0
  44. {nxstools-4.37.0 → nxstools-4.38.0}/man/nxsconfig.1 +0 -0
  45. {nxstools-4.37.0 → nxstools-4.38.0}/man/nxscreate.1 +0 -0
  46. {nxstools-4.37.0 → nxstools-4.38.0}/man/nxsdata.1 +0 -0
  47. {nxstools-4.37.0 → nxstools-4.38.0}/man/nxsetup.1 +0 -0
  48. {nxstools-4.37.0 → nxstools-4.38.0}/man/nxsfileinfo.1 +0 -0
  49. {nxstools-4.37.0 → nxstools-4.38.0}/man/nxstools.1 +0 -0
  50. {nxstools-4.37.0 → nxstools-4.38.0}/nxscollect +0 -0
  51. {nxstools-4.37.0 → nxstools-4.38.0}/nxsconfig +0 -0
  52. {nxstools-4.37.0 → nxstools-4.38.0}/nxscreate +0 -0
  53. {nxstools-4.37.0 → nxstools-4.38.0}/nxsdata +0 -0
  54. {nxstools-4.37.0 → nxstools-4.38.0}/nxsetup +0 -0
  55. {nxstools-4.37.0 → nxstools-4.38.0}/nxsfileinfo +0 -0
  56. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/__init__.py +0 -0
  57. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/filenamegenerator.py +0 -0
  58. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/filewriter.py +0 -0
  59. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/nxsargparser.py +0 -0
  60. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/nxscollect.py +0 -0
  61. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/nxsconfig.py +0 -0
  62. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/nxscreate.py +0 -0
  63. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/nxscreator.py +0 -0
  64. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/nxsdata.py +0 -0
  65. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/nxsdevicetools.py +0 -0
  66. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/nxsetup.py +0 -0
  67. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/nxsfileinfo.py +0 -0
  68. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/nxsfileparser.py +0 -0
  69. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/nxsparser.py +0 -0
  70. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/nxsxml.py +0 -0
  71. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/ontology/__init__.py +0 -0
  72. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/ontology/ontology.json +0 -0
  73. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/pyeval/__init__.py +0 -0
  74. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/pyeval/absorber.py +0 -0
  75. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/pyeval/beamtimeid.py +0 -0
  76. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/pyeval/cobold.py +0 -0
  77. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/pyeval/common.py +0 -0
  78. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/pyeval/dalsa.py +0 -0
  79. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/pyeval/dalsavds.py +0 -0
  80. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/pyeval/datasignal.py +0 -0
  81. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/pyeval/dcm.py +0 -0
  82. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/pyeval/eigerdectris.py +0 -0
  83. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/pyeval/lambdavds.py +0 -0
  84. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/pyeval/limaccd.py +0 -0
  85. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/pyeval/lmbd.py +0 -0
  86. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/pyeval/marccd.py +0 -0
  87. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/pyeval/minipix.py +0 -0
  88. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/pyeval/mssar.py +0 -0
  89. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/pyeval/mythen.py +0 -0
  90. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/pyeval/pco.py +0 -0
  91. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/pyeval/pe.py +0 -0
  92. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/pyeval/pilatus.py +0 -0
  93. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/pyeval/pilc.py +0 -0
  94. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/pyeval/pilcvds.py +0 -0
  95. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/pyeval/qbpm.py +0 -0
  96. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/pyeval/scdataset.py +0 -0
  97. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/pyeval/secop.py +0 -0
  98. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/pyeval/tangovimba.py +0 -0
  99. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/pyeval/timestamp.py +0 -0
  100. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/pyeval/xspress3.py +0 -0
  101. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/redisutils.py +0 -0
  102. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/__init__.py +0 -0
  103. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/absorber.xml +0 -0
  104. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/absorber_foil.ds.xml +0 -0
  105. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/absorber_thickness.ds.xml +0 -0
  106. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/beamstop.xml +0 -0
  107. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/beamtime_filename.ds.xml +0 -0
  108. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/beamtime_id.ds.xml +0 -0
  109. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/beamtimefname.ds.xml +0 -0
  110. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/beamtimefname.xml +0 -0
  111. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/beamtimeid.ds.xml +0 -0
  112. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/beamtimeid.xml +0 -0
  113. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/chcut.xml +0 -0
  114. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/chcut_crystal.ds.xml +0 -0
  115. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/chcut_unitcalibration.ds.xml +0 -0
  116. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/chemical_formula.ds.xml +0 -0
  117. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/client_start_time.ds.xml +0 -0
  118. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/cobold.xml +0 -0
  119. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/coboldhisto.xml +0 -0
  120. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/coboldhisto_timeofflight.ds.xml +0 -0
  121. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/collect2.xml +0 -0
  122. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/collect3.xml +0 -0
  123. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/collect4.xml +0 -0
  124. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/collect5.xml +0 -0
  125. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/collect6.xml +0 -0
  126. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/collection_description.ds.xml +0 -0
  127. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/collection_identifier.ds.xml +0 -0
  128. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/common2_common.ds.xml +0 -0
  129. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/common3_common.ds.xml +0 -0
  130. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/dalsa.xml +0 -0
  131. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/dalsa_external_data.ds.xml +0 -0
  132. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/dalsa_nxdata.ds.xml +0 -0
  133. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/dalsavds.xml +0 -0
  134. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/dalsavds_filestartnum_cb.ds.xml +0 -0
  135. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/dalsavds_nrexposedframes_cb.ds.xml +0 -0
  136. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/dalsavds_nxdata.ds.xml +0 -0
  137. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/dalsavds_triggermode_cb.ds.xml +0 -0
  138. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/dataaxessignal.xml +0 -0
  139. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/datasignal.xml +0 -0
  140. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/dcm.xml +0 -0
  141. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/dcm_crystal.ds.xml +0 -0
  142. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/dcm_reflection.ds.xml +0 -0
  143. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/dcm_unitcalibration.ds.xml +0 -0
  144. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/default.xml +0 -0
  145. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/defaultaxes.ds.xml +0 -0
  146. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/defaultcollection.xml +0 -0
  147. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/defaultinstrument.xml +0 -0
  148. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/defaultsample.xml +0 -0
  149. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/defaultsampleidentifier.xml +0 -0
  150. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/defaultsignal.ds.xml +0 -0
  151. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/description.xml +0 -0
  152. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/descriptiontext.xml +0 -0
  153. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/detectorlive.xml +0 -0
  154. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eiger1m16vds.xml +0 -0
  155. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eiger1m16vds_description_cb.ds.xml +0 -0
  156. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eiger1m16vds_nbimages_cb.ds.xml +0 -0
  157. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eiger1m16vds_stepindex.ds.xml +0 -0
  158. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eiger1m16vds_triggermode_cb.ds.xml +0 -0
  159. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eiger1m32vds.xml +0 -0
  160. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eiger1m32vds_description_cb.ds.xml +0 -0
  161. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eiger1m32vds_nbimages_cb.ds.xml +0 -0
  162. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eiger1m32vds_stepindex.ds.xml +0 -0
  163. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eiger1m32vds_triggermode_cb.ds.xml +0 -0
  164. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eiger4m16vds.xml +0 -0
  165. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eiger4m16vds_description_cb.ds.xml +0 -0
  166. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eiger4m16vds_nbimages_cb.ds.xml +0 -0
  167. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eiger4m16vds_stepindex.ds.xml +0 -0
  168. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eiger4m16vds_triggermode_cb.ds.xml +0 -0
  169. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eiger4m32vds.xml +0 -0
  170. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eiger4m32vds_description_cb.ds.xml +0 -0
  171. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eiger4m32vds_nbimages_cb.ds.xml +0 -0
  172. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eiger4m32vds_stepindex.ds.xml +0 -0
  173. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eiger4m32vds_triggermode_cb.ds.xml +0 -0
  174. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eiger9m16vds.xml +0 -0
  175. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eiger9m16vds_description_cb.ds.xml +0 -0
  176. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eiger9m16vds_nbimages_cb.ds.xml +0 -0
  177. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eiger9m16vds_stepindex.ds.xml +0 -0
  178. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eiger9m16vds_triggermode_cb.ds.xml +0 -0
  179. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eiger9m32vds.xml +0 -0
  180. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eiger9m32vds_description_cb.ds.xml +0 -0
  181. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eiger9m32vds_nbimages_cb.ds.xml +0 -0
  182. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eiger9m32vds_stepindex.ds.xml +0 -0
  183. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eiger9m32vds_triggermode_cb.ds.xml +0 -0
  184. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eigerdectris.xml +0 -0
  185. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eigerdectris_description_cb.ds.xml +0 -0
  186. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eigerdectris_nbimages_cb.ds.xml +0 -0
  187. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eigerdectris_stepindex.ds.xml +0 -0
  188. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eigerdectris_triggermode_cb.ds.xml +0 -0
  189. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eigerdectrismesh.xml +0 -0
  190. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eigerdectrismesh_description_cb.ds.xml +0 -0
  191. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eigerdectrismesh_nbimages_cb.ds.xml +0 -0
  192. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eigerdectrismesh_stepindex.ds.xml +0 -0
  193. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/eigerdectrismesh_triggermode_cb.ds.xml +0 -0
  194. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/empty.xml +0 -0
  195. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/end_time.ds.xml +0 -0
  196. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/experiment_description.ds.xml +0 -0
  197. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/groupsecop.ds.xml +0 -0
  198. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/groupsecop_time.ds.xml +0 -0
  199. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/keithley.xml +0 -0
  200. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/lambda.xml +0 -0
  201. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/lambda2m.xml +0 -0
  202. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/lambda2m_m1_external_data.ds.xml +0 -0
  203. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/lambda2m_m1_nxdata.ds.xml +0 -0
  204. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/lambda2m_m2_external_data.ds.xml +0 -0
  205. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/lambda2m_m2_nxdata.ds.xml +0 -0
  206. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/lambda2m_m3_external_data.ds.xml +0 -0
  207. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/lambda2m_m3_nxdata.ds.xml +0 -0
  208. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/lambda_external_data.ds.xml +0 -0
  209. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/lambda_nxdata.ds.xml +0 -0
  210. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/lambdavds.xml +0 -0
  211. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/lambdavds_description.ds.xml +0 -0
  212. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/lambdavds_framenumbers_cb.ds.xml +0 -0
  213. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/lambdavds_nxdata.ds.xml +0 -0
  214. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/lambdavds_savefilename_cb.ds.xml +0 -0
  215. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/lambdavds_triggermode_cb.ds.xml +0 -0
  216. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/lambdavdsnm.xml +0 -0
  217. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/lambdavdsnm_nxdata.ds.xml +0 -0
  218. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/lambdavdsnm_triggermode_cb.ds.xml +0 -0
  219. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/limaccd.xml +0 -0
  220. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/limaccd_description.ds.xml +0 -0
  221. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/limaccd_filestartnum_cb.ds.xml +0 -0
  222. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/limaccd_postrun.ds.xml +0 -0
  223. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/limaccd_xpixelsize.ds.xml +0 -0
  224. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/limaccd_ypixelsize.ds.xml +0 -0
  225. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/limaccdvds.xml +0 -0
  226. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/limaccdvds_description.ds.xml +0 -0
  227. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/limaccdvds_filestartnum_cb.ds.xml +0 -0
  228. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/limaccdvds_postrun.ds.xml +0 -0
  229. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/limaccdvds_xpixelsize.ds.xml +0 -0
  230. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/limaccdvds_ypixelsize.ds.xml +0 -0
  231. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/maia.xml +0 -0
  232. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/maiadimension.xml +0 -0
  233. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/maiaflux.xml +0 -0
  234. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/marccd.xml +0 -0
  235. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/marccd_postrun.ds.xml +0 -0
  236. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/mcaxia.xml +0 -0
  237. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/minipix.xml +0 -0
  238. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/minipix_description.ds.xml +0 -0
  239. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/minipix_framenumbers_cb.ds.xml +0 -0
  240. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/minipix_nxdata.ds.xml +0 -0
  241. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/minipix_savefilename_cb.ds.xml +0 -0
  242. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/minipix_triggermode_cb.ds.xml +0 -0
  243. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/msnsar_env.ds.xml +0 -0
  244. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/mssar_env.ds.xml +0 -0
  245. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/mythen.xml +0 -0
  246. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/mythen2.xml +0 -0
  247. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/mythen_filestartnumber.ds.xml +0 -0
  248. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/mythen_postrun.ds.xml +0 -0
  249. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/nexdatas_configuration.ds.xml +0 -0
  250. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/nexdatas_version.ds.xml +0 -0
  251. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/parametercopymap.xml +0 -0
  252. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pco.xml +0 -0
  253. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pco_description.ds.xml +0 -0
  254. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pco_filestartnum_cb.ds.xml +0 -0
  255. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pco_postrun.ds.xml +0 -0
  256. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/perkinelmerdetector.xml +0 -0
  257. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/perkinelmerdetector_description.ds.xml +0 -0
  258. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/perkinelmerdetector_fileindex_cb.ds.xml +0 -0
  259. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/perkinelmerdetector_postrun.ds.xml +0 -0
  260. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pilatus.xml +0 -0
  261. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pilatus100k_description.ds.xml +0 -0
  262. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pilatus1m_description.ds.xml +0 -0
  263. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pilatus2m_description.ds.xml +0 -0
  264. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pilatus300k_description.ds.xml +0 -0
  265. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pilatus6m_description.ds.xml +0 -0
  266. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pilatus_description.ds.xml +0 -0
  267. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pilatus_filestartnum_cb.ds.xml +0 -0
  268. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pilatus_mxparameters_cb.ds.xml +0 -0
  269. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pilatus_postrun.ds.xml +0 -0
  270. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pilc.xml +0 -0
  271. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pilc_triggermode_cb.ds.xml +0 -0
  272. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pilcslavevds.xml +0 -0
  273. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pilcslavevds_exposuretimemap.ds.xml +0 -0
  274. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pilcslavevds_value1map.ds.xml +0 -0
  275. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pilcslavevds_value2map.ds.xml +0 -0
  276. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pilcslavevds_value3map.ds.xml +0 -0
  277. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pilcslavevds_value4map.ds.xml +0 -0
  278. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pilcslavevds_value5map.ds.xml +0 -0
  279. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pilctimeid.xml +0 -0
  280. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pilctimeid_triggermode_cb.ds.xml +0 -0
  281. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pilcvds.xml +0 -0
  282. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pilcvds4.xml +0 -0
  283. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pilcvds_attrmap.ds.xml +0 -0
  284. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pilcvds_countermap.ds.xml +0 -0
  285. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pilcvds_encoder1map.ds.xml +0 -0
  286. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pilcvds_encoder2map.ds.xml +0 -0
  287. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pilcvds_encoder3map.ds.xml +0 -0
  288. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pilcvds_encoder4map.ds.xml +0 -0
  289. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pilcvds_encoder5map.ds.xml +0 -0
  290. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pinhole.xml +0 -0
  291. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/pointdet.xml +0 -0
  292. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/prodigyremote.xml +0 -0
  293. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/qbpm.xml +0 -0
  294. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/qbpm_foil.ds.xml +0 -0
  295. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/sample_description.ds.xml +0 -0
  296. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/sample_env_links.ds.xml +0 -0
  297. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/sample_identifier.ds.xml +0 -0
  298. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/sample_log_links.ds.xml +0 -0
  299. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/sample_name.ds.xml +0 -0
  300. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/sample_nxdata.ds.xml +0 -0
  301. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/sampledescription.xml +0 -0
  302. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/sampledescriptiontext.xml +0 -0
  303. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/sampleenv_nxdata.ds.xml +0 -0
  304. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/samplehkl.xml +0 -0
  305. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/sardanaenvironment.ds.xml +0 -0
  306. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/secop.ds.xml +0 -0
  307. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/secop_time.ds.xml +0 -0
  308. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/signal_axes.ds.xml +0 -0
  309. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/signal_name.ds.xml +0 -0
  310. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/signalname.ds.xml +0 -0
  311. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/singlesecop.ds.xml +0 -0
  312. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/singlesecop_time.ds.xml +0 -0
  313. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/slit.xml +0 -0
  314. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/source.xml +0 -0
  315. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/start_time.ds.xml +0 -0
  316. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/start_timestamp.ds.xml +0 -0
  317. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/starttime.ds.xml +0 -0
  318. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/starttime.xml +0 -0
  319. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/tango.ds.xml +0 -0
  320. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/tangovimba.xml +0 -0
  321. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/tangovimba_external_data.ds.xml +0 -0
  322. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/tangovimba_nxdata.ds.xml +0 -0
  323. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/title.ds.xml +0 -0
  324. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/undulator.xml +0 -0
  325. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/xspress3.xml +0 -0
  326. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools/xmltemplates/xspress3_triggermode_cb.ds.xml +0 -0
  327. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools.egg-info/SOURCES.txt +0 -0
  328. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools.egg-info/dependency_links.txt +0 -0
  329. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools.egg-info/not-zip-safe +0 -0
  330. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools.egg-info/requires.txt +0 -0
  331. {nxstools-4.37.0 → nxstools-4.38.0}/nxstools.egg-info/top_level.txt +0 -0
  332. {nxstools-4.37.0 → nxstools-4.38.0}/setup.cfg +0 -0
  333. {nxstools-4.37.0 → nxstools-4.38.0}/setup.py +0 -0
  334. {nxstools-4.37.0 → nxstools-4.38.0}/test/FileWriterH5CppH5PY_test.py +0 -0
  335. {nxstools-4.37.0 → nxstools-4.38.0}/test/FileWriterH5Cpp_test.py +0 -0
  336. {nxstools-4.37.0 → nxstools-4.38.0}/test/FileWriterH5PY_test.py +0 -0
  337. {nxstools-4.37.0 → nxstools-4.38.0}/test/H5CppRedisWriter_test.py +0 -0
  338. {nxstools-4.37.0 → nxstools-4.38.0}/test/H5PYWriter_test.py +0 -0
  339. {nxstools-4.37.0 → nxstools-4.38.0}/test/MacroServer2 +0 -0
  340. {nxstools-4.37.0 → nxstools-4.38.0}/test/MacroServer3 +0 -0
  341. {nxstools-4.37.0 → nxstools-4.38.0}/test/MacroServerSetUp.py +0 -0
  342. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCollectH5Cpp_test.py +0 -0
  343. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCollectH5PY_test.py +0 -0
  344. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCollect_test.py +0 -0
  345. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSConfig_test.py +0 -0
  346. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateClientDSDB2_test.py +0 -0
  347. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateClientDSDBR2_test.py +0 -0
  348. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateClientDSDBR_test.py +0 -0
  349. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateClientDSDB_test.py +0 -0
  350. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateClientDSFS2_test.py +0 -0
  351. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateClientDSFS3_test.py +0 -0
  352. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateClientDSFS_test.py +0 -0
  353. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateCompDB2_test.py +0 -0
  354. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateCompDBR2_test.py +0 -0
  355. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateCompDBR_test.py +0 -0
  356. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateCompDB_test.py +0 -0
  357. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateCompFS2_test.py +0 -0
  358. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateCompFS3_test.py +0 -0
  359. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateCompFS_test.py +0 -0
  360. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateCompare_test.py +0 -0
  361. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateDeviceDSDB2_test.py +0 -0
  362. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateDeviceDSDBR2_test.py +0 -0
  363. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateDeviceDSDBR_test.py +0 -0
  364. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateDeviceDSDB_test.py +0 -0
  365. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateDeviceDSFS2_test.py +0 -0
  366. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateDeviceDSFS3_test.py +0 -0
  367. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateDeviceDSFS4_test.py +0 -0
  368. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateDeviceDSFS_test.py +0 -0
  369. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateOnlineCPDB2_test.py +0 -0
  370. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateOnlineCPDBR2_test.py +0 -0
  371. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateOnlineCPDBR_test.py +0 -0
  372. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateOnlineCPDB_test.py +0 -0
  373. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateOnlineCPFS2_test.py +0 -0
  374. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateOnlineCPFS3_test.py +0 -0
  375. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateOnlineCPFS_test.py +0 -0
  376. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateOnlineDSDB2_test.py +0 -0
  377. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateOnlineDSDBE2_test.py +0 -0
  378. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateOnlineDSDBE_test.py +0 -0
  379. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateOnlineDSDBR2_test.py +0 -0
  380. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateOnlineDSDBR_test.py +0 -0
  381. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateOnlineDSDB_test.py +0 -0
  382. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateOnlineDSFS2_test.py +0 -0
  383. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateOnlineDSFS3_test.py +0 -0
  384. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateOnlineDSFS_test.py +0 -0
  385. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreatePoolDSDB2_test.py +0 -0
  386. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreatePoolDSDBR2_test.py +0 -0
  387. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreatePoolDSDBR_test.py +0 -0
  388. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreatePoolDSDB_test.py +0 -0
  389. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreatePoolDSFS2_test.py +0 -0
  390. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreatePoolDSFS3_test.py +0 -0
  391. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreatePoolDSFS_test.py +0 -0
  392. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreatePyEvalH5PY_test.py +0 -0
  393. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateSECoPCPDB_test.py +0 -0
  394. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateSECoPCPFS_test.py +0 -0
  395. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateStdCompDB2_test.py +0 -0
  396. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateStdCompDBE2_test.py +0 -0
  397. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateStdCompDBE_test.py +0 -0
  398. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateStdCompDBR2_test.py +0 -0
  399. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateStdCompDBR_test.py +0 -0
  400. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateStdCompDB_test.py +0 -0
  401. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateStdCompFS2_test.py +0 -0
  402. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateStdCompFS3_test.py +0 -0
  403. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateStdCompFS_test.py +0 -0
  404. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateTangoDSDB2_test.py +0 -0
  405. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateTangoDSDBR2_test.py +0 -0
  406. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateTangoDSDBR_test.py +0 -0
  407. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateTangoDSDB_test.py +0 -0
  408. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateTangoDSFS2_test.py +0 -0
  409. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateTangoDSFS3_test.py +0 -0
  410. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreateTangoDSFS_test.py +0 -0
  411. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSCreate_test.py +0 -0
  412. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSData_test.py +0 -0
  413. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSFileInfoH5Cpp_test.py +0 -0
  414. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSFileInfoH5PY_test.py +0 -0
  415. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSFileInfo_test.py +0 -0
  416. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSTools_test.py +0 -0
  417. {nxstools-4.37.0 → nxstools-4.38.0}/test/NXSetUp_test.py +0 -0
  418. {nxstools-4.37.0 → nxstools-4.38.0}/test/ServerSetUp.py +0 -0
  419. {nxstools-4.37.0 → nxstools-4.38.0}/test/TestPool.py +0 -0
  420. {nxstools-4.37.0 → nxstools-4.38.0}/test/TestPoolSetUp.py +0 -0
  421. {nxstools-4.37.0 → nxstools-4.38.0}/test/TestServer2 +0 -0
  422. {nxstools-4.37.0 → nxstools-4.38.0}/test/TestServer3 +0 -0
  423. {nxstools-4.37.0 → nxstools-4.38.0}/test/TestServerSetUp.py +0 -0
  424. {nxstools-4.37.0 → nxstools-4.38.0}/test/WriterSetUp.py +0 -0
  425. {nxstools-4.37.0 → nxstools-4.38.0}/test/__init__.py +0 -0
  426. {nxstools-4.37.0 → nxstools-4.38.0}/test/__main__.py +0 -0
  427. {nxstools-4.37.0 → nxstools-4.38.0}/test/checks.py +0 -0
  428. {nxstools-4.37.0 → nxstools-4.38.0}/test/files/empty.json +0 -0
  429. {nxstools-4.37.0 → nxstools-4.38.0}/test/files/empty1.json +0 -0
  430. {nxstools-4.37.0 → nxstools-4.38.0}/test/files/metadata-group-map.lst +0 -0
  431. {nxstools-4.37.0 → nxstools-4.38.0}/test/files/metadata-group-map2.lst +0 -0
  432. {nxstools-4.37.0 → nxstools-4.38.0}/test/files/mymeta2_00011.fio +0 -0
  433. {nxstools-4.37.0 → nxstools-4.38.0}/test/files/mys0_13_1_00190.fio +0 -0
  434. {nxstools-4.37.0 → nxstools-4.38.0}/test/files/myscan_00034.scan.json +0 -0
  435. {nxstools-4.37.0 → nxstools-4.38.0}/test/files/myscan_00034b.scan.json +0 -0
  436. {nxstools-4.37.0 → nxstools-4.38.0}/test/files/myscan_00035.scan.json +0 -0
  437. {nxstools-4.37.0 → nxstools-4.38.0}/test/files/myuni.xml +0 -0
  438. {nxstools-4.37.0 → nxstools-4.38.0}/test/files/myuni2.xml +0 -0
  439. {nxstools-4.37.0 → nxstools-4.38.0}/test/files/myunidy.xml +0 -0
  440. {nxstools-4.37.0 → nxstools-4.38.0}/test/files/myunidy2.xml +0 -0
  441. {nxstools-4.37.0 → nxstools-4.38.0}/test/files/secop.conf +0 -0
  442. {nxstools-4.37.0 → nxstools-4.38.0}/test/files/secop2.conf +0 -0
  443. {nxstools-4.37.0 → nxstools-4.38.0}/test/files/test_file.cbf +0 -0
  444. {nxstools-4.37.0 → nxstools-4.38.0}/test/files/test_file.tif +0 -0
  445. {nxstools-4.37.0 → nxstools-4.38.0}/test/files/test_file0.tif +0 -0
  446. {nxstools-4.37.0 → nxstools-4.38.0}/test/files/test_file1.tif +0 -0
  447. {nxstools-4.37.0 → nxstools-4.38.0}/test/files/test_file2.tif +0 -0
  448. {nxstools-4.37.0 → nxstools-4.38.0}/test/files/test_file3.tif +0 -0
  449. {nxstools-4.37.0 → nxstools-4.38.0}/test/files/test_file4.tif +0 -0
  450. {nxstools-4.37.0 → nxstools-4.38.0}/test/files/test_file5.tif +0 -0
  451. {nxstools-4.37.0 → nxstools-4.38.0}/test/files/tn.png +0 -0
  452. {nxstools-4.37.0 → nxstools-4.38.0}/test/main.py +0 -0
  453. {nxstools-4.37.0 → nxstools-4.38.0}/test/nxsextrasp00/__init__.py +0 -0
  454. {nxstools-4.37.0 → nxstools-4.38.0}/test/nxsextrasp00/collect4.xml +0 -0
  455. {nxstools-4.37.0 → nxstools-4.38.0}/test/nxsextrasp00/common4_common.ds.xml +0 -0
  456. {nxstools-4.37.0 → nxstools-4.38.0}/test/nxsextrasp00/mymca.xml +0 -0
  457. {nxstools-4.37.0 → nxstools-4.38.0}/tests/simpleXMLAScan.py +0 -0
  458. {nxstools-4.37.0 → nxstools-4.38.0}/tests/simpleXMLCScan.py +0 -0
  459. {nxstools-4.37.0 → nxstools-4.38.0}/tests/simpleXMLScan.py +0 -0
  460. {nxstools-4.37.0 → nxstools-4.38.0}/tests/testNXSxml.py +0 -0
  461. {nxstools-4.37.0 → nxstools-4.38.0}/tests/testXMLCreator.py +0 -0
  462. {nxstools-4.37.0 → nxstools-4.38.0}/tests/testXMLtrigger.py +0 -0
@@ -1,3 +1,7 @@
1
+ 2026-01-28 Jan Kotanski <jankotan@gmail.com>
2
+ * add attribute name caching (#854)
3
+ * tagged as v4.38.0
4
+
1
5
  2026-01-22 Jan Kotanski <jankotan@gmail.com>
2
6
  * ensure filestartnum is int (#850)
3
7
  * tagged as v4.37.0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nxstools
3
- Version: 4.37.0
3
+ Version: 4.38.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
@@ -21,6 +21,7 @@
21
21
  import math
22
22
  import os
23
23
  import sys
24
+ import threading
24
25
  import numpy as np
25
26
  from pninexus import h5cpp
26
27
 
@@ -697,6 +698,9 @@ class H5CppGroup(filewriter.FTGroup):
697
698
  :param tparent: tree parent
698
699
  :type tparent: :obj:`FTObject`
699
700
  """
701
+ self._ancache = None
702
+ self._avcache_lock = threading.Lock()
703
+ self._avcache = {}
700
704
 
701
705
  filewriter.FTGroup.__init__(self, h5object, tparent)
702
706
  #: (:obj:`str`) object nexus path
@@ -718,7 +722,8 @@ class H5CppGroup(filewriter.FTGroup):
718
722
  self.path = tparent.path + u"/"
719
723
  self.path += self.name
720
724
  if ":" not in self.name:
721
- if u"NX_class" in [at.name for at in h5object.attributes]:
725
+ # print("GROUP", type(self), self.name)
726
+ if u"NX_class" in self.attributes._names():
722
727
  clss = filewriter.first(
723
728
  h5object.attributes["NX_class"]).read()
724
729
  else:
@@ -729,6 +734,68 @@ class H5CppGroup(filewriter.FTGroup):
729
734
  if clss and clss != 'NXroot':
730
735
  self.path += u":" + str(clss)
731
736
 
737
+ def set_attr_value(self, name, value):
738
+ """ set device parameters
739
+
740
+ :param name: attribute name
741
+ :type name: :obj:`str`
742
+ :param value: attribute value
743
+ :type value: :obj:`any`
744
+ """
745
+ with self._avcache_lock:
746
+ self._avcache[name] = value
747
+ if self._ancache is None:
748
+ names = self.attributes.names()
749
+ self._ancache = set(names)
750
+ self._ancache.add(name)
751
+
752
+ def get_attr_value(self, name):
753
+ """ get scan info parameters
754
+
755
+ :param name: attribute name
756
+ :type name: :obj:`str`
757
+ :returns value: attribute value
758
+ :rtype value: :obj:`any`
759
+ """
760
+ with self._avcache_lock:
761
+ # print(self._avcache)
762
+ vl = self._avcache.get(name, None)
763
+ return vl
764
+
765
+ def get_attr_names(self):
766
+ """ get scan info parameters
767
+
768
+ :returns value: attribute value
769
+ :rtype value: :obj:`any`
770
+ """
771
+ with self._avcache_lock:
772
+ if self._ancache is not None:
773
+ names = self._ancache
774
+ else:
775
+ names = self.attributes.names()
776
+ self._ancache = set(names)
777
+ return names
778
+
779
+ def remove_attr_names(self, name):
780
+ """ remove the attribute name
781
+
782
+ :param name: attribute name
783
+ :type name: :obj:`str`
784
+ """
785
+ with self._avcache_lock:
786
+ if self._ancache is not None and name in self._ancache:
787
+ self._ancache.pop(name)
788
+
789
+ def add_attr_name(self, name):
790
+ """ add the attribute name
791
+
792
+ :param name: attribute name
793
+ :type name: :obj:`str`
794
+ """
795
+ with self._avcache_lock:
796
+ if self._ancache is not None and name not in self._ancache:
797
+ self._ancache.add(name)
798
+
732
799
  def open(self, name):
733
800
  """ open a file tree element
734
801
 
@@ -739,6 +806,7 @@ class H5CppGroup(filewriter.FTGroup):
739
806
  """
740
807
  try:
741
808
  if self._h5object.has_group(h5cpp.Path(name)):
809
+ # print("OPEN", name, type(self._tparent))
742
810
  return H5CppGroup(
743
811
  self._h5object.get_group(h5cpp.Path(name)), self)
744
812
  elif self._h5object.has_dataset(h5cpp.Path(name)):
@@ -1025,6 +1093,9 @@ class H5CppField(filewriter.FTField):
1025
1093
  :param tparent: tree parent
1026
1094
  :type tparent: :obj:`FTObject`
1027
1095
  """
1096
+ self._ancache = None
1097
+ self._avcache_lock = threading.Lock()
1098
+ self._avcache = {}
1028
1099
  filewriter.FTField.__init__(self, h5object, tparent)
1029
1100
  #: (:obj:`str`) object nexus path
1030
1101
  self.path = ''
@@ -1040,6 +1111,67 @@ class H5CppField(filewriter.FTField):
1040
1111
  #: (:obj:`bool`) bool flag
1041
1112
  # self.boolflag = False
1042
1113
 
1114
+ def set_attr_value(self, name, value):
1115
+ """ set device parameters
1116
+
1117
+ :param name: attribute name
1118
+ :type name: :obj:`str`
1119
+ :param value: attribute value
1120
+ :type value: :obj:`any`
1121
+ """
1122
+ with self._avcache_lock:
1123
+ self._avcache[name] = value
1124
+ if self._ancache is None:
1125
+ names = self.attributes.names()
1126
+ self._ancache = set(names)
1127
+ self._ancache.add(name)
1128
+
1129
+ def get_attr_names(self):
1130
+ """ get scan info parameters
1131
+
1132
+ :returns value: attribute value
1133
+ :rtype value: :obj:`any`
1134
+ """
1135
+ with self._avcache_lock:
1136
+ if self._ancache is not None:
1137
+ names = self._ancache
1138
+ else:
1139
+ names = self.attributes.names()
1140
+ self._ancache = set(names)
1141
+ return names
1142
+
1143
+ def remove_attr_names(self, name):
1144
+ """ remove the attribute
1145
+
1146
+ :param name: attribute name
1147
+ :type name: :obj:`str`
1148
+ """
1149
+ with self._avcache_lock:
1150
+ if self._ancache is not None and name in self._ancache:
1151
+ self._ancache.pop()
1152
+
1153
+ def add_attr_name(self, name):
1154
+ """ add the attribute name
1155
+
1156
+ :param name: attribute name
1157
+ :type name: :obj:`str`
1158
+ """
1159
+ with self._avcache_lock:
1160
+ if self._ancache is not None and name not in self._ancache:
1161
+ self._ancache.add(name)
1162
+
1163
+ def get_attr_value(self, name):
1164
+ """ get scan info parameters
1165
+
1166
+ :param name: attribute name
1167
+ :type name: :obj:`str`
1168
+ :returns value: attribute value
1169
+ :rtype value: :obj:`any`
1170
+ """
1171
+ with self._avcache_lock:
1172
+ vl = self._avcache.get(name, None)
1173
+ return vl
1174
+
1043
1175
  @property
1044
1176
  def attributes(self):
1045
1177
  """ return the attribute manager
@@ -1230,52 +1362,55 @@ class H5CppField(filewriter.FTField):
1230
1362
  """
1231
1363
  # if self.boolflag:
1232
1364
  # return "bool"
1233
- if str(self._h5object.datatype.type) == "FLOAT":
1234
- if self._h5object.datatype.size == 8:
1365
+ datatype = self._h5object.datatype
1366
+ dtype = datatype.type
1367
+ dsize = datatype.size
1368
+ if str(dtype) == "FLOAT":
1369
+ if dsize == 8:
1235
1370
  return "float64"
1236
- elif self._h5object.datatype.size == 4:
1371
+ elif dsize == 4:
1237
1372
  return "float32"
1238
- elif self._h5object.datatype.size == 16:
1373
+ elif dsize == 16:
1239
1374
  return "float128"
1240
1375
  else:
1241
1376
  return "float"
1242
- elif str(self._h5object.datatype.type) == "INTEGER":
1377
+ elif str(dtype) == "INTEGER":
1243
1378
 
1244
- if self._h5object.datatype.size == 8:
1245
- if self._h5object.datatype.is_signed():
1379
+ if dsize == 8:
1380
+ if datatype.is_signed():
1246
1381
  return "int64"
1247
1382
  else:
1248
1383
  return "uint64"
1249
- elif self._h5object.datatype.size == 4:
1250
- if self._h5object.datatype.is_signed():
1384
+ elif dsize == 4:
1385
+ if datatype.is_signed():
1251
1386
  return "int32"
1252
1387
  else:
1253
1388
  return "uint32"
1254
- elif self._h5object.datatype.size == 2:
1255
- if self._h5object.datatype.is_signed():
1389
+ elif dsize == 2:
1390
+ if datatype.is_signed():
1256
1391
  return "int16"
1257
1392
  else:
1258
1393
  return "uint16"
1259
- elif self._h5object.datatype.size == 1:
1260
- if self._h5object.datatype.is_signed():
1394
+ elif dsize == 1:
1395
+ if datatype.is_signed():
1261
1396
  return "int8"
1262
1397
  else:
1263
1398
  return "uint8"
1264
- elif self._h5object.datatype.size == 16:
1265
- if self._h5object.datatype.is_signed():
1399
+ elif dsize == 16:
1400
+ if datatype.is_signed():
1266
1401
  return "int128"
1267
1402
  else:
1268
1403
  return "uint128"
1269
1404
  else:
1270
1405
  return "int"
1271
- elif str(self._h5object.datatype.type) == "ENUM":
1406
+ elif str(dtype) == "ENUM":
1272
1407
  if h5cpp._datatype.is_bool(
1273
- h5cpp.datatype.Enum(self._h5object.datatype)):
1408
+ h5cpp.datatype.Enum(datatype)):
1274
1409
  return "bool"
1275
1410
  else:
1276
1411
  return "int"
1277
1412
 
1278
- return hTp[self._h5object.datatype.type]
1413
+ return hTp[dtype]
1279
1414
  #
1280
1415
 
1281
1416
  @property
@@ -1315,6 +1450,9 @@ class H5CppLink(filewriter.FTLink):
1315
1450
  :param tparent: tree parent
1316
1451
  :type tparent: :obj:`FTObject`
1317
1452
  """
1453
+ self._avcache_lock = threading.Lock()
1454
+ self._avcache = {}
1455
+ self._ancache = None
1318
1456
  filewriter.FTLink.__init__(self, h5object, tparent)
1319
1457
  #: (:obj:`str`) object nexus path
1320
1458
  self.path = ''
@@ -1327,6 +1465,69 @@ class H5CppLink(filewriter.FTLink):
1327
1465
  self.name = h5object.path.name
1328
1466
  self.path += self.name
1329
1467
 
1468
+ def set_attr_value(self, name, value):
1469
+ """ set device parameters
1470
+
1471
+ :param name: attribute name
1472
+ :type name: :obj:`str`
1473
+ :param value: attribute value
1474
+ :type value: :obj:`any`
1475
+ """
1476
+ with self._avcache_lock:
1477
+ self._avcache[name] = value
1478
+ if self._ancache is None:
1479
+ names = self.attributes.names()
1480
+ self._ancache = set(names)
1481
+ self._ancache.add(name)
1482
+
1483
+ def get_attr_names(self):
1484
+ """ get scan info parameters
1485
+
1486
+ :returns value: attribute value
1487
+ :rtype value: :obj:`any`
1488
+ """
1489
+ with self._avcache_lock:
1490
+ if self._ancache is not None:
1491
+ names = self._ancache
1492
+ else:
1493
+ names = self.attributes.names()
1494
+ self._ancache = set(names)
1495
+ return names
1496
+
1497
+ def get_attr_value(self, name):
1498
+ """ get scan info parameters
1499
+
1500
+ :param name: attribute name
1501
+ :type name: :obj:`str`
1502
+ :returns value: attribute value
1503
+ :rtype value: :obj:`any`
1504
+ """
1505
+ with self._avcache_lock:
1506
+ vl = self._avcache.get(name, None)
1507
+ return vl
1508
+
1509
+ def add_attr_name(self, name):
1510
+ """ add the attribute name
1511
+
1512
+ :param name: attribute name
1513
+ :type name: :obj:`str`
1514
+ """
1515
+ with self._avcache_lock:
1516
+ if self._ancache is not None and name not in self._ancache:
1517
+ self._ancache.add(name)
1518
+
1519
+ def remove_attr_names(self, name):
1520
+ """ remove the attribute
1521
+
1522
+ :param name: attribute name
1523
+ :type name: :obj:`str`
1524
+ """
1525
+ with self._avcache_lock:
1526
+ if self._ancache is not None and name in self._ancache:
1527
+ self._ancache.pop()
1528
+ if hasattr(self._tparent, "remove_attr_name"):
1529
+ self._tparent.remove_attr_name(name)
1530
+
1330
1531
  @property
1331
1532
  def is_valid(self):
1332
1533
  """ check if link is valid
@@ -1776,6 +1977,50 @@ class H5CppAttributeManager(filewriter.FTAttributeManager):
1776
1977
  #: (:obj:`str`) object name
1777
1978
  self.name = None
1778
1979
 
1980
+ def remove(self, name):
1981
+ """ remove the attribute
1982
+
1983
+ :param name: attribute name
1984
+ :type name: :obj:`str`
1985
+ """
1986
+ # print("remove", name)
1987
+ try:
1988
+ self._h5object.remove(name)
1989
+ except Exception:
1990
+ pass
1991
+ if hasattr(self._tparent, "remove_attr_name"):
1992
+ self._tparent.remove_attr_name(name)
1993
+
1994
+ def set_attr_value(self, name, value):
1995
+ """ set device parameters
1996
+
1997
+ :param name: attribute name
1998
+ :type name: :obj:`str`
1999
+ :param value: attribute value
2000
+ :type value: :obj:`any`
2001
+ """
2002
+ if hasattr(self._tparent, "set_attr_value"):
2003
+ return self._tparent.set_attr_value(name, value)
2004
+
2005
+ def names(self):
2006
+ """ key values
2007
+
2008
+ :returns: attribute names
2009
+ :rtype: :obj:`list` <:obj:`str`>
2010
+ """
2011
+ return [att.name for att in self._h5object]
2012
+
2013
+ def _names(self):
2014
+ """ key values
2015
+
2016
+ :returns: attribute names
2017
+ :rtype: :obj:`list` <:obj:`str`>
2018
+ """
2019
+ # print("NAMESS")
2020
+ if hasattr(self._tparent, "get_attr_names"):
2021
+ return self._tparent.get_attr_names()
2022
+ return self.names()
2023
+
1779
2024
  def create(self, name, dtype, shape=None, overwrite=False):
1780
2025
  """ create a new attribute
1781
2026
 
@@ -1790,8 +2035,9 @@ class H5CppAttributeManager(filewriter.FTAttributeManager):
1790
2035
  :returns: attribute object
1791
2036
  :rtype: :class:`H5CppAtribute`
1792
2037
  """
2038
+
1793
2039
  at = None
1794
- names = [att.name for att in self._h5object]
2040
+ names = self._names()
1795
2041
  if name in names:
1796
2042
  if overwrite:
1797
2043
  try:
@@ -1802,13 +2048,15 @@ class H5CppAttributeManager(filewriter.FTAttributeManager):
1802
2048
  except Exception as e:
1803
2049
  print(str(e))
1804
2050
  if at is None:
1805
- self._h5object.remove(name)
2051
+ self.remove(name)
1806
2052
  else:
1807
2053
  raise Exception("Attribute %s exists" % name)
1808
2054
  shape = shape or []
1809
2055
  if shape:
1810
2056
  if at is None:
1811
2057
  at = self._h5object.create(name, pTh[_tostr(dtype)], shape)
2058
+ if hasattr(self._tparent, "add_attr_name"):
2059
+ self._tparent.add_attr_name(name)
1812
2060
  if dtype in ['string', b'string']:
1813
2061
  emp = np.empty(shape, dtype="unicode")
1814
2062
  emp[:] = ''
@@ -1818,10 +2066,12 @@ class H5CppAttributeManager(filewriter.FTAttributeManager):
1818
2066
  else:
1819
2067
  if at is None:
1820
2068
  at = self._h5object.create(name, pTh[_tostr(dtype)])
1821
- if dtype in ['string', b'string']:
1822
- at.write(np.array(u"", dtype="unicode"))
1823
- else:
1824
- at.write(np.array(0, dtype=dtype))
2069
+ if hasattr(self._tparent, "add_attr_name"):
2070
+ self._tparent.add_attr_name(name)
2071
+ # if dtype in ['string', b'string']:
2072
+ # at.write(np.array(u"", dtype="unicode"))
2073
+ # else:
2074
+ # at.write(np.array(0, dtype=dtype))
1825
2075
 
1826
2076
  at = H5CppAttribute(at, self.parent)
1827
2077
  # if dtype == "bool":
@@ -1847,14 +2097,6 @@ class H5CppAttributeManager(filewriter.FTAttributeManager):
1847
2097
  return H5CppAttribute(
1848
2098
  self._h5object.__getitem__(name), self.parent)
1849
2099
 
1850
- def names(self):
1851
- """ key values
1852
-
1853
- :returns: attribute names
1854
- :rtype: :obj:`list` <:obj:`str`>
1855
- """
1856
- return [att.name for att in self._h5object]
1857
-
1858
2100
  def close(self):
1859
2101
  """ close attribure manager
1860
2102
  """
@@ -2050,50 +2292,53 @@ class H5CppAttribute(filewriter.FTAttribute):
2050
2292
  """
2051
2293
  # if self.boolflag:
2052
2294
  # return "bool"
2053
- if str(self._h5object.datatype.type) == "FLOAT":
2054
- if self._h5object.datatype.size == 8:
2295
+ datatype = self._h5object.datatype
2296
+ dtype = datatype.type
2297
+ dsize = datatype.size
2298
+ if str(dtype) == "FLOAT":
2299
+ if dsize == 8:
2055
2300
  return "float64"
2056
- elif self._h5object.datatype.size == 4:
2301
+ elif dsize == 4:
2057
2302
  return "float32"
2058
- elif self._h5object.datatype.size == 16:
2303
+ elif dsize == 16:
2059
2304
  return "float128"
2060
2305
  else:
2061
2306
  return "float"
2062
- elif str(self._h5object.datatype.type) == "INTEGER":
2063
- if self._h5object.datatype.size == 8:
2064
- if self._h5object.datatype.is_signed():
2307
+ elif str(dtype) == "INTEGER":
2308
+ if dsize == 8:
2309
+ if datatype.is_signed():
2065
2310
  return "int64"
2066
2311
  else:
2067
2312
  return "uint64"
2068
- elif self._h5object.datatype.size == 4:
2069
- if self._h5object.datatype.is_signed():
2313
+ elif dsize == 4:
2314
+ if datatype.is_signed():
2070
2315
  return "int32"
2071
2316
  else:
2072
2317
  return "uint32"
2073
- elif self._h5object.datatype.size == 2:
2074
- if self._h5object.datatype.is_signed():
2318
+ elif dsize == 2:
2319
+ if datatype.is_signed():
2075
2320
  return "int16"
2076
2321
  else:
2077
2322
  return "uint16"
2078
- elif self._h5object.datatype.size == 1:
2079
- if self._h5object.datatype.is_signed():
2323
+ elif dsize == 1:
2324
+ if datatype.is_signed():
2080
2325
  return "int8"
2081
2326
  else:
2082
2327
  return "uint8"
2083
- elif self._h5object.datatype.size == 16:
2084
- if self._h5object.datatype.is_signed():
2328
+ elif dsize == 16:
2329
+ if datatype.is_signed():
2085
2330
  return "int128"
2086
2331
  else:
2087
2332
  return "uint128"
2088
2333
  else:
2089
2334
  return "int"
2090
- elif str(self._h5object.datatype.type) == "ENUM":
2335
+ elif str(dtype) == "ENUM":
2091
2336
  if h5cpp._datatype.is_bool(
2092
- h5cpp.datatype.Enum(self._h5object.datatype)):
2337
+ h5cpp.datatype.Enum(datatype)):
2093
2338
  return "bool"
2094
2339
  else:
2095
2340
  return "int"
2096
- return hTp[self._h5object.datatype.type]
2341
+ return hTp[dtype]
2097
2342
 
2098
2343
  @property
2099
2344
  def shape(self):
@@ -2114,3 +2359,25 @@ class H5CppAttribute(filewriter.FTAttribute):
2114
2359
  """
2115
2360
  self._h5object = self._tparent.h5object.attributes[self.name]
2116
2361
  filewriter.FTAttribute.reopen(self)
2362
+
2363
+ def set_attr_value(self, name, value):
2364
+ """ set device parameters
2365
+
2366
+ :param name: attribute name
2367
+ :type name: :obj:`str`
2368
+ :param value: attribute value
2369
+ :type value: :obj:`any`
2370
+ """
2371
+ if hasattr(self._tparent, "set_attr_value"):
2372
+ return self._tparent.set_attr_value(name, value)
2373
+
2374
+ def get_attr_value(self, name):
2375
+ """ get scan info parameters
2376
+
2377
+ :param name: attribute name
2378
+ :type name: :obj:`str`
2379
+ :returns value: attribute value
2380
+ :rtype value: :obj:`any`
2381
+ """
2382
+ if hasattr(self._tparent, "get_attr_value"):
2383
+ return self._tparent.get_attr_value(name)
@@ -1662,6 +1662,14 @@ class H5PYAttributeManager(filewriter.FTAttributeManager):
1662
1662
  """
1663
1663
  return self._h5object.keys()
1664
1664
 
1665
+ def _names(self):
1666
+ """ key values
1667
+
1668
+ :returns: attribute names
1669
+ :rtype: :obj:`list` <:obj:`str`>
1670
+ """
1671
+ return self.names()
1672
+
1665
1673
  def reopen(self):
1666
1674
  """ reopen field
1667
1675
  """