nxswriter 3.17.2__tar.gz → 3.19.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 (217) hide show
  1. {nxswriter-3.17.2 → nxswriter-3.19.0}/.ci/install.sh +4 -4
  2. {nxswriter-3.17.2 → nxswriter-3.19.0}/.github/workflows/tests.yml +2 -1
  3. {nxswriter-3.17.2 → nxswriter-3.19.0}/ChangeLog +12 -0
  4. {nxswriter-3.17.2 → nxswriter-3.19.0}/NXSDataWriter.xmi +4 -4
  5. {nxswriter-3.17.2/nxswriter.egg-info → nxswriter-3.19.0}/PKG-INFO +3 -3
  6. {nxswriter-3.17.2 → nxswriter-3.19.0}/README.rst +2 -2
  7. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/FullDocument.html +1 -1
  8. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/Properties.html +1 -1
  9. {nxswriter-3.17.2 → nxswriter-3.19.0}/man/nxswriter.1 +1 -1
  10. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/ClientSource.py +21 -0
  11. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/Release.py +1 -1
  12. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/TangoDataWriter.py +52 -1
  13. {nxswriter-3.17.2 → nxswriter-3.19.0/nxswriter.egg-info}/PKG-INFO +3 -3
  14. {nxswriter-3.17.2 → nxswriter-3.19.0}/.ci/debian10_py2/Dockerfile +0 -0
  15. {nxswriter-3.17.2 → nxswriter-3.19.0}/.ci/debian10_py3/Dockerfile +0 -0
  16. {nxswriter-3.17.2 → nxswriter-3.19.0}/.ci/debian11_py3/Dockerfile +0 -0
  17. {nxswriter-3.17.2 → nxswriter-3.19.0}/.ci/debian8_py2/Dockerfile +0 -0
  18. {nxswriter-3.17.2 → nxswriter-3.19.0}/.ci/debian8_py3/Dockerfile +0 -0
  19. {nxswriter-3.17.2 → nxswriter-3.19.0}/.ci/debian9_py2/Dockerfile +0 -0
  20. {nxswriter-3.17.2 → nxswriter-3.19.0}/.ci/debian9_py3/Dockerfile +0 -0
  21. {nxswriter-3.17.2 → nxswriter-3.19.0}/.ci/run.sh +0 -0
  22. {nxswriter-3.17.2 → nxswriter-3.19.0}/.ci/ubuntu16.04_py2/Dockerfile +0 -0
  23. {nxswriter-3.17.2 → nxswriter-3.19.0}/.ci/ubuntu16.04_py3/Dockerfile +0 -0
  24. {nxswriter-3.17.2 → nxswriter-3.19.0}/.ci/ubuntu18.04_py2/Dockerfile +0 -0
  25. {nxswriter-3.17.2 → nxswriter-3.19.0}/.ci/ubuntu18.04_py3/Dockerfile +0 -0
  26. {nxswriter-3.17.2 → nxswriter-3.19.0}/.ci/ubuntu20.04_py3/Dockerfile +0 -0
  27. {nxswriter-3.17.2 → nxswriter-3.19.0}/.flake8 +0 -0
  28. {nxswriter-3.17.2 → nxswriter-3.19.0}/.gitignore +0 -0
  29. {nxswriter-3.17.2 → nxswriter-3.19.0}/COPYRIGHT +0 -0
  30. {nxswriter-3.17.2 → nxswriter-3.19.0}/MANIFEST.in +0 -0
  31. {nxswriter-3.17.2 → nxswriter-3.19.0}/NXSDataWriter +0 -0
  32. {nxswriter-3.17.2 → nxswriter-3.19.0}/XMLExamples/MNI.xml +0 -0
  33. {nxswriter-3.17.2 → nxswriter-3.19.0}/XMLExamples/encodedImage.xml +0 -0
  34. {nxswriter-3.17.2 → nxswriter-3.19.0}/XMLExamples/encodedImage4.xml +0 -0
  35. {nxswriter-3.17.2 → nxswriter-3.19.0}/XMLExamples/scan.xml +0 -0
  36. {nxswriter-3.17.2 → nxswriter-3.19.0}/XMLExamples/scan2.xml +0 -0
  37. {nxswriter-3.17.2 → nxswriter-3.19.0}/XMLExamples/scan3.xml +0 -0
  38. {nxswriter-3.17.2 → nxswriter-3.19.0}/XMLExamples/test.xml +0 -0
  39. {nxswriter-3.17.2 → nxswriter-3.19.0}/XMLExamples/trigger.xml +0 -0
  40. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc/Makefile +0 -0
  41. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc/conf.py +0 -0
  42. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc/index.rst +0 -0
  43. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc/make.bat +0 -0
  44. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc/nxswriter.rst +0 -0
  45. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/AttrCanFail.html +0 -0
  46. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/AttrCurrentFileId.html +0 -0
  47. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/AttrErrors.html +0 -0
  48. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/AttrFileName.html +0 -0
  49. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/AttrJSONRecord.html +0 -0
  50. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/AttrSkipAcquisition.html +0 -0
  51. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/AttrStepsPerFile.html +0 -0
  52. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/AttrXMLSettings.html +0 -0
  53. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/Attributes.html +0 -0
  54. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/ClassDescription.html +0 -0
  55. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/CmdCloseEntry.html +0 -0
  56. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/CmdCloseEntryAsynch.html +0 -0
  57. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/CmdCloseFile.html +0 -0
  58. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/CmdOpenEntry.html +0 -0
  59. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/CmdOpenEntryAsynch.html +0 -0
  60. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/CmdOpenFile.html +0 -0
  61. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/CmdRecord.html +0 -0
  62. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/CmdRecordAsynch.html +0 -0
  63. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/CmdState.html +0 -0
  64. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/CmdStatus.html +0 -0
  65. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/Commands.html +0 -0
  66. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/States.html +0 -0
  67. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/TitleBanner.html +0 -0
  68. {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/index.html +0 -0
  69. {nxswriter-3.17.2 → nxswriter-3.19.0}/man/NXSDataWriter.1 +0 -0
  70. {nxswriter-3.17.2 → nxswriter-3.19.0}/man/nxsfromxml.1 +0 -0
  71. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxsfromxml +0 -0
  72. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/DBaseSource.py +0 -0
  73. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/DataHolder.py +0 -0
  74. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/DataSourceFactory.py +0 -0
  75. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/DataSourcePool.py +0 -0
  76. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/DataSources.py +0 -0
  77. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/DecoderPool.py +0 -0
  78. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/EAttribute.py +0 -0
  79. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/EField.py +0 -0
  80. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/EGroup.py +0 -0
  81. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/ELink.py +0 -0
  82. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/EStrategy.py +0 -0
  83. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/EVirtualField.py +0 -0
  84. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/Element.py +0 -0
  85. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/ElementThread.py +0 -0
  86. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/Errors.py +0 -0
  87. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/FElement.py +0 -0
  88. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/FetchNameHandler.py +0 -0
  89. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/H5Elements.py +0 -0
  90. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/InnerXMLParser.py +0 -0
  91. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/Metadata.py +0 -0
  92. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/NXSFromXML.py +0 -0
  93. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/NXSWriter.py +0 -0
  94. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/NexusXMLHandler.py +0 -0
  95. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/PyEvalSource.py +0 -0
  96. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/StreamSet.py +0 -0
  97. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/TangoSource.py +0 -0
  98. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/ThreadPool.py +0 -0
  99. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/Types.py +0 -0
  100. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/__init__.py +0 -0
  101. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter.egg-info/SOURCES.txt +0 -0
  102. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter.egg-info/dependency_links.txt +0 -0
  103. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter.egg-info/not-zip-safe +0 -0
  104. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter.egg-info/requires.txt +0 -0
  105. {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter.egg-info/top_level.txt +0 -0
  106. {nxswriter-3.17.2 → nxswriter-3.19.0}/setup.cfg +0 -0
  107. {nxswriter-3.17.2 → nxswriter-3.19.0}/setup.py +0 -0
  108. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/Checkers.py +0 -0
  109. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ClientFieldTagAsynchH5Cpp_test.py +0 -0
  110. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ClientFieldTagAsynchH5PY_test.py +0 -0
  111. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ClientFieldTagServerH5Cpp_test.py +0 -0
  112. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ClientFieldTagServerH5PY_test.py +0 -0
  113. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ClientFieldTagWriterH5Cpp_test.py +0 -0
  114. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ClientFieldTagWriterH5PY_test.py +0 -0
  115. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ClientSource_test.py +0 -0
  116. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/Converters_test.py +0 -0
  117. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/DBFieldTagAsynchH5Cpp_test.py +0 -0
  118. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/DBFieldTagAsynchH5PY_test.py +0 -0
  119. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/DBFieldTagServerH5Cpp_test.py +0 -0
  120. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/DBFieldTagServerH5PY_test.py +0 -0
  121. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/DBFieldTagWriterH5Cpp_test.py +0 -0
  122. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/DBFieldTagWriterH5PY_test.py +0 -0
  123. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/DBaseSource_test.py +0 -0
  124. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/DataHolder_test.py +0 -0
  125. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/DataSourceDecoders_test.py +0 -0
  126. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/DataSourceFactory_test.py +0 -0
  127. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/DataSourcePool_test.py +0 -0
  128. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/DataSource_test.py +0 -0
  129. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/DecoderPool_test.py +0 -0
  130. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EAttributeH5Cpp_test.py +0 -0
  131. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EAttributeH5PY_test.py +0 -0
  132. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EDimH5Cpp_test.py +0 -0
  133. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EDimH5PY_test.py +0 -0
  134. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EDimensionsH5Cpp_test.py +0 -0
  135. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EDimensionsH5PY_test.py +0 -0
  136. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EDocH5Cpp_test.py +0 -0
  137. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EDocH5PY_test.py +0 -0
  138. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EFieldH5Cpp_test.py +0 -0
  139. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EFieldH5PY_test.py +0 -0
  140. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EFieldReshapeH5Cpp_test.py +0 -0
  141. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EFieldReshapeH5PY_test.py +0 -0
  142. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EFileH5Cpp_test.py +0 -0
  143. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EFileH5PY_test.py +0 -0
  144. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EGroupH5Cpp_test.py +0 -0
  145. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EGroupH5PY_test.py +0 -0
  146. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ELinkH5Cpp_test.py +0 -0
  147. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ELinkH5PY_test.py +0 -0
  148. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EStrategyH5Cpp_test.py +0 -0
  149. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EStrategyH5PY_test.py +0 -0
  150. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ESymbolH5Cpp_test.py +0 -0
  151. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ESymbolH5PY_test.py +0 -0
  152. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ElementH5Cpp_test.py +0 -0
  153. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ElementH5PY_test.py +0 -0
  154. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ElementThread_test.py +0 -0
  155. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/Element_test.py +0 -0
  156. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/Errors_test.py +0 -0
  157. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/FElementH5Cpp_test.py +0 -0
  158. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/FElementH5PY_test.py +0 -0
  159. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/FElementWithAttrH5Cpp_test.py +0 -0
  160. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/FElementWithAttrH5PY_test.py +0 -0
  161. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/FetchNameHandler_test.py +0 -0
  162. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/FileWriterH5CppH5PY_test.py +0 -0
  163. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/FileWriterH5Cpp_test.py +0 -0
  164. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/FileWriterH5PY_test.py +0 -0
  165. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/H5CppWriter_test.py +0 -0
  166. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/H5PYWriter_test.py +0 -0
  167. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/InnerXMLParser_test.py +0 -0
  168. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/MYSQLSource_test.py +0 -0
  169. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/NTP_test.py +0 -0
  170. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/NXSDataWriterH5Cpp_test.py +0 -0
  171. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/NXSDataWriterH5PY_test.py +0 -0
  172. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/NXSFromXMLH5Cpp_test.py +0 -0
  173. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/NXSFromXMLH5PY_test.py +0 -0
  174. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/NexusXMLHandlerH5Cpp_test.py +0 -0
  175. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/NexusXMLHandlerH5PY_test.py +0 -0
  176. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ORACLESource_test.py +0 -0
  177. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/PGSQLSource_test.py +0 -0
  178. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ProxyHelper.py +0 -0
  179. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ProxyTools_test.py +0 -0
  180. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/PyEvalSource_test.py +0 -0
  181. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/PyEvalTangoSourceH5Cpp_test.py +0 -0
  182. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/PyEvalTangoSourceH5PY_test.py +0 -0
  183. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ServerSetUp.py +0 -0
  184. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/SimpleServer.py +0 -0
  185. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/SimpleServerSetUp.py +0 -0
  186. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/StreamSet_test.py +0 -0
  187. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TNObject_test.py +0 -0
  188. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TangoClassID.txt +0 -0
  189. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TangoDataWriterH5CppH5PY_test.py +0 -0
  190. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TangoDataWriterH5Cpp_test.py +0 -0
  191. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TangoDataWriterH5PY_test.py +0 -0
  192. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TangoFieldTagAsynchH5Cpp_test.py +0 -0
  193. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TangoFieldTagAsynchH5PY_test.py +0 -0
  194. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TangoFieldTagServerH5Cpp_test.py +0 -0
  195. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TangoFieldTagServerH5PY_test.py +0 -0
  196. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TangoFieldTagWriterH5Cpp_test.py +0 -0
  197. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TangoFieldTagWriterH5PY_test.py +0 -0
  198. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TangoSource_test.py +0 -0
  199. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TgDevice_test.py +0 -0
  200. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TgGroup_test.py +0 -0
  201. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TgMember_test.py +0 -0
  202. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ThreadPool_test.py +0 -0
  203. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TstDataSource.py +0 -0
  204. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/UINT32decoder_test.py +0 -0
  205. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/UTF8decoder_test.py +0 -0
  206. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/VDEOdecoder_test.py +0 -0
  207. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/XMLFieldTagAsynchH5Cpp_test.py +0 -0
  208. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/XMLFieldTagAsynchH5PY_test.py +0 -0
  209. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/XMLFieldTagServerH5Cpp_test.py +0 -0
  210. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/XMLFieldTagServerH5PY_test.py +0 -0
  211. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/XMLFieldTagWriterH5Cpp_test.py +0 -0
  212. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/XMLFieldTagWriterH5PY_test.py +0 -0
  213. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/__init__.py +0 -0
  214. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/__main__.py +0 -0
  215. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/main.py +0 -0
  216. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/mydb.pgsql +0 -0
  217. {nxswriter-3.17.2 → nxswriter-3.19.0}/test/sttest.py +0 -0
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env bash
2
2
 
3
3
  # restart mysqldb
4
- if [ "$1" = "debian11" ] || [ "$1" = "debian12" ] || [ "$1" = "debian12tg10" ] || [ "$1" = "debian13" ] || [ "$1" = "ubuntu24.10" ] || [ "$1" = "ubuntu25.04" ] || [ "$1" = "ubuntu24.04" ]; then
4
+ if [ "$1" = "debian11" ] || [ "$1" = "debian12" ] || [ "$1" = "debian12tg10" ] || [ "$1" = "debian13" ] || [ "$1" = "ubuntu24.10" ] || [ "$1" = "ubuntu25.04" ] || [ "$1" = "ubuntu25.10" ] || [ "$1" = "ubuntu24.04" ]; then
5
5
  docker exec --user root ndts service mariadb restart
6
6
  else
7
7
  # workaround for a bug in debian9, i.e. starting mysql hangs
@@ -17,7 +17,7 @@ fi
17
17
 
18
18
  echo "install tango-common"
19
19
  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'
20
- if [ "$1" = "ubuntu24.04" ] || [ "$1" = "ubuntu24.10" ] || [ "$1" = "ubuntu25.04" ]; then
20
+ if [ "$1" = "ubuntu24.04" ] || [ "$1" = "ubuntu24.10" ] || [ "$1" = "ubuntu25.04" ] || [ "$1" = "ubuntu25.10" ]; then
21
21
  # docker exec --user tango ndts /bin/bash -c '/usr/lib/tango/DataBaseds 2 -ORBendPoint giop:tcp::10000 &'
22
22
  docker exec --user root ndts /bin/bash -c 'echo -e "[client]\nuser=root\npassword=rootpw" > /root/.my.cnf'
23
23
  docker exec --user root ndts /bin/bash -c 'echo -e "[client]\nuser=tango\nhost=localhost\npassword=rootpw" > /var/lib/tango/.my.cnf'
@@ -33,7 +33,7 @@ fi
33
33
  echo "install tango-db"
34
34
  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'
35
35
  if [ "$?" -ne "0" ]; then exit 255; fi
36
- if [ "$1" = "ubuntu24.04" ] || [ "$1" = "ubuntu24.10" ] || [ "$1" = "ubuntu25.04" ]; then
36
+ if [ "$1" = "ubuntu24.04" ] || [ "$1" = "ubuntu24.10" ] || [ "$1" = "ubuntu25.04" ] || [ "$1" = "ubuntu25.10" ]; then
37
37
  docker exec --user tango ndts /usr/bin/mysql -e 'create database tango'
38
38
  docker exec --user tango ndts /bin/bash -c '/usr/bin/mysql tango < /usr/share/dbconfig-common/data/tango-db/install/mysql'
39
39
  fi
@@ -54,7 +54,7 @@ if [ "$2" = "2" ]; then
54
54
  docker exec --user root ndts /bin/sh -c 'apt-get -qq update; apt-get -qq install -y python-pytango nxsconfigserver-db python-nxstools'
55
55
  else
56
56
  echo "install python3-pytango"
57
- if [ "$1" = "ubuntu20.04" ] || [ "$1" = "ubuntu20.10" ] || [ "$1" = "ubuntu21.04" ] || [ "$1" = "ubuntu24.04" ] || [ "$1" = "ubuntu24.10" ] || [ "$1" = "ubuntu25.04" ] || [ "$1" = "ubuntu23.10" ] || [ "$1" = "ubuntu22.04" ] || [ "$1" = "debian11" ] || [ "$1" = "debian12" ] || [ "$1" = "debian12tg10" ] || [ "$1" = "debian13" ] ; then
57
+ if [ "$1" = "ubuntu20.04" ] || [ "$1" = "ubuntu20.10" ] || [ "$1" = "ubuntu21.04" ] || [ "$1" = "ubuntu24.04" ] || [ "$1" = "ubuntu24.10" ] || [ "$1" = "ubuntu25.04" ] || [ "$1" = "ubuntu25.10" ] || [ "$1" = "ubuntu23.10" ] || [ "$1" = "ubuntu22.04" ] || [ "$1" = "debian11" ] || [ "$1" = "debian12" ] || [ "$1" = "debian12tg10" ] || [ "$1" = "debian13" ] ; then
58
58
  docker exec --user root ndts /bin/sh -c 'apt-get -qq update; apt-get -qq install -y python3-tango nxsconfigserver-db python3-nxstools'
59
59
  else
60
60
  docker exec --user root ndts /bin/sh -c 'apt-get -qq update; apt-get -qq install -y python3-pytango nxsconfigserver-db python3-nxstools'
@@ -24,7 +24,8 @@ 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
+ os: [debian12tg10, debian12, debian11, ubuntu25.10, ubuntu24.04, ubuntu22.04]
28
29
  steps:
29
30
  - uses: actions/checkout@v2
30
31
  - uses: actions/setup-python@v2
@@ -1,3 +1,15 @@
1
+ 2026-01-29 Jan Kotanski <jankotan@gmail.com>
2
+ * add support for rediswriter (#206)
3
+ * tagged as 3.19.0
4
+
5
+ 2026-01-13 Jan Kotanski <jankotan@gmail.com>
6
+ * check openEntry total runtime (#204)
7
+ * tagged as 3.18.1
8
+
9
+ 2025-12-22 Jan Kotanski <jankotan@gmail.com>
10
+ * add support sardana tango client (#201)
11
+ * tagged as 3.18.0
12
+
1
13
  2025-10-23 Jan Kotanski <jankotan@gmail.com>
2
14
  * create virtual field layout with the parent object (#195)
3
15
  * recommends nxstools 4.29.0
@@ -1,7 +1,7 @@
1
1
  <?xml version="1.0" encoding="ASCII"?>
2
- <pogoDsl:PogoSystem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:pogoDsl="http://www.esrf.fr/tango/pogo/PogoDsl">
3
- <classes name="NXSDataWriter" pogoRevision="9.7">
4
- <description description="NXSDataWriter is a Tango server which allows to store NeXuS Data in H5 files.&#xA;&#xA;The server provides storing data from other Tango devices,&#xA;various databases as well as passed by a user client via JSON strings.&#xA;&#xA;Source code: https://github.com/nexdatas/nxsdatawriter&#xA;Project Web page: https://nexdatas.github.io/nxsdatawriter&#xA;NexDaTaS Web page: https://nexdatas.github.io" title="NeXus Data Writer" sourcePath="/home/jkotan/ndts/nexdatas.writer" language="Python" filestogenerate="XMI file,Code files,Protected Regions,html Pages" license="GPL" hasMandatoryProperty="false" hasConcreteProperty="true" hasAbstractCommand="false" hasAbstractAttribute="false" descriptionHtmlExists="false">
2
+ <pogoDsl:PogoSystem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:pogoDsl="http://tango.org/pogo/PogoDsl">
3
+ <classes name="NXSDataWriter" pogoRevision="9.9">
4
+ <description description="NXSDataWriter is a Tango server which allows to store NeXuS Data in H5 files.&#xA;&#xA;The server provides storing data from other Tango devices,&#xA;various databases as well as passed by a user client via JSON strings.&#xA;&#xA;Source code: https://github.com/nexdatas/nxsdatawriter&#xA;Project Web page: https://nexdatas.github.io/nxsdatawriter&#xA;NexDaTaS Web page: https://nexdatas.github.io" title="NeXus Data Writer" sourcePath="/home/jkotan/ndts/nexdatas.writer" language="Python" filestogenerate="XMI file,Protected Regions,html Pages" license="GPL" hasMandatoryProperty="false" hasConcreteProperty="true" hasAbstractCommand="false" hasAbstractAttribute="false" descriptionHtmlExists="false">
5
5
  <inheritances classname="Device_Impl" sourcePath=""/>
6
6
  <identification contact="at desy.de - jan.kotanski" author="jan.kotanski" emailDomain="desy.de" classFamily="Acquisition" siteSpecific="" platform="All Platforms" bus="Not Applicable" manufacturer="DESY" reference=""/>
7
7
  </description>
@@ -10,7 +10,7 @@
10
10
  <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
11
11
  <DefaultPropValue>100</DefaultPropValue>
12
12
  </deviceProperties>
13
- <deviceProperties name="Writer" description="writer module: `pni` or `h5py` or `h5cpp`">
13
+ <deviceProperties name="Writer" description="writer module: `h5cpp` or `h5py` or `h5redis`">
14
14
  <type xsi:type="pogoDsl:StringType"/>
15
15
  <status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
16
16
  </deviceProperties>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nxswriter
3
- Version: 3.17.2
3
+ Version: 3.19.0
4
4
  Summary: Nexus Data writer implemented as a Tango Server
5
5
  Home-page: https://github.com/nexdatas/nxsdatawriter
6
6
  Author: Jan Kotanski, Eugen Wintersberger , Halil Pasic
@@ -91,7 +91,7 @@ Extract sources and run
91
91
  Debian packages
92
92
  """""""""""""""
93
93
 
94
- Debian `trixie`, `bookworm`, `bullseye` or Ubuntu `plucky`, `noble`, `jammy` packages can be found in the HDRI repository.
94
+ Debian `trixie`, `bookworm`, `bullseye` or Ubuntu `questing`, `noble`, `jammy` packages can be found in the HDRI repository.
95
95
 
96
96
  To install the debian packages, add the PGP repository key
97
97
 
@@ -106,7 +106,7 @@ and then download the corresponding source list
106
106
  .. code-block:: console
107
107
 
108
108
  $ cd /etc/apt/sources.list.d
109
- $ wget http://repos.pni-hdri.de/trixie-pni-hdri.list
109
+ $ wget http://repos.pni-hdri.de/trixie-pni-hdri.sources
110
110
 
111
111
  To install tango server
112
112
 
@@ -64,7 +64,7 @@ Extract sources and run
64
64
  Debian packages
65
65
  """""""""""""""
66
66
 
67
- Debian `trixie`, `bookworm`, `bullseye` or Ubuntu `plucky`, `noble`, `jammy` packages can be found in the HDRI repository.
67
+ Debian `trixie`, `bookworm`, `bullseye` or Ubuntu `questing`, `noble`, `jammy` packages can be found in the HDRI repository.
68
68
 
69
69
  To install the debian packages, add the PGP repository key
70
70
 
@@ -79,7 +79,7 @@ and then download the corresponding source list
79
79
  .. code-block:: console
80
80
 
81
81
  $ cd /etc/apt/sources.list.d
82
- $ wget http://repos.pni-hdri.de/trixie-pni-hdri.list
82
+ $ wget http://repos.pni-hdri.de/trixie-pni-hdri.sources
83
83
 
84
84
  To install tango server
85
85
 
@@ -126,7 +126,7 @@
126
126
  </tr>
127
127
  <tr>
128
128
  <td> Writer </td>
129
- <td> writer module: `pni` or `h5py` or `h5cpp` </td>
129
+ <td> writer module: `h5cpp` or `h5py` or `h5redis` </td>
130
130
  <td> String </td>
131
131
  <td> none </td>
132
132
  </tr>
@@ -26,7 +26,7 @@
26
26
  </tr>
27
27
  <tr>
28
28
  <td> Writer </td>
29
- <td> writer module: `pni` or `h5py` or `h5cpp` </td>
29
+ <td> writer module: `h5cpp` or `h5py` or `h5redis` </td>
30
30
  <td> String </td>
31
31
  <td> none </td>
32
32
  </tr>
@@ -79,7 +79,7 @@ $ python3 setup.py install
79
79
  .UNINDENT
80
80
  .SS Debian packages
81
81
  .sp
82
- Debian \fIbookworm\fP, \fIbullseye\fP, \fIbuster\fP or Ubuntu \fIplucky\fP, \fInoble\fP, \fIjammy\fP packages can be found in the HDRI repository.
82
+ Debian \fIbookworm\fP, \fIbullseye\fP, \fIbuster\fP or Ubuntu \fIquesting\fP, \fInoble\fP, \fIjammy\fP packages can be found in the HDRI repository.
83
83
  .sp
84
84
  To install the debian packages, add the PGP repository key
85
85
  .INDENT 0.0
@@ -25,6 +25,18 @@ from lxml.etree import XMLParser
25
25
  from .DataSources import DataSource
26
26
  from .Errors import DataSourceSetupError
27
27
 
28
+ try:
29
+ try:
30
+ import tango
31
+ except Exception:
32
+ import PyTango as tango
33
+ #: (:obj:`str`) global variable if tango module installed
34
+ PYTANGO_AVAILABLE = True
35
+ except ImportError as e:
36
+ PYTANGO_AVAILABLE = False
37
+ sys.stdout.write("PYTANGO not available: %s" % e)
38
+ sys.stdout.flush()
39
+
28
40
 
29
41
  class ClientSource(DataSource):
30
42
 
@@ -106,4 +118,13 @@ class ClientSource(DataSource):
106
118
  names = [self.name]
107
119
  if self.name:
108
120
  names.append(self.name.lower())
121
+ if PYTANGO_AVAILABLE and "/" in self.name and \
122
+ not self.name.startswith("tango://"):
123
+ if ":" in self.name:
124
+ names.append("tango://%s" % (self.name.lower()))
125
+ else:
126
+ db = tango.Database()
127
+ names.append("tango://%s:%s/%s" %
128
+ (db.get_db_host().split(".")[0],
129
+ db.get_db_port(), self.name.lower()))
109
130
  return self._getJSONData(names, self.__globalJSON, self.__localJSON)
@@ -21,4 +21,4 @@
21
21
 
22
22
 
23
23
  #: package version
24
- __version__ = "3.17.2"
24
+ __version__ = "3.19.0"
@@ -65,7 +65,15 @@ try:
65
65
  WRITERS["h5redis"] = H5RedisWriter
66
66
  except Exception:
67
67
  pass
68
- DEFAULTWRITERS = ["h5cpp", "h5py", "h5redis"]
68
+
69
+ try:
70
+ from nxstools import rediswriter as RedisWriter
71
+ WRITERS["redis"] = RedisWriter
72
+ except Exception:
73
+ pass
74
+
75
+
76
+ DEFAULTWRITERS = ["h5cpp", "h5py", "h5redis", "redis"]
69
77
 
70
78
 
71
79
  #: (:obj:`bool`) tango bug #213 flag related to EncodedAttributes in python3
@@ -491,12 +499,17 @@ class TangoDataWriter(object):
491
499
  :brief: It parse the XML settings, creates thread pools
492
500
  and runs the INIT pool.
493
501
  """
502
+ tt0 = time.time()
503
+ if self._streams:
504
+ self._streams.debug("openEntry: INIT")
494
505
  if self.xmlsettings:
495
506
  # flag for INIT mode
496
507
  self.__datasources.counter = -1
497
508
  self.__datasources.nxroot = self.__nxRoot
498
509
  errorHandler = sax.ErrorHandler()
499
510
  parser = sax.make_parser()
511
+ if self._streams:
512
+ self._streams.debug("openEntry: Create NexusXMLHnadler")
500
513
  handler = NexusXMLHandler(
501
514
  self.__nxPath[-1] if self.__nxPath else self.__eFile,
502
515
  self.__datasources,
@@ -517,6 +530,8 @@ class TangoDataWriter(object):
517
530
  else:
518
531
  inpsrc.setByteStream(StringIO(self.xmlsettings))
519
532
 
533
+ if self._streams:
534
+ self._streams.debug("openEntry: Parse NexusXMLHnadler")
520
535
  parser.parse(inpsrc)
521
536
 
522
537
  self.__initPool = handler.initPool
@@ -540,10 +555,18 @@ class TangoDataWriter(object):
540
555
  self.__triggerPools[pool].maxRuntime = \
541
556
  self.maxElementRuntime
542
557
 
558
+ if self._streams:
559
+ self._streams.debug("openEntry: SET JSON")
543
560
  self.__initPool.setJSON(json.loads(self.jsonrecord))
561
+ if self._streams:
562
+ self._streams.debug("openEntry: RUN INIT")
563
+ tt1 = time.time()
544
564
  if not self.skipacquisition:
545
565
  self.__initPool.runAndWait()
546
566
  self.__initPool.checkErrors()
567
+ tt2 = time.time()
568
+ if self._streams:
569
+ self._streams.debug("openEntry: ADD LOGS")
547
570
  self.skipacquisition = False
548
571
  if self.addingLogs:
549
572
  self.__entryCounter += 1
@@ -554,6 +577,9 @@ class TangoDataWriter(object):
554
577
  "string")
555
578
  lfield.write(self.xmlsettings)
556
579
  lfield.close()
580
+ tt3 = time.time()
581
+ if self._streams:
582
+ self._streams.debug("openEntry: FLUSH")
557
583
  if self.__nxFile and hasattr(self.__nxFile, "flush"):
558
584
  self.__nxFile.flush()
559
585
  if self.stepsperfile > 0:
@@ -562,9 +588,34 @@ class TangoDataWriter(object):
562
588
  self.__nextfile()
563
589
  elif "swmr" in self.__pars.keys() and self.__pars["swmr"]:
564
590
  self.__nxFile.reopen(readonly=False, **self.__pars)
591
+ tt4 = time.time()
592
+ else:
593
+ tt4 = time.time()
594
+ tt1 = tt4
595
+ tt2 = tt4
596
+ tt3 = tt4
597
+ if self._streams:
598
+ self._streams.debug("openEntry: PREPARE")
565
599
  if self.__nxFile and hasattr(self.__nxFile, "prepare"):
566
600
  # print("START")
567
601
  self.__nxFile.prepare()
602
+ tt5 = time.time()
603
+ if self._streams:
604
+ dt = tt5 - tt0
605
+ dt1 = tt1 - tt0
606
+ dt2 = tt2 - tt1
607
+ dt3 = tt3 - tt2
608
+ dt4 = tt4 - tt3
609
+ dt5 = tt5 - tt4
610
+ message = "openEntry: END TotalTime = %ss, " \
611
+ "ParseXMLTime=%ss, INITRunTime=%ss, " \
612
+ "AddLogsTime=%ss, FlushTime=%ss, " \
613
+ "PrepateTime=%ss" % (dt, dt1, dt2, dt3, dt4, dt5)
614
+ if dt and self.maxRecordRuntime and \
615
+ dt > self.maxRecordRuntime:
616
+ self._streams.warn(message)
617
+ else:
618
+ self._streams.debug(message)
568
619
 
569
620
  def __nextfile(self):
570
621
  self.__nxFile.close()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: nxswriter
3
- Version: 3.17.2
3
+ Version: 3.19.0
4
4
  Summary: Nexus Data writer implemented as a Tango Server
5
5
  Home-page: https://github.com/nexdatas/nxsdatawriter
6
6
  Author: Jan Kotanski, Eugen Wintersberger , Halil Pasic
@@ -91,7 +91,7 @@ Extract sources and run
91
91
  Debian packages
92
92
  """""""""""""""
93
93
 
94
- Debian `trixie`, `bookworm`, `bullseye` or Ubuntu `plucky`, `noble`, `jammy` packages can be found in the HDRI repository.
94
+ Debian `trixie`, `bookworm`, `bullseye` or Ubuntu `questing`, `noble`, `jammy` packages can be found in the HDRI repository.
95
95
 
96
96
  To install the debian packages, add the PGP repository key
97
97
 
@@ -106,7 +106,7 @@ and then download the corresponding source list
106
106
  .. code-block:: console
107
107
 
108
108
  $ cd /etc/apt/sources.list.d
109
- $ wget http://repos.pni-hdri.de/trixie-pni-hdri.list
109
+ $ wget http://repos.pni-hdri.de/trixie-pni-hdri.sources
110
110
 
111
111
  To install tango server
112
112
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes