nxstools 4.28.1__tar.gz → 4.32.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 (454) hide show
  1. {nxstools-4.28.1 → nxstools-4.32.0}/.ci/install.sh +5 -5
  2. {nxstools-4.28.1 → nxstools-4.32.0}/.github/workflows/tests.yml +1 -1
  3. {nxstools-4.28.1 → nxstools-4.32.0}/ChangeLog +34 -0
  4. {nxstools-4.28.1/nxstools.egg-info → nxstools-4.32.0}/PKG-INFO +3 -3
  5. {nxstools-4.28.1 → nxstools-4.32.0}/README.rst +2 -2
  6. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/filewriter.py +3 -3
  7. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/h5cppwriter.py +141 -58
  8. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/h5pywriter.py +150 -59
  9. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/h5rediswriter.py +331 -91
  10. nxstools-4.32.0/nxstools/pyeval/pilcvds.py +113 -0
  11. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/release.py +1 -1
  12. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/__init__.py +68 -0
  13. nxstools-4.32.0/nxstools/xmltemplates/collection_description.ds.xml +6 -0
  14. nxstools-4.32.0/nxstools/xmltemplates/collection_identifier.ds.xml +6 -0
  15. nxstools-4.32.0/nxstools/xmltemplates/defaultcollection.xml +10 -0
  16. nxstools-4.32.0/nxstools/xmltemplates/defaultsampleidentifier.xml +10 -0
  17. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/lambda.xml +1 -5
  18. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/lambda2m.xml +1 -5
  19. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/lambdavds.xml +1 -5
  20. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/lambdavdsnm.xml +1 -5
  21. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/pilc.xml +1 -1
  22. nxstools-4.32.0/nxstools/xmltemplates/pilcvds.xml +115 -0
  23. nxstools-4.32.0/nxstools/xmltemplates/pilcvds4.xml +107 -0
  24. nxstools-4.32.0/nxstools/xmltemplates/pilcvds_attrmap.ds.xml +26 -0
  25. nxstools-4.32.0/nxstools/xmltemplates/pilcvds_countermap.ds.xml +14 -0
  26. nxstools-4.32.0/nxstools/xmltemplates/pilcvds_encoder1map.ds.xml +14 -0
  27. nxstools-4.32.0/nxstools/xmltemplates/pilcvds_encoder2map.ds.xml +14 -0
  28. nxstools-4.32.0/nxstools/xmltemplates/pilcvds_encoder3map.ds.xml +14 -0
  29. nxstools-4.32.0/nxstools/xmltemplates/pilcvds_encoder4map.ds.xml +14 -0
  30. nxstools-4.32.0/nxstools/xmltemplates/pilcvds_encoder5map.ds.xml +14 -0
  31. nxstools-4.32.0/nxstools/xmltemplates/sample_identifier.ds.xml +7 -0
  32. {nxstools-4.28.1 → nxstools-4.32.0/nxstools.egg-info}/PKG-INFO +3 -3
  33. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools.egg-info/SOURCES.txt +15 -0
  34. {nxstools-4.28.1 → nxstools-4.32.0}/test/H5CppRedisWriter_test.py +110 -0
  35. {nxstools-4.28.1 → nxstools-4.32.0}/test/H5CppWriter_test.py +110 -0
  36. {nxstools-4.28.1 → nxstools-4.32.0}/test/H5PYWriter_test.py +110 -0
  37. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateOnlineCPFS_test.py +9 -39
  38. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateStdCompFS_test.py +10 -6
  39. {nxstools-4.28.1 → nxstools-4.32.0}/test/checks.py +4 -1
  40. {nxstools-4.28.1 → nxstools-4.32.0}/.ci/debian10_py2/Dockerfile +0 -0
  41. {nxstools-4.28.1 → nxstools-4.32.0}/.ci/debian10_py3/Dockerfile +0 -0
  42. {nxstools-4.28.1 → nxstools-4.32.0}/.ci/debian11_py3/Dockerfile +0 -0
  43. {nxstools-4.28.1 → nxstools-4.32.0}/.ci/debian12_py3/Dockerfile +0 -0
  44. {nxstools-4.28.1 → nxstools-4.32.0}/.ci/debian9_py2/Dockerfile +0 -0
  45. {nxstools-4.28.1 → nxstools-4.32.0}/.ci/debian9_py3/Dockerfile +0 -0
  46. {nxstools-4.28.1 → nxstools-4.32.0}/.ci/run.sh +0 -0
  47. {nxstools-4.28.1 → nxstools-4.32.0}/.ci/ubuntu18.04_py2/Dockerfile +0 -0
  48. {nxstools-4.28.1 → nxstools-4.32.0}/.ci/ubuntu18.04_py3/Dockerfile +0 -0
  49. {nxstools-4.28.1 → nxstools-4.32.0}/.ci/ubuntu20.04_py3/Dockerfile +0 -0
  50. {nxstools-4.28.1 → nxstools-4.32.0}/.ci/ubuntu22.04_py3/Dockerfile +0 -0
  51. {nxstools-4.28.1 → nxstools-4.32.0}/.ci/ubuntu23.04_py3/Dockerfile +0 -0
  52. {nxstools-4.28.1 → nxstools-4.32.0}/.ci/ubuntu23.10_py3/Dockerfile +0 -0
  53. {nxstools-4.28.1 → nxstools-4.32.0}/.ci/ubuntu24.04_py3/Dockerfile +0 -0
  54. {nxstools-4.28.1 → nxstools-4.32.0}/.ci/ubuntu24.10_py3/Dockerfile +0 -0
  55. {nxstools-4.28.1 → nxstools-4.32.0}/.flake8 +0 -0
  56. {nxstools-4.28.1 → nxstools-4.32.0}/.gitignore +0 -0
  57. {nxstools-4.28.1 → nxstools-4.32.0}/COPYRIGHT +0 -0
  58. {nxstools-4.28.1 → nxstools-4.32.0}/MANIFEST.in +0 -0
  59. {nxstools-4.28.1 → nxstools-4.32.0}/doc/Makefile +0 -0
  60. {nxstools-4.28.1 → nxstools-4.32.0}/doc/conf.py +0 -0
  61. {nxstools-4.28.1 → nxstools-4.32.0}/doc/index.rst +0 -0
  62. {nxstools-4.28.1 → nxstools-4.32.0}/doc/make.bat +0 -0
  63. {nxstools-4.28.1 → nxstools-4.32.0}/doc/nxscollect.rst +0 -0
  64. {nxstools-4.28.1 → nxstools-4.32.0}/doc/nxsconfig.rst +0 -0
  65. {nxstools-4.28.1 → nxstools-4.32.0}/doc/nxscreate.rst +0 -0
  66. {nxstools-4.28.1 → nxstools-4.32.0}/doc/nxsdata.rst +0 -0
  67. {nxstools-4.28.1 → nxstools-4.32.0}/doc/nxsetup.rst +0 -0
  68. {nxstools-4.28.1 → nxstools-4.32.0}/doc/nxsfileinfo.rst +0 -0
  69. {nxstools-4.28.1 → nxstools-4.32.0}/doc/nxstools.rst +0 -0
  70. {nxstools-4.28.1 → nxstools-4.32.0}/man/nxscollect.1 +0 -0
  71. {nxstools-4.28.1 → nxstools-4.32.0}/man/nxsconfig.1 +0 -0
  72. {nxstools-4.28.1 → nxstools-4.32.0}/man/nxscreate.1 +0 -0
  73. {nxstools-4.28.1 → nxstools-4.32.0}/man/nxsdata.1 +0 -0
  74. {nxstools-4.28.1 → nxstools-4.32.0}/man/nxsetup.1 +0 -0
  75. {nxstools-4.28.1 → nxstools-4.32.0}/man/nxsfileinfo.1 +0 -0
  76. {nxstools-4.28.1 → nxstools-4.32.0}/man/nxstools.1 +0 -0
  77. {nxstools-4.28.1 → nxstools-4.32.0}/nxscollect +0 -0
  78. {nxstools-4.28.1 → nxstools-4.32.0}/nxsconfig +0 -0
  79. {nxstools-4.28.1 → nxstools-4.32.0}/nxscreate +0 -0
  80. {nxstools-4.28.1 → nxstools-4.32.0}/nxsdata +0 -0
  81. {nxstools-4.28.1 → nxstools-4.32.0}/nxsetup +0 -0
  82. {nxstools-4.28.1 → nxstools-4.32.0}/nxsfileinfo +0 -0
  83. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/__init__.py +0 -0
  84. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/filenamegenerator.py +0 -0
  85. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/nxsargparser.py +0 -0
  86. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/nxscollect.py +0 -0
  87. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/nxsconfig.py +0 -0
  88. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/nxscreate.py +0 -0
  89. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/nxscreator.py +0 -0
  90. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/nxsdata.py +0 -0
  91. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/nxsdevicetools.py +0 -0
  92. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/nxsetup.py +0 -0
  93. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/nxsfileinfo.py +0 -0
  94. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/nxsfileparser.py +0 -0
  95. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/nxsparser.py +0 -0
  96. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/nxsxml.py +0 -0
  97. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/ontology/__init__.py +0 -0
  98. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/ontology/ontology.json +0 -0
  99. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/pyeval/__init__.py +0 -0
  100. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/pyeval/absorber.py +0 -0
  101. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/pyeval/beamtimeid.py +0 -0
  102. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/pyeval/cobold.py +0 -0
  103. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/pyeval/common.py +0 -0
  104. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/pyeval/dalsa.py +0 -0
  105. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/pyeval/dalsavds.py +0 -0
  106. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/pyeval/datasignal.py +0 -0
  107. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/pyeval/dcm.py +0 -0
  108. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/pyeval/eigerdectris.py +0 -0
  109. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/pyeval/lambdavds.py +0 -0
  110. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/pyeval/limaccd.py +0 -0
  111. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/pyeval/lmbd.py +0 -0
  112. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/pyeval/marccd.py +0 -0
  113. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/pyeval/minipix.py +0 -0
  114. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/pyeval/mssar.py +0 -0
  115. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/pyeval/mythen.py +0 -0
  116. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/pyeval/pco.py +0 -0
  117. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/pyeval/pe.py +0 -0
  118. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/pyeval/pilatus.py +0 -0
  119. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/pyeval/pilc.py +0 -0
  120. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/pyeval/qbpm.py +0 -0
  121. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/pyeval/scdataset.py +0 -0
  122. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/pyeval/secop.py +0 -0
  123. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/pyeval/tangovimba.py +0 -0
  124. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/pyeval/timestamp.py +0 -0
  125. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/pyeval/xspress3.py +0 -0
  126. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/redisutils.py +0 -0
  127. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/absorber.xml +0 -0
  128. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/absorber_foil.ds.xml +0 -0
  129. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/absorber_thickness.ds.xml +0 -0
  130. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/beamstop.xml +0 -0
  131. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/beamtime_filename.ds.xml +0 -0
  132. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/beamtime_id.ds.xml +0 -0
  133. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/beamtimefname.ds.xml +0 -0
  134. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/beamtimefname.xml +0 -0
  135. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/beamtimeid.ds.xml +0 -0
  136. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/beamtimeid.xml +0 -0
  137. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/chcut.xml +0 -0
  138. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/chcut_crystal.ds.xml +0 -0
  139. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/chcut_unitcalibration.ds.xml +0 -0
  140. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/chemical_formula.ds.xml +0 -0
  141. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/client_start_time.ds.xml +0 -0
  142. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/cobold.xml +0 -0
  143. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/coboldhisto.xml +0 -0
  144. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/coboldhisto_timeofflight.ds.xml +0 -0
  145. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/collect2.xml +0 -0
  146. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/collect3.xml +0 -0
  147. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/collect4.xml +0 -0
  148. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/collect5.xml +0 -0
  149. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/collect6.xml +0 -0
  150. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/common2_common.ds.xml +0 -0
  151. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/common3_common.ds.xml +0 -0
  152. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/dalsa.xml +0 -0
  153. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/dalsa_external_data.ds.xml +0 -0
  154. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/dalsa_nxdata.ds.xml +0 -0
  155. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/dalsavds.xml +0 -0
  156. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/dalsavds_filestartnum_cb.ds.xml +0 -0
  157. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/dalsavds_nrexposedframes_cb.ds.xml +0 -0
  158. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/dalsavds_nxdata.ds.xml +0 -0
  159. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/dalsavds_triggermode_cb.ds.xml +0 -0
  160. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/dataaxessignal.xml +0 -0
  161. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/datasignal.xml +0 -0
  162. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/dcm.xml +0 -0
  163. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/dcm_crystal.ds.xml +0 -0
  164. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/dcm_reflection.ds.xml +0 -0
  165. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/dcm_unitcalibration.ds.xml +0 -0
  166. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/default.xml +0 -0
  167. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/defaultaxes.ds.xml +0 -0
  168. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/defaultinstrument.xml +0 -0
  169. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/defaultsample.xml +0 -0
  170. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/defaultsignal.ds.xml +0 -0
  171. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/description.xml +0 -0
  172. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/descriptiontext.xml +0 -0
  173. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/detectorlive.xml +0 -0
  174. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eiger1m16vds.xml +0 -0
  175. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eiger1m16vds_description_cb.ds.xml +0 -0
  176. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eiger1m16vds_nbimages_cb.ds.xml +0 -0
  177. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eiger1m16vds_stepindex.ds.xml +0 -0
  178. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eiger1m16vds_triggermode_cb.ds.xml +0 -0
  179. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eiger1m32vds.xml +0 -0
  180. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eiger1m32vds_description_cb.ds.xml +0 -0
  181. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eiger1m32vds_nbimages_cb.ds.xml +0 -0
  182. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eiger1m32vds_stepindex.ds.xml +0 -0
  183. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eiger1m32vds_triggermode_cb.ds.xml +0 -0
  184. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eiger4m16vds.xml +0 -0
  185. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eiger4m16vds_description_cb.ds.xml +0 -0
  186. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eiger4m16vds_nbimages_cb.ds.xml +0 -0
  187. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eiger4m16vds_stepindex.ds.xml +0 -0
  188. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eiger4m16vds_triggermode_cb.ds.xml +0 -0
  189. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eiger4m32vds.xml +0 -0
  190. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eiger4m32vds_description_cb.ds.xml +0 -0
  191. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eiger4m32vds_nbimages_cb.ds.xml +0 -0
  192. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eiger4m32vds_stepindex.ds.xml +0 -0
  193. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eiger4m32vds_triggermode_cb.ds.xml +0 -0
  194. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eiger9m16vds.xml +0 -0
  195. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eiger9m16vds_description_cb.ds.xml +0 -0
  196. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eiger9m16vds_nbimages_cb.ds.xml +0 -0
  197. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eiger9m16vds_stepindex.ds.xml +0 -0
  198. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eiger9m16vds_triggermode_cb.ds.xml +0 -0
  199. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eiger9m32vds.xml +0 -0
  200. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eiger9m32vds_description_cb.ds.xml +0 -0
  201. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eiger9m32vds_nbimages_cb.ds.xml +0 -0
  202. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eiger9m32vds_stepindex.ds.xml +0 -0
  203. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eiger9m32vds_triggermode_cb.ds.xml +0 -0
  204. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eigerdectris.xml +0 -0
  205. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eigerdectris_description_cb.ds.xml +0 -0
  206. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eigerdectris_nbimages_cb.ds.xml +0 -0
  207. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eigerdectris_stepindex.ds.xml +0 -0
  208. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eigerdectris_triggermode_cb.ds.xml +0 -0
  209. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eigerdectrismesh.xml +0 -0
  210. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eigerdectrismesh_description_cb.ds.xml +0 -0
  211. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eigerdectrismesh_nbimages_cb.ds.xml +0 -0
  212. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eigerdectrismesh_stepindex.ds.xml +0 -0
  213. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/eigerdectrismesh_triggermode_cb.ds.xml +0 -0
  214. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/empty.xml +0 -0
  215. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/end_time.ds.xml +0 -0
  216. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/experiment_description.ds.xml +0 -0
  217. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/groupsecop.ds.xml +0 -0
  218. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/groupsecop_time.ds.xml +0 -0
  219. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/keithley.xml +0 -0
  220. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/lambda2m_m1_external_data.ds.xml +0 -0
  221. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/lambda2m_m1_nxdata.ds.xml +0 -0
  222. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/lambda2m_m2_external_data.ds.xml +0 -0
  223. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/lambda2m_m2_nxdata.ds.xml +0 -0
  224. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/lambda2m_m3_external_data.ds.xml +0 -0
  225. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/lambda2m_m3_nxdata.ds.xml +0 -0
  226. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/lambda_external_data.ds.xml +0 -0
  227. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/lambda_nxdata.ds.xml +0 -0
  228. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/lambdavds_description.ds.xml +0 -0
  229. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/lambdavds_framenumbers_cb.ds.xml +0 -0
  230. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/lambdavds_nxdata.ds.xml +0 -0
  231. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/lambdavds_savefilename_cb.ds.xml +0 -0
  232. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/lambdavds_triggermode_cb.ds.xml +0 -0
  233. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/lambdavdsnm_nxdata.ds.xml +0 -0
  234. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/lambdavdsnm_triggermode_cb.ds.xml +0 -0
  235. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/limaccd.xml +0 -0
  236. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/limaccd_description.ds.xml +0 -0
  237. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/limaccd_filestartnum_cb.ds.xml +0 -0
  238. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/limaccd_postrun.ds.xml +0 -0
  239. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/limaccd_xpixelsize.ds.xml +0 -0
  240. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/limaccd_ypixelsize.ds.xml +0 -0
  241. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/limaccdvds.xml +0 -0
  242. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/limaccdvds_description.ds.xml +0 -0
  243. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/limaccdvds_filestartnum_cb.ds.xml +0 -0
  244. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/limaccdvds_postrun.ds.xml +0 -0
  245. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/limaccdvds_xpixelsize.ds.xml +0 -0
  246. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/limaccdvds_ypixelsize.ds.xml +0 -0
  247. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/maia.xml +0 -0
  248. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/maiadimension.xml +0 -0
  249. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/maiaflux.xml +0 -0
  250. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/marccd.xml +0 -0
  251. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/marccd_postrun.ds.xml +0 -0
  252. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/mcaxia.xml +0 -0
  253. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/minipix.xml +0 -0
  254. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/minipix_description.ds.xml +0 -0
  255. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/minipix_framenumbers_cb.ds.xml +0 -0
  256. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/minipix_nxdata.ds.xml +0 -0
  257. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/minipix_savefilename_cb.ds.xml +0 -0
  258. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/minipix_triggermode_cb.ds.xml +0 -0
  259. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/msnsar_env.ds.xml +0 -0
  260. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/mssar_env.ds.xml +0 -0
  261. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/mythen.xml +0 -0
  262. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/mythen2.xml +0 -0
  263. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/mythen_filestartnumber.ds.xml +0 -0
  264. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/mythen_postrun.ds.xml +0 -0
  265. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/nexdatas_configuration.ds.xml +0 -0
  266. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/nexdatas_version.ds.xml +0 -0
  267. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/parametercopymap.xml +0 -0
  268. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/pco.xml +0 -0
  269. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/pco_description.ds.xml +0 -0
  270. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/pco_filestartnum_cb.ds.xml +0 -0
  271. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/pco_postrun.ds.xml +0 -0
  272. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/perkinelmerdetector.xml +0 -0
  273. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/perkinelmerdetector_description.ds.xml +0 -0
  274. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/perkinelmerdetector_fileindex_cb.ds.xml +0 -0
  275. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/perkinelmerdetector_postrun.ds.xml +0 -0
  276. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/pilatus.xml +0 -0
  277. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/pilatus100k_description.ds.xml +0 -0
  278. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/pilatus1m_description.ds.xml +0 -0
  279. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/pilatus2m_description.ds.xml +0 -0
  280. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/pilatus300k_description.ds.xml +0 -0
  281. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/pilatus6m_description.ds.xml +0 -0
  282. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/pilatus_description.ds.xml +0 -0
  283. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/pilatus_filestartnum_cb.ds.xml +0 -0
  284. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/pilatus_mxparameters_cb.ds.xml +0 -0
  285. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/pilatus_postrun.ds.xml +0 -0
  286. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/pilc_triggermode_cb.ds.xml +0 -0
  287. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/pilctimeid.xml +0 -0
  288. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/pilctimeid_triggermode_cb.ds.xml +0 -0
  289. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/pinhole.xml +0 -0
  290. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/pointdet.xml +0 -0
  291. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/qbpm.xml +0 -0
  292. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/qbpm_foil.ds.xml +0 -0
  293. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/sample_description.ds.xml +0 -0
  294. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/sample_env_links.ds.xml +0 -0
  295. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/sample_log_links.ds.xml +0 -0
  296. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/sample_name.ds.xml +0 -0
  297. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/sample_nxdata.ds.xml +0 -0
  298. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/sampledescription.xml +0 -0
  299. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/sampledescriptiontext.xml +0 -0
  300. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/sampleenv_nxdata.ds.xml +0 -0
  301. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/samplehkl.xml +0 -0
  302. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/sardanaenvironment.ds.xml +0 -0
  303. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/secop.ds.xml +0 -0
  304. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/secop_time.ds.xml +0 -0
  305. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/signal_axes.ds.xml +0 -0
  306. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/signal_name.ds.xml +0 -0
  307. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/signalname.ds.xml +0 -0
  308. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/singlesecop.ds.xml +0 -0
  309. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/singlesecop_time.ds.xml +0 -0
  310. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/slit.xml +0 -0
  311. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/source.xml +0 -0
  312. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/start_time.ds.xml +0 -0
  313. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/start_timestamp.ds.xml +0 -0
  314. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/starttime.ds.xml +0 -0
  315. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/starttime.xml +0 -0
  316. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/tango.ds.xml +0 -0
  317. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/tangovimba.xml +0 -0
  318. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/tangovimba_external_data.ds.xml +0 -0
  319. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/tangovimba_nxdata.ds.xml +0 -0
  320. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/title.ds.xml +0 -0
  321. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/undulator.xml +0 -0
  322. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/xspress3.xml +0 -0
  323. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools/xmltemplates/xspress3_triggermode_cb.ds.xml +0 -0
  324. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools.egg-info/dependency_links.txt +0 -0
  325. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools.egg-info/not-zip-safe +0 -0
  326. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools.egg-info/requires.txt +0 -0
  327. {nxstools-4.28.1 → nxstools-4.32.0}/nxstools.egg-info/top_level.txt +0 -0
  328. {nxstools-4.28.1 → nxstools-4.32.0}/setup.cfg +0 -0
  329. {nxstools-4.28.1 → nxstools-4.32.0}/setup.py +0 -0
  330. {nxstools-4.28.1 → nxstools-4.32.0}/test/FileWriterH5CppH5PY_test.py +0 -0
  331. {nxstools-4.28.1 → nxstools-4.32.0}/test/FileWriterH5Cpp_test.py +0 -0
  332. {nxstools-4.28.1 → nxstools-4.32.0}/test/FileWriterH5PY_test.py +0 -0
  333. {nxstools-4.28.1 → nxstools-4.32.0}/test/MacroServer2 +0 -0
  334. {nxstools-4.28.1 → nxstools-4.32.0}/test/MacroServer3 +0 -0
  335. {nxstools-4.28.1 → nxstools-4.32.0}/test/MacroServerSetUp.py +0 -0
  336. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCollectH5Cpp_test.py +0 -0
  337. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCollectH5PY_test.py +0 -0
  338. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCollect_test.py +0 -0
  339. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSConfig_test.py +0 -0
  340. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateClientDSDB2_test.py +0 -0
  341. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateClientDSDBR2_test.py +0 -0
  342. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateClientDSDBR_test.py +0 -0
  343. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateClientDSDB_test.py +0 -0
  344. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateClientDSFS2_test.py +0 -0
  345. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateClientDSFS3_test.py +0 -0
  346. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateClientDSFS_test.py +0 -0
  347. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateCompDB2_test.py +0 -0
  348. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateCompDBR2_test.py +0 -0
  349. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateCompDBR_test.py +0 -0
  350. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateCompDB_test.py +0 -0
  351. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateCompFS2_test.py +0 -0
  352. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateCompFS3_test.py +0 -0
  353. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateCompFS_test.py +0 -0
  354. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateCompare_test.py +0 -0
  355. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateDeviceDSDB2_test.py +0 -0
  356. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateDeviceDSDBR2_test.py +0 -0
  357. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateDeviceDSDBR_test.py +0 -0
  358. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateDeviceDSDB_test.py +0 -0
  359. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateDeviceDSFS2_test.py +0 -0
  360. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateDeviceDSFS3_test.py +0 -0
  361. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateDeviceDSFS4_test.py +0 -0
  362. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateDeviceDSFS_test.py +0 -0
  363. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateOnlineCPDB2_test.py +0 -0
  364. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateOnlineCPDBR2_test.py +0 -0
  365. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateOnlineCPDBR_test.py +0 -0
  366. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateOnlineCPDB_test.py +0 -0
  367. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateOnlineCPFS2_test.py +0 -0
  368. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateOnlineCPFS3_test.py +0 -0
  369. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateOnlineDSDB2_test.py +0 -0
  370. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateOnlineDSDBE2_test.py +0 -0
  371. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateOnlineDSDBE_test.py +0 -0
  372. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateOnlineDSDBR2_test.py +0 -0
  373. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateOnlineDSDBR_test.py +0 -0
  374. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateOnlineDSDB_test.py +0 -0
  375. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateOnlineDSFS2_test.py +0 -0
  376. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateOnlineDSFS3_test.py +0 -0
  377. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateOnlineDSFS_test.py +0 -0
  378. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreatePoolDSDB2_test.py +0 -0
  379. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreatePoolDSDBR2_test.py +0 -0
  380. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreatePoolDSDBR_test.py +0 -0
  381. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreatePoolDSDB_test.py +0 -0
  382. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreatePoolDSFS2_test.py +0 -0
  383. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreatePoolDSFS3_test.py +0 -0
  384. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreatePoolDSFS_test.py +0 -0
  385. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreatePyEvalH5Cpp_test.py +0 -0
  386. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreatePyEvalH5PY_test.py +0 -0
  387. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateSECoPCPDB_test.py +0 -0
  388. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateSECoPCPFS_test.py +0 -0
  389. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateStdCompDB2_test.py +0 -0
  390. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateStdCompDBE2_test.py +0 -0
  391. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateStdCompDBE_test.py +0 -0
  392. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateStdCompDBR2_test.py +0 -0
  393. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateStdCompDBR_test.py +0 -0
  394. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateStdCompDB_test.py +0 -0
  395. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateStdCompFS2_test.py +0 -0
  396. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateStdCompFS3_test.py +0 -0
  397. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateTangoDSDB2_test.py +0 -0
  398. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateTangoDSDBR2_test.py +0 -0
  399. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateTangoDSDBR_test.py +0 -0
  400. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateTangoDSDB_test.py +0 -0
  401. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateTangoDSFS2_test.py +0 -0
  402. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateTangoDSFS3_test.py +0 -0
  403. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreateTangoDSFS_test.py +0 -0
  404. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSCreate_test.py +0 -0
  405. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSData_test.py +0 -0
  406. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSFileInfoH5Cpp_test.py +0 -0
  407. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSFileInfoH5PY_test.py +0 -0
  408. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSFileInfo_test.py +0 -0
  409. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSTools_test.py +0 -0
  410. {nxstools-4.28.1 → nxstools-4.32.0}/test/NXSetUp_test.py +0 -0
  411. {nxstools-4.28.1 → nxstools-4.32.0}/test/ServerSetUp.py +0 -0
  412. {nxstools-4.28.1 → nxstools-4.32.0}/test/TestPool.py +0 -0
  413. {nxstools-4.28.1 → nxstools-4.32.0}/test/TestPoolSetUp.py +0 -0
  414. {nxstools-4.28.1 → nxstools-4.32.0}/test/TestServer2 +0 -0
  415. {nxstools-4.28.1 → nxstools-4.32.0}/test/TestServer3 +0 -0
  416. {nxstools-4.28.1 → nxstools-4.32.0}/test/TestServerSetUp.py +0 -0
  417. {nxstools-4.28.1 → nxstools-4.32.0}/test/WriterSetUp.py +0 -0
  418. {nxstools-4.28.1 → nxstools-4.32.0}/test/__init__.py +0 -0
  419. {nxstools-4.28.1 → nxstools-4.32.0}/test/__main__.py +0 -0
  420. {nxstools-4.28.1 → nxstools-4.32.0}/test/files/empty.json +0 -0
  421. {nxstools-4.28.1 → nxstools-4.32.0}/test/files/empty1.json +0 -0
  422. {nxstools-4.28.1 → nxstools-4.32.0}/test/files/metadata-group-map.lst +0 -0
  423. {nxstools-4.28.1 → nxstools-4.32.0}/test/files/metadata-group-map2.lst +0 -0
  424. {nxstools-4.28.1 → nxstools-4.32.0}/test/files/mymeta2_00011.fio +0 -0
  425. {nxstools-4.28.1 → nxstools-4.32.0}/test/files/mys0_13_1_00190.fio +0 -0
  426. {nxstools-4.28.1 → nxstools-4.32.0}/test/files/myscan_00034.scan.json +0 -0
  427. {nxstools-4.28.1 → nxstools-4.32.0}/test/files/myscan_00034b.scan.json +0 -0
  428. {nxstools-4.28.1 → nxstools-4.32.0}/test/files/myscan_00035.scan.json +0 -0
  429. {nxstools-4.28.1 → nxstools-4.32.0}/test/files/myuni.xml +0 -0
  430. {nxstools-4.28.1 → nxstools-4.32.0}/test/files/myuni2.xml +0 -0
  431. {nxstools-4.28.1 → nxstools-4.32.0}/test/files/myunidy.xml +0 -0
  432. {nxstools-4.28.1 → nxstools-4.32.0}/test/files/myunidy2.xml +0 -0
  433. {nxstools-4.28.1 → nxstools-4.32.0}/test/files/secop.conf +0 -0
  434. {nxstools-4.28.1 → nxstools-4.32.0}/test/files/secop2.conf +0 -0
  435. {nxstools-4.28.1 → nxstools-4.32.0}/test/files/test_file.cbf +0 -0
  436. {nxstools-4.28.1 → nxstools-4.32.0}/test/files/test_file.tif +0 -0
  437. {nxstools-4.28.1 → nxstools-4.32.0}/test/files/test_file0.tif +0 -0
  438. {nxstools-4.28.1 → nxstools-4.32.0}/test/files/test_file1.tif +0 -0
  439. {nxstools-4.28.1 → nxstools-4.32.0}/test/files/test_file2.tif +0 -0
  440. {nxstools-4.28.1 → nxstools-4.32.0}/test/files/test_file3.tif +0 -0
  441. {nxstools-4.28.1 → nxstools-4.32.0}/test/files/test_file4.tif +0 -0
  442. {nxstools-4.28.1 → nxstools-4.32.0}/test/files/test_file5.tif +0 -0
  443. {nxstools-4.28.1 → nxstools-4.32.0}/test/files/tn.png +0 -0
  444. {nxstools-4.28.1 → nxstools-4.32.0}/test/main.py +0 -0
  445. {nxstools-4.28.1 → nxstools-4.32.0}/test/nxsextrasp00/__init__.py +0 -0
  446. {nxstools-4.28.1 → nxstools-4.32.0}/test/nxsextrasp00/collect4.xml +0 -0
  447. {nxstools-4.28.1 → nxstools-4.32.0}/test/nxsextrasp00/common4_common.ds.xml +0 -0
  448. {nxstools-4.28.1 → nxstools-4.32.0}/test/nxsextrasp00/mymca.xml +0 -0
  449. {nxstools-4.28.1 → nxstools-4.32.0}/tests/simpleXMLAScan.py +0 -0
  450. {nxstools-4.28.1 → nxstools-4.32.0}/tests/simpleXMLCScan.py +0 -0
  451. {nxstools-4.28.1 → nxstools-4.32.0}/tests/simpleXMLScan.py +0 -0
  452. {nxstools-4.28.1 → nxstools-4.32.0}/tests/testNXSxml.py +0 -0
  453. {nxstools-4.28.1 → nxstools-4.32.0}/tests/testXMLCreator.py +0 -0
  454. {nxstools-4.28.1 → nxstools-4.32.0}/tests/testXMLtrigger.py +0 -0
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env bash
2
2
 
3
3
  # workaround for a bug in debian9, i.e. starting mysql hangs
4
- if [ "$1" = "debian11" ] || [ "$1" = "debian12tg10" ] || [ "$1" = "debian12" ] || [ "$1" = "debian13" ] || [ "$1" = "ubuntu24.04" ] || [ "$1" = "ubuntu24.10" ] || [ "$1" = "ubuntu25.04" ]; then
4
+ if [ "$1" = "debian11" ] || [ "$1" = "debian12tg10" ] || [ "$1" = "debian12" ] || [ "$1" = "debian13" ] || [ "$1" = "ubuntu24.04" ] || [ "$1" = "ubuntu24.10" ] || [ "$1" = "ubuntu25.04" ] || [ "$1" = "ubuntu25.10" ]; then
5
5
  docker exec --user root ndts service mariadb restart
6
6
  else
7
7
  docker exec --user root ndts service mysql stop
@@ -15,7 +15,7 @@ fi
15
15
 
16
16
  echo "install tango-common"
17
17
  docker exec --user root ndts /bin/bash -c 'apt-get -qq update; export DEBIAN_FRONTEND=noninteractive; apt-get -qq install -y tango-common; sleep 10'
18
- if [ "$1" = "ubuntu24.04" ] || [ "$1" = "ubuntu24.10" ] || [ "$1" = "ubuntu25.04" ]; then
18
+ if [ "$1" = "ubuntu24.04" ] || [ "$1" = "ubuntu24.10" ] || [ "$1" = "ubuntu25.10" ] || [ "$1" = "ubuntu25.04" ]; then
19
19
  # docker exec --user tango ndts /bin/bash -c '/usr/lib/tango/DataBaseds 2 -ORBendPoint giop:tcp::10000 &'
20
20
  docker exec --user root ndts /bin/bash -c 'echo -e "[client]\nuser=root\npassword=rootpw" > /root/.my.cnf'
21
21
  docker exec --user root ndts /bin/bash -c 'echo -e "[client]\nuser=tango\nhost=localhost\npassword=rootpw" > /var/lib/tango/.my.cnf'
@@ -31,7 +31,7 @@ fi
31
31
  echo "install tango-db"
32
32
  docker exec --user root ndts /bin/bash -c 'apt-get -qq update; export DEBIAN_FRONTEND=noninteractive; apt-get -qq install -y tango-db; sleep 10'
33
33
  if [ "$?" -ne "0" ]; then exit 255; fi
34
- if [ "$1" = "ubuntu24.04" ] || [ "$1" = "ubuntu24.10" ] || [ "$1" = "ubuntu25.04" ]; then
34
+ if [ "$1" = "ubuntu24.04" ] || [ "$1" = "ubuntu24.10" ] || [ "$1" = "ubuntu25.10" ] || [ "$1" = "ubuntu25.04" ]; then
35
35
  docker exec --user tango ndts /usr/bin/mysql -e 'create database tango'
36
36
  docker exec --user tango ndts /bin/bash -c '/usr/bin/mysql tango < /usr/share/dbconfig-common/data/tango-db/install/mysql'
37
37
  fi
@@ -50,7 +50,7 @@ docker exec --user root ndts chown -R tango:tango .
50
50
 
51
51
  echo "install nxsconfigserver"
52
52
  docker exec --user root ndts /bin/sh -c 'export DEBIAN_FRONTEND=noninteractive; apt-get -qq update; apt-get -qq install -y nxsconfigserver-db; sleep 10'
53
- if [ "$1" = "ubuntu24.04" ] || [ "$1" = "ubuntu24.10" ] || [ "$1" = "ubuntu25.04" ]; then
53
+ if [ "$1" = "ubuntu24.04" ] || [ "$1" = "ubuntu24.10" ] || [ "$1" = "ubuntu25.10" ] || [ "$1" = "ubuntu25.04" ]; then
54
54
  docker exec --user root ndts /usr/bin/mysql -e 'GRANT ALL PRIVILEGES ON nxsconfig.* TO "tango"@"%" identified by "rootpw"'
55
55
  docker exec --user root ndts /usr/bin/mysql -e 'GRANT ALL PRIVILEGES ON nxsconfig.* TO "tango"@"localhost" identified by "rootpw"'
56
56
  docker exec --user root ndts /usr/bin/mysql -e 'FLUSH PRIVILEGES'
@@ -64,7 +64,7 @@ if [ "$2" = "2" ]; then
64
64
  docker exec --user root ndts /bin/sh -c 'apt-get -qq update; export DEBIAN_FRONTEND=noninteractive; apt-get -qq install -y python-pytango python-nxswriter nxswriter python-nxsconfigserver nxsconfigserver'
65
65
  else
66
66
  echo "install python3-pytango ..."
67
- if [ "$1" = "ubuntu24.04" ] || [ "$1" = "ubuntu24.10" ] || [ "$1" = "ubuntu25.04" ] || [ "$1" = "debian10" ] || [ "$1" = "ubuntu20.04" ] || [ "$1" = "ubuntu22.04" ] || [ "$1" = "ubuntu23.10" ] || [ "$1" = "ubuntu20.10" ] || [ "$1" = "debian11" ] || [ "$1" = "debian12" ] || [ "$1" = "debian12tg10" ] || [ "$1" = "debian13" ] ; then
67
+ if [ "$1" = "ubuntu24.04" ] || [ "$1" = "ubuntu24.10" ] || [ "$1" = "ubuntu25.04" ] || [ "$1" = "ubuntu25.10" ] || [ "$1" = "debian10" ] || [ "$1" = "ubuntu20.04" ] || [ "$1" = "ubuntu22.04" ] || [ "$1" = "ubuntu23.10" ] || [ "$1" = "ubuntu20.10" ] || [ "$1" = "debian11" ] || [ "$1" = "debian12" ] || [ "$1" = "debian12tg10" ] || [ "$1" = "debian13" ] ; then
68
68
  docker exec --user root ndts /bin/sh -c 'apt-get -qq update; export DEBIAN_FRONTEND=noninteractive; apt-get -qq install -y python3-tango python3-nxswriter nxswriter python3-nxsconfigserver nxsconfigserver'
69
69
  else
70
70
  docker exec --user root ndts /bin/sh -c 'apt-get -qq update; export DEBIAN_FRONTEND=noninteractive; apt-get -qq install -y python3-pytango python3-nxswriter nxswriter3 python3-nxsconfigserver nxsconfigserver3'
@@ -24,7 +24,7 @@ jobs:
24
24
  runs-on: ubuntu-latest
25
25
  strategy:
26
26
  matrix:
27
- os: [debian13, debian12tg10, debian12, debian11, ubuntu25.04, ubuntu24.04, ubuntu22.04]
27
+ os: [debian13, debian12tg10, debian12, debian11, ubuntu25.10, ubuntu24.04, ubuntu22.04]
28
28
  steps:
29
29
  - uses: actions/checkout@v2
30
30
  - uses: actions/setup-python@v2
@@ -1,3 +1,37 @@
1
+ 2025-11-10 Jan Kotanski <jankotan@gmail.com>
2
+ * avoid to recreate redis data store because of memory leak (#832)
3
+ * tagged as v4.32.0
4
+
5
+ 2025-11-07 Jan Kotanski <jankotan@gmail.com>
6
+ * skip stream creation for already existing streams (#828)
7
+ * remove compression_enabled and compression_shuffle (#831)
8
+ * tagged as v4.31.4
9
+
10
+ 2025-11-05 Jan Kotanski <jankotan@gmail.com>
11
+ * change NXsample/sample_identifier to NXsample/identifier field (#822)
12
+ * tagged as v4.31.3
13
+
14
+ 2025-11-04 Jan Kotanski <jankotan@gmail.com>
15
+ * change sample_identifier to nexus field (#822)
16
+ * tagged as v4.31.2
17
+
18
+ 2025-11-04 Jan Kotanski <jankotan@gmail.com>
19
+ * fix typo in defaultsampleidentifier component (#822)
20
+ * tagged as v4.31.1
21
+
22
+ 2025-11-04 Jan Kotanski <jankotan@gmail.com>
23
+ * add defaultsampleidentifier component (#822)
24
+ * tagged as v4.31.0
25
+
26
+ 2025-10-29 Jan Kotanski <jankotan@gmail.com>
27
+ * add defaultcollection component (#819)
28
+ * tagged as v4.30.0
29
+
30
+ 2025-10-23 Jan Kotanski <jankotan@gmail.com>
31
+ * add pilcvds component (#809)
32
+ * add support for h5file_detector (#812, #809)
33
+ * tagged as v4.29.0
34
+
1
35
  2025-10-13 Jan Kotanski <jankotan@gmail.com>
2
36
  * move virtual map list methods to h5py/h5cpp writers (#806)
3
37
  * tagged as v4.28.1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nxstools
3
- Version: 4.28.1
3
+ Version: 4.32.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
@@ -98,7 +98,7 @@ Extract sources and run
98
98
  Debian packages
99
99
  """""""""""""""
100
100
 
101
- Debian `trixie`, `bookworm`, `bullseye` or Ubuntu `plucky`, `noble`, `jammy` packages can be found in the HDRI repository.
101
+ Debian `trixie`, `bookworm`, `bullseye` or Ubuntu `questing`, `noble`, `jammy` packages can be found in the HDRI repository.
102
102
 
103
103
  To install the debian packages, add the PGP repository key
104
104
 
@@ -113,7 +113,7 @@ and then download the corresponding source list
113
113
  .. code-block:: console
114
114
 
115
115
  $ cd /etc/apt/sources.list.d
116
- $ wget http://repos.pni-hdri.de/trixie-pni-hdri.list
116
+ $ wget http://repos.pni-hdri.de/trixie-pni-hdri.sources
117
117
 
118
118
  To install nxstools scripts
119
119
 
@@ -70,7 +70,7 @@ Extract sources and run
70
70
  Debian packages
71
71
  """""""""""""""
72
72
 
73
- Debian `trixie`, `bookworm`, `bullseye` or Ubuntu `plucky`, `noble`, `jammy` packages can be found in the HDRI repository.
73
+ Debian `trixie`, `bookworm`, `bullseye` or Ubuntu `questing`, `noble`, `jammy` packages can be found in the HDRI repository.
74
74
 
75
75
  To install the debian packages, add the PGP repository key
76
76
 
@@ -85,7 +85,7 @@ and then download the corresponding source list
85
85
  .. code-block:: console
86
86
 
87
87
  $ cd /etc/apt/sources.list.d
88
- $ wget http://repos.pni-hdri.de/trixie-pni-hdri.list
88
+ $ wget http://repos.pni-hdri.de/trixie-pni-hdri.sources
89
89
 
90
90
  To install nxstools scripts
91
91
 
@@ -284,7 +284,7 @@ def virtual_field_layout(shape, dtype, maxshape=None, parent=None):
284
284
  if not wr:
285
285
  with writerlock:
286
286
  wr = writer
287
- return wr.virtual_field_layout(shape, dtype, maxshape)
287
+ return wr.virtual_field_layout(shape, dtype, maxshape, parent)
288
288
 
289
289
 
290
290
  def setwriter(wr):
@@ -786,13 +786,13 @@ class FTVirtualFieldLayout(FTObject):
786
786
 
787
787
  """ virtual field layout """
788
788
 
789
- def __init__(self, h5object=None):
789
+ def __init__(self, h5object=None, tparent=None):
790
790
  """ constructor
791
791
 
792
792
  :param h5object: h5 object
793
793
  :type h5object: :obj:`any`
794
794
  """
795
- FTObject.__init__(self, h5object)
795
+ FTObject.__init__(self, h5object, tparent)
796
796
 
797
797
  def __setitem__(self, key, source):
798
798
  """ add target field view to layout
@@ -91,27 +91,18 @@ def unlimited_selection(sel, shape):
91
91
  res = []
92
92
  for sl in sel:
93
93
  if hasattr(sl, "stop"):
94
- res.append(
95
- True if sl.stop in [unlimited()]
96
- else False)
94
+ res.append(True if sl.stop in [unlimited()] else False)
97
95
  elif hasattr(sl, "count"):
98
- res.append(
99
- True if sl.count in [unlimited()]
100
- else False)
96
+ res.append(True if sl.count in [unlimited()] else False)
101
97
  else:
102
- res.append(
103
- True if sl in [unlimited()]
104
- else False)
98
+ res.append(True if sl in [unlimited()] else False)
105
99
 
106
100
  elif hasattr(sel, "count"):
107
101
  res = []
108
102
  for ct in sel.count():
109
- res.append(
110
- True if ct in [unlimited()]
111
- else False)
103
+ res.append(True if ct in [unlimited()] else False)
112
104
  elif isinstance(sel, slice):
113
- res = [True if sel.stop in [unlimited()]
114
- else False]
105
+ res = [True if sel.stop in [unlimited()] else False]
115
106
 
116
107
  elif sel in [unlimited()]:
117
108
  res = [True]
@@ -128,7 +119,7 @@ def unlimited_selection(sel, shape):
128
119
  for si in range(lct):
129
120
  if res[si]:
130
121
  count[si] = h5cpp.dataspace.UNLIMITED
131
- # print("Hyperslab %s %s %s %s" % (offset, block, count, stride))
122
+ # print("Hyperslab1 %s %s %s %s" % (offset, block, count, stride))
132
123
  return h5cpp.dataspace.Hyperslab(
133
124
  offset=offset, block=block, count=count, stride=stride)
134
125
  else:
@@ -140,7 +131,7 @@ def _slice2selection(t, shape):
140
131
 
141
132
  :param t: slice tuple
142
133
  :type t: :obj:`tuple`
143
- :return shape: field shape
134
+ :param shape: field shape
144
135
  :type shape: :obj:`list` < :obj:`int` >
145
136
  :returns: hyperslab selection
146
137
  :rtype: :class:`h5cpp.dataspace.Hyperslab`
@@ -173,7 +164,7 @@ def _slice2selection(t, shape):
173
164
  stride[dm] = 1
174
165
  else:
175
166
  stride.append(1)
176
- # print("Hyperslab %s %s %s %s" % (offset, block, count, stride))
167
+ # print("Hyperslab2 %s %s %s %s" % (offset, block, count, stride))
177
168
  return h5cpp.dataspace.Hyperslab(
178
169
  offset=offset, block=block, count=count, stride=stride)
179
170
 
@@ -244,7 +235,7 @@ def _slice2selection(t, shape):
244
235
  stride.append(1)
245
236
  if jt < esize - 1:
246
237
  it += 1
247
- # print("Hyperslab %s %s %s %s" % (offset, block, count, stride))
238
+ # print("Hyperslab3 %s %s %s %s" % (offset, block, count, stride))
248
239
  if len(offset):
249
240
  return h5cpp.dataspace.Hyperslab(
250
241
  offset=offset, block=block, count=count, stride=stride)
@@ -567,7 +558,7 @@ def target_field_view(filename, fieldpath, shape,
567
558
  filename, fieldpath, shape, dtype, maxshape)
568
559
 
569
560
 
570
- def virtual_field_layout(shape, dtype, maxshape=None):
561
+ def virtual_field_layout(shape, dtype, maxshape=None, parent=None):
571
562
  """ creates a virtual field layout for a VDS file
572
563
 
573
564
  :param shape: shape
@@ -583,7 +574,7 @@ def virtual_field_layout(shape, dtype, maxshape=None):
583
574
  raise Exception("VDS not supported")
584
575
  return H5CppVirtualFieldLayout(
585
576
  h5cpp.property.VirtualDataMaps(),
586
- shape, dtype, maxshape)
577
+ shape, dtype, maxshape, parent)
587
578
 
588
579
 
589
580
  class H5CppFile(filewriter.FTFile):
@@ -1031,7 +1022,7 @@ class H5CppField(filewriter.FTField):
1031
1022
 
1032
1023
  :param h5object: h5 object
1033
1024
  :type h5object: :obj:`any`
1034
- :param tparent: treee parent
1025
+ :param tparent: tree parent
1035
1026
  :type tparent: :obj:`FTObject`
1036
1027
  """
1037
1028
  filewriter.FTField.__init__(self, h5object, tparent)
@@ -1321,7 +1312,7 @@ class H5CppLink(filewriter.FTLink):
1321
1312
 
1322
1313
  :param h5object: h5 object
1323
1314
  :type h5object: :obj:`any`
1324
- :param tparent: treee parent
1315
+ :param tparent: tree parent
1325
1316
  :type tparent: :obj:`FTObject`
1326
1317
  """
1327
1318
  filewriter.FTLink.__init__(self, h5object, tparent)
@@ -1420,7 +1411,8 @@ class H5CppVirtualFieldLayout(filewriter.FTVirtualFieldLayout):
1420
1411
 
1421
1412
  """ virtual field layout """
1422
1413
 
1423
- def __init__(self, h5object, shape, dtype=None, maxshape=None):
1414
+ def __init__(self, h5object, shape, dtype=None, maxshape=None,
1415
+ tparent=None):
1424
1416
  """ constructor
1425
1417
 
1426
1418
  :param h5object: h5 object
@@ -1432,7 +1424,7 @@ class H5CppVirtualFieldLayout(filewriter.FTVirtualFieldLayout):
1432
1424
  :param maxshape: shape
1433
1425
  :type maxshape: :obj:`list` < :obj:`int` >
1434
1426
  """
1435
- filewriter.FTVirtualFieldLayout.__init__(self, h5object)
1427
+ filewriter.FTVirtualFieldLayout.__init__(self, h5object, tparent)
1436
1428
  #: (:obj:`list` < :obj:`int` >) shape
1437
1429
  self.shape = shape
1438
1430
  # : (:obj:`str`): data type
@@ -1442,7 +1434,16 @@ class H5CppVirtualFieldLayout(filewriter.FTVirtualFieldLayout):
1442
1434
  #: (:obj:`list` <:obj:`dict` >) vmap list
1443
1435
  self.__vmaps = []
1444
1436
 
1445
- def __cureKeys(self, key):
1437
+ @classmethod
1438
+ def cure_keys(cls, key):
1439
+ """ cure keys
1440
+
1441
+ :param key: field key
1442
+ :type key: :class:`FTHyperslab` or :obj:`tuple` or :obj:`list`
1443
+ : or :obj:`int`
1444
+ :returns: field key
1445
+ :rtype: :class:`FTHyperslab` or :obj:`tuple`
1446
+ """
1446
1447
  tkey = []
1447
1448
  if isinstance(key, list):
1448
1449
  try:
@@ -1450,16 +1451,7 @@ class H5CppVirtualFieldLayout(filewriter.FTVirtualFieldLayout):
1450
1451
  except Exception:
1451
1452
  sk = []
1452
1453
  if len(sk) == 1 and sk[0] == 4:
1453
- offset = []
1454
- block = []
1455
- count = []
1456
- stride = []
1457
- for ky in key:
1458
- off, bl, cnt, std = ky
1459
- offset.append(off)
1460
- block.append(bl)
1461
- count.append(cnt)
1462
- stride.append(std)
1454
+ offset, block, count, stride = map(list, zip(*key))
1463
1455
  return filewriter.FTHyperslab(offset, block, count, stride)
1464
1456
  for ky in key:
1465
1457
  if isinstance(ky, list) and len(ky) > 0 and len(ky) < 4:
@@ -1472,17 +1464,107 @@ class H5CppVirtualFieldLayout(filewriter.FTVirtualFieldLayout):
1472
1464
  return tuple(tkey)
1473
1465
  return key
1474
1466
 
1475
- def process_target_field_views(self, parent):
1467
+ @classmethod
1468
+ def cure_shape(cls, vmaps, shape):
1469
+ """ cure shape from virtual map elements
1470
+
1471
+ :param vmaps: list of virtual map description
1472
+ :type vmaps: :obj:`list`<:obj:`dict`>
1473
+ :param shape: field shape
1474
+ :type shape: :obj:`list` < :obj:`int` >
1475
+ :returns: field shape
1476
+ :rtype: :obj:`list` < :obj:`int` >
1477
+ """
1478
+ # print("vmaps", vmaps, shape)
1479
+ if shape is None:
1480
+ return shape
1481
+ sizes = [(sh if sh > 1 else 0) for sh in shape]
1482
+ for vmap in vmaps:
1483
+ if "key" in vmap:
1484
+ key = vmap["key"]
1485
+ try:
1486
+ sk = list(set([len(ky) for ky in key]))
1487
+ except Exception:
1488
+ sk = []
1489
+ if len(sk) == 1 and sk[0] == 4:
1490
+ offset, block, count, stride = map(list, zip(*key))
1491
+ for si, sh in enumerate(shape):
1492
+ if sh < 2:
1493
+ if block[si] != unlimited() \
1494
+ and count[si] != unlimited() \
1495
+ and count[si] and block[si] and stride[si]:
1496
+ sizes[si] = max(
1497
+ sizes[si],
1498
+ offset[si] + stride[si] * [count[si] - 1]
1499
+ + block[si])
1500
+ else:
1501
+ sizes[si] = max(
1502
+ sizes[si], 1)
1503
+ else:
1504
+ eshape = vmap["shape"] if "shape" in vmap else []
1505
+
1506
+ for si, sh in enumerate(shape):
1507
+ if sh < 2:
1508
+ if isinstance(key, list) and len(key) > si \
1509
+ and isinstance(key[si], list) \
1510
+ and len(key[si]) > 0 and len(key[si]) < 4:
1511
+ sky = slice(*key[si])
1512
+ if sky.stop != unlimited():
1513
+ start = sky.start or 0
1514
+ stop = sky.stop or 0
1515
+ step = sky.step or 1
1516
+ size = (step * ((stop - start - 1) // step)
1517
+ + start) + 1
1518
+ sizes[si] = max(sizes[si], size)
1519
+ else:
1520
+ if si:
1521
+ sizes[si] = max(
1522
+ sizes[si],
1523
+ eshape[si]
1524
+ if len(eshape) > si else 1, 1)
1525
+ else:
1526
+ sizes[si] += max(
1527
+ eshape[si]
1528
+ if len(eshape) > si else 1, 1)
1529
+ else:
1530
+ if si:
1531
+ sizes[si] = max(
1532
+ sizes[si],
1533
+ eshape[si]
1534
+ if len(eshape) > si else 1, 1)
1535
+ else:
1536
+ sizes[si] += max(
1537
+ eshape[si]
1538
+ if len(eshape) > si else 1, 1)
1539
+ else:
1540
+ eshape = vmap["shape"] if "shape" in vmap else []
1541
+ for si, sh in enumerate(shape):
1542
+ if sh < 2:
1543
+ if si:
1544
+ sizes[si] = max(
1545
+ sizes[si],
1546
+ eshape[si] if len(eshape) > si else 1, 1)
1547
+ else:
1548
+ sizes[si] += max(
1549
+ eshape[si] if len(eshape) > si else 1, 1)
1550
+ return sizes
1551
+
1552
+ def process_target_field_views(self, parent=None):
1476
1553
  """ process target fields views to virtual field layout
1554
+
1555
+ :param parent: tree parent
1556
+ :type parent: :obj:`FTObject`
1477
1557
  """
1558
+ if self.__vmaps is not None:
1559
+ # print("SHAPE1", shape)
1560
+ self.shape = self.cure_shape(self.__vmaps, self.shape)
1561
+ # print("SHAPE12", shape)
1478
1562
  counter = 0
1479
1563
  for vmap in self.__vmaps:
1480
- fieldpath = ""
1481
- filename = ""
1482
1564
  edtype = vmap["dtype"] \
1483
1565
  if "dtype" in vmap else self.dtype
1484
1566
  key = vmap["key"] if "key" in vmap else counter
1485
- key = self.__cureKeys(key)
1567
+ key = self.cure_keys(key)
1486
1568
  if "shape" in vmap:
1487
1569
  eshape = vmap["shape"]
1488
1570
  elif isinstance(key, int):
@@ -1490,6 +1572,7 @@ class H5CppVirtualFieldLayout(filewriter.FTVirtualFieldLayout):
1490
1572
  eshape[0] = 1
1491
1573
  else:
1492
1574
  eshape = [0] * len(self.shape)
1575
+
1493
1576
  fieldpath = vmap["fieldpath"] \
1494
1577
  if "fieldpath" in vmap else "/data"
1495
1578
  filename = vmap["filename"] if "filename" in vmap else None
@@ -1503,7 +1586,9 @@ class H5CppVirtualFieldLayout(filewriter.FTVirtualFieldLayout):
1503
1586
  filename, fieldpath = target.split(":/")
1504
1587
  else:
1505
1588
  fieldpath = target
1506
- obj = parent
1589
+ if self._tparent is None and parent is not None:
1590
+ self._tparent = parent
1591
+ obj = self._tparent
1507
1592
  while filename is None:
1508
1593
  par = obj.parent
1509
1594
  if par is None:
@@ -1517,10 +1602,10 @@ class H5CppVirtualFieldLayout(filewriter.FTVirtualFieldLayout):
1517
1602
  if "sourceshape" in vmap else None
1518
1603
  sourcekey = vmap["sourcekey"] \
1519
1604
  if "sourcekey" in vmap else None
1520
- sourcekey = self.__cureKeys(sourcekey)
1605
+ sourcekey = self.cure_keys(sourcekey)
1521
1606
  if not any(eshape):
1522
- eshape = self.__findShape(key, eshape, unlimited=False)
1523
- ef = filewriter.target_field_view(
1607
+ eshape = self.find_shape(key, eshape, change_unlimited=False)
1608
+ ef = target_field_view(
1524
1609
  filename, fieldpath, eshape, edtype)
1525
1610
  if eshape:
1526
1611
  counter += eshape[0]
@@ -1529,25 +1614,24 @@ class H5CppVirtualFieldLayout(filewriter.FTVirtualFieldLayout):
1529
1614
  # print("KEY", key, sourcekey, sourceshape, eshape)
1530
1615
  self.add(key, ef, sourcekey, sourceshape)
1531
1616
 
1532
- def __findShape(self, key, eshape=None, unlimited=True):
1617
+ @classmethod
1618
+ def find_shape(cls, key, eshape=None, change_unlimited=True):
1533
1619
  """ find a layout shape from elemnt keys and shape
1620
+
1534
1621
  :param key: field key
1535
1622
  :type key: :class:`FTHyperslab` o :obj:`tuple`
1536
1623
  :param eshape: element shape
1537
1624
  :type eshape: ::obj:`list`
1538
- :param unlimited: unlimited flag
1539
- :type unlimited: ::obj:`bool`
1540
- :returns: layout shake
1541
- :rtype: ::obj:`list`
1625
+ :param change_unlimited: unlimited flag
1626
+ :type change_unlimited: ::obj:`bool`
1627
+ :returns: layout shape
1628
+ :rtype: :obj:`list` < :obj:`int` >
1542
1629
  """
1543
1630
 
1544
1631
  if isinstance(key, filewriter.FTHyperslab):
1545
- if not unlimited:
1546
- count = [(ct if ct != filewriter.writer.unlimited() else 1)
1547
- for ct in key.count]
1548
-
1549
- block = [(ct if ct != filewriter.writer.unlimited() else 1)
1550
- for ct in key.block]
1632
+ if not change_unlimited:
1633
+ count = [(ct if ct != unlimited() else 1) for ct in key.count]
1634
+ block = [(ct if ct != unlimited() else 1) for ct in key.block]
1551
1635
  else:
1552
1636
  count = key.count
1553
1637
  block = key.block
@@ -1555,7 +1639,7 @@ class H5CppVirtualFieldLayout(filewriter.FTVirtualFieldLayout):
1555
1639
  if isinstance(key, tuple):
1556
1640
  eshape = []
1557
1641
  for ky in key:
1558
- if not unlimited and ky.stop == filewriter.writer.unlimited():
1642
+ if not change_unlimited and ky.stop == unlimited():
1559
1643
  eshape.append(1)
1560
1644
  elif isinstance(ky, slice) and ky.stop > 0:
1561
1645
  start = ky.start if ky.start is not None else 0
@@ -1567,7 +1651,6 @@ class H5CppVirtualFieldLayout(filewriter.FTVirtualFieldLayout):
1567
1651
 
1568
1652
  def __len__(self):
1569
1653
  """ provides virtual map list length
1570
-
1571
1654
  :rtype: :obj:`int`
1572
1655
  :returns: virtual map list length
1573
1656
  """
@@ -1684,7 +1767,7 @@ class H5CppAttributeManager(filewriter.FTAttributeManager):
1684
1767
 
1685
1768
  :param h5object: h5 object
1686
1769
  :type h5object: :obj:`any`
1687
- :param tparent: treee parent
1770
+ :param tparent: tree parent
1688
1771
  :type tparent: :obj:`FTObject`
1689
1772
  """
1690
1773
  filewriter.FTAttributeManager.__init__(self, h5object, tparent)
@@ -1803,7 +1886,7 @@ class H5CppAttribute(filewriter.FTAttribute):
1803
1886
 
1804
1887
  :param h5object: h5 object
1805
1888
  :type h5object: :obj:`any`
1806
- :param tparent: treee parent
1889
+ :param tparent: tree parent
1807
1890
  :type tparent: :obj:`FTObject`
1808
1891
  """
1809
1892
  filewriter.FTAttribute.__init__(self, h5object, tparent)