nxswriter 3.17.2__tar.gz → 3.18.1__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.18.1}/.ci/install.sh +4 -4
  2. {nxswriter-3.17.2 → nxswriter-3.18.1}/.github/workflows/tests.yml +1 -1
  3. {nxswriter-3.17.2 → nxswriter-3.18.1}/ChangeLog +8 -0
  4. {nxswriter-3.17.2 → nxswriter-3.18.1}/NXSDataWriter.xmi +4 -4
  5. {nxswriter-3.17.2/nxswriter.egg-info → nxswriter-3.18.1}/PKG-INFO +3 -3
  6. {nxswriter-3.17.2 → nxswriter-3.18.1}/README.rst +2 -2
  7. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc_html/FullDocument.html +1 -1
  8. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc_html/Properties.html +1 -1
  9. {nxswriter-3.17.2 → nxswriter-3.18.1}/man/nxswriter.1 +1 -1
  10. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/ClientSource.py +21 -0
  11. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/Release.py +1 -1
  12. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/TangoDataWriter.py +43 -0
  13. {nxswriter-3.17.2 → nxswriter-3.18.1/nxswriter.egg-info}/PKG-INFO +3 -3
  14. {nxswriter-3.17.2 → nxswriter-3.18.1}/.ci/debian10_py2/Dockerfile +0 -0
  15. {nxswriter-3.17.2 → nxswriter-3.18.1}/.ci/debian10_py3/Dockerfile +0 -0
  16. {nxswriter-3.17.2 → nxswriter-3.18.1}/.ci/debian11_py3/Dockerfile +0 -0
  17. {nxswriter-3.17.2 → nxswriter-3.18.1}/.ci/debian8_py2/Dockerfile +0 -0
  18. {nxswriter-3.17.2 → nxswriter-3.18.1}/.ci/debian8_py3/Dockerfile +0 -0
  19. {nxswriter-3.17.2 → nxswriter-3.18.1}/.ci/debian9_py2/Dockerfile +0 -0
  20. {nxswriter-3.17.2 → nxswriter-3.18.1}/.ci/debian9_py3/Dockerfile +0 -0
  21. {nxswriter-3.17.2 → nxswriter-3.18.1}/.ci/run.sh +0 -0
  22. {nxswriter-3.17.2 → nxswriter-3.18.1}/.ci/ubuntu16.04_py2/Dockerfile +0 -0
  23. {nxswriter-3.17.2 → nxswriter-3.18.1}/.ci/ubuntu16.04_py3/Dockerfile +0 -0
  24. {nxswriter-3.17.2 → nxswriter-3.18.1}/.ci/ubuntu18.04_py2/Dockerfile +0 -0
  25. {nxswriter-3.17.2 → nxswriter-3.18.1}/.ci/ubuntu18.04_py3/Dockerfile +0 -0
  26. {nxswriter-3.17.2 → nxswriter-3.18.1}/.ci/ubuntu20.04_py3/Dockerfile +0 -0
  27. {nxswriter-3.17.2 → nxswriter-3.18.1}/.flake8 +0 -0
  28. {nxswriter-3.17.2 → nxswriter-3.18.1}/.gitignore +0 -0
  29. {nxswriter-3.17.2 → nxswriter-3.18.1}/COPYRIGHT +0 -0
  30. {nxswriter-3.17.2 → nxswriter-3.18.1}/MANIFEST.in +0 -0
  31. {nxswriter-3.17.2 → nxswriter-3.18.1}/NXSDataWriter +0 -0
  32. {nxswriter-3.17.2 → nxswriter-3.18.1}/XMLExamples/MNI.xml +0 -0
  33. {nxswriter-3.17.2 → nxswriter-3.18.1}/XMLExamples/encodedImage.xml +0 -0
  34. {nxswriter-3.17.2 → nxswriter-3.18.1}/XMLExamples/encodedImage4.xml +0 -0
  35. {nxswriter-3.17.2 → nxswriter-3.18.1}/XMLExamples/scan.xml +0 -0
  36. {nxswriter-3.17.2 → nxswriter-3.18.1}/XMLExamples/scan2.xml +0 -0
  37. {nxswriter-3.17.2 → nxswriter-3.18.1}/XMLExamples/scan3.xml +0 -0
  38. {nxswriter-3.17.2 → nxswriter-3.18.1}/XMLExamples/test.xml +0 -0
  39. {nxswriter-3.17.2 → nxswriter-3.18.1}/XMLExamples/trigger.xml +0 -0
  40. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc/Makefile +0 -0
  41. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc/conf.py +0 -0
  42. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc/index.rst +0 -0
  43. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc/make.bat +0 -0
  44. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc/nxswriter.rst +0 -0
  45. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc_html/AttrCanFail.html +0 -0
  46. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc_html/AttrCurrentFileId.html +0 -0
  47. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc_html/AttrErrors.html +0 -0
  48. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc_html/AttrFileName.html +0 -0
  49. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc_html/AttrJSONRecord.html +0 -0
  50. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc_html/AttrSkipAcquisition.html +0 -0
  51. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc_html/AttrStepsPerFile.html +0 -0
  52. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc_html/AttrXMLSettings.html +0 -0
  53. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc_html/Attributes.html +0 -0
  54. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc_html/ClassDescription.html +0 -0
  55. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc_html/CmdCloseEntry.html +0 -0
  56. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc_html/CmdCloseEntryAsynch.html +0 -0
  57. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc_html/CmdCloseFile.html +0 -0
  58. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc_html/CmdOpenEntry.html +0 -0
  59. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc_html/CmdOpenEntryAsynch.html +0 -0
  60. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc_html/CmdOpenFile.html +0 -0
  61. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc_html/CmdRecord.html +0 -0
  62. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc_html/CmdRecordAsynch.html +0 -0
  63. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc_html/CmdState.html +0 -0
  64. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc_html/CmdStatus.html +0 -0
  65. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc_html/Commands.html +0 -0
  66. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc_html/States.html +0 -0
  67. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc_html/TitleBanner.html +0 -0
  68. {nxswriter-3.17.2 → nxswriter-3.18.1}/doc_html/index.html +0 -0
  69. {nxswriter-3.17.2 → nxswriter-3.18.1}/man/NXSDataWriter.1 +0 -0
  70. {nxswriter-3.17.2 → nxswriter-3.18.1}/man/nxsfromxml.1 +0 -0
  71. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxsfromxml +0 -0
  72. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/DBaseSource.py +0 -0
  73. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/DataHolder.py +0 -0
  74. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/DataSourceFactory.py +0 -0
  75. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/DataSourcePool.py +0 -0
  76. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/DataSources.py +0 -0
  77. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/DecoderPool.py +0 -0
  78. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/EAttribute.py +0 -0
  79. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/EField.py +0 -0
  80. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/EGroup.py +0 -0
  81. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/ELink.py +0 -0
  82. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/EStrategy.py +0 -0
  83. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/EVirtualField.py +0 -0
  84. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/Element.py +0 -0
  85. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/ElementThread.py +0 -0
  86. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/Errors.py +0 -0
  87. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/FElement.py +0 -0
  88. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/FetchNameHandler.py +0 -0
  89. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/H5Elements.py +0 -0
  90. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/InnerXMLParser.py +0 -0
  91. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/Metadata.py +0 -0
  92. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/NXSFromXML.py +0 -0
  93. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/NXSWriter.py +0 -0
  94. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/NexusXMLHandler.py +0 -0
  95. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/PyEvalSource.py +0 -0
  96. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/StreamSet.py +0 -0
  97. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/TangoSource.py +0 -0
  98. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/ThreadPool.py +0 -0
  99. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/Types.py +0 -0
  100. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter/__init__.py +0 -0
  101. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter.egg-info/SOURCES.txt +0 -0
  102. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter.egg-info/dependency_links.txt +0 -0
  103. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter.egg-info/not-zip-safe +0 -0
  104. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter.egg-info/requires.txt +0 -0
  105. {nxswriter-3.17.2 → nxswriter-3.18.1}/nxswriter.egg-info/top_level.txt +0 -0
  106. {nxswriter-3.17.2 → nxswriter-3.18.1}/setup.cfg +0 -0
  107. {nxswriter-3.17.2 → nxswriter-3.18.1}/setup.py +0 -0
  108. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/Checkers.py +0 -0
  109. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/ClientFieldTagAsynchH5Cpp_test.py +0 -0
  110. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/ClientFieldTagAsynchH5PY_test.py +0 -0
  111. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/ClientFieldTagServerH5Cpp_test.py +0 -0
  112. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/ClientFieldTagServerH5PY_test.py +0 -0
  113. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/ClientFieldTagWriterH5Cpp_test.py +0 -0
  114. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/ClientFieldTagWriterH5PY_test.py +0 -0
  115. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/ClientSource_test.py +0 -0
  116. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/Converters_test.py +0 -0
  117. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/DBFieldTagAsynchH5Cpp_test.py +0 -0
  118. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/DBFieldTagAsynchH5PY_test.py +0 -0
  119. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/DBFieldTagServerH5Cpp_test.py +0 -0
  120. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/DBFieldTagServerH5PY_test.py +0 -0
  121. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/DBFieldTagWriterH5Cpp_test.py +0 -0
  122. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/DBFieldTagWriterH5PY_test.py +0 -0
  123. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/DBaseSource_test.py +0 -0
  124. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/DataHolder_test.py +0 -0
  125. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/DataSourceDecoders_test.py +0 -0
  126. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/DataSourceFactory_test.py +0 -0
  127. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/DataSourcePool_test.py +0 -0
  128. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/DataSource_test.py +0 -0
  129. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/DecoderPool_test.py +0 -0
  130. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/EAttributeH5Cpp_test.py +0 -0
  131. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/EAttributeH5PY_test.py +0 -0
  132. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/EDimH5Cpp_test.py +0 -0
  133. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/EDimH5PY_test.py +0 -0
  134. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/EDimensionsH5Cpp_test.py +0 -0
  135. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/EDimensionsH5PY_test.py +0 -0
  136. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/EDocH5Cpp_test.py +0 -0
  137. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/EDocH5PY_test.py +0 -0
  138. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/EFieldH5Cpp_test.py +0 -0
  139. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/EFieldH5PY_test.py +0 -0
  140. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/EFieldReshapeH5Cpp_test.py +0 -0
  141. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/EFieldReshapeH5PY_test.py +0 -0
  142. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/EFileH5Cpp_test.py +0 -0
  143. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/EFileH5PY_test.py +0 -0
  144. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/EGroupH5Cpp_test.py +0 -0
  145. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/EGroupH5PY_test.py +0 -0
  146. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/ELinkH5Cpp_test.py +0 -0
  147. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/ELinkH5PY_test.py +0 -0
  148. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/EStrategyH5Cpp_test.py +0 -0
  149. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/EStrategyH5PY_test.py +0 -0
  150. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/ESymbolH5Cpp_test.py +0 -0
  151. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/ESymbolH5PY_test.py +0 -0
  152. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/ElementH5Cpp_test.py +0 -0
  153. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/ElementH5PY_test.py +0 -0
  154. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/ElementThread_test.py +0 -0
  155. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/Element_test.py +0 -0
  156. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/Errors_test.py +0 -0
  157. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/FElementH5Cpp_test.py +0 -0
  158. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/FElementH5PY_test.py +0 -0
  159. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/FElementWithAttrH5Cpp_test.py +0 -0
  160. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/FElementWithAttrH5PY_test.py +0 -0
  161. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/FetchNameHandler_test.py +0 -0
  162. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/FileWriterH5CppH5PY_test.py +0 -0
  163. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/FileWriterH5Cpp_test.py +0 -0
  164. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/FileWriterH5PY_test.py +0 -0
  165. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/H5CppWriter_test.py +0 -0
  166. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/H5PYWriter_test.py +0 -0
  167. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/InnerXMLParser_test.py +0 -0
  168. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/MYSQLSource_test.py +0 -0
  169. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/NTP_test.py +0 -0
  170. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/NXSDataWriterH5Cpp_test.py +0 -0
  171. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/NXSDataWriterH5PY_test.py +0 -0
  172. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/NXSFromXMLH5Cpp_test.py +0 -0
  173. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/NXSFromXMLH5PY_test.py +0 -0
  174. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/NexusXMLHandlerH5Cpp_test.py +0 -0
  175. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/NexusXMLHandlerH5PY_test.py +0 -0
  176. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/ORACLESource_test.py +0 -0
  177. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/PGSQLSource_test.py +0 -0
  178. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/ProxyHelper.py +0 -0
  179. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/ProxyTools_test.py +0 -0
  180. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/PyEvalSource_test.py +0 -0
  181. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/PyEvalTangoSourceH5Cpp_test.py +0 -0
  182. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/PyEvalTangoSourceH5PY_test.py +0 -0
  183. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/ServerSetUp.py +0 -0
  184. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/SimpleServer.py +0 -0
  185. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/SimpleServerSetUp.py +0 -0
  186. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/StreamSet_test.py +0 -0
  187. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/TNObject_test.py +0 -0
  188. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/TangoClassID.txt +0 -0
  189. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/TangoDataWriterH5CppH5PY_test.py +0 -0
  190. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/TangoDataWriterH5Cpp_test.py +0 -0
  191. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/TangoDataWriterH5PY_test.py +0 -0
  192. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/TangoFieldTagAsynchH5Cpp_test.py +0 -0
  193. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/TangoFieldTagAsynchH5PY_test.py +0 -0
  194. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/TangoFieldTagServerH5Cpp_test.py +0 -0
  195. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/TangoFieldTagServerH5PY_test.py +0 -0
  196. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/TangoFieldTagWriterH5Cpp_test.py +0 -0
  197. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/TangoFieldTagWriterH5PY_test.py +0 -0
  198. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/TangoSource_test.py +0 -0
  199. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/TgDevice_test.py +0 -0
  200. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/TgGroup_test.py +0 -0
  201. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/TgMember_test.py +0 -0
  202. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/ThreadPool_test.py +0 -0
  203. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/TstDataSource.py +0 -0
  204. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/UINT32decoder_test.py +0 -0
  205. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/UTF8decoder_test.py +0 -0
  206. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/VDEOdecoder_test.py +0 -0
  207. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/XMLFieldTagAsynchH5Cpp_test.py +0 -0
  208. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/XMLFieldTagAsynchH5PY_test.py +0 -0
  209. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/XMLFieldTagServerH5Cpp_test.py +0 -0
  210. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/XMLFieldTagServerH5PY_test.py +0 -0
  211. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/XMLFieldTagWriterH5Cpp_test.py +0 -0
  212. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/XMLFieldTagWriterH5PY_test.py +0 -0
  213. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/__init__.py +0 -0
  214. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/__main__.py +0 -0
  215. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/main.py +0 -0
  216. {nxswriter-3.17.2 → nxswriter-3.18.1}/test/mydb.pgsql +0 -0
  217. {nxswriter-3.17.2 → nxswriter-3.18.1}/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,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,11 @@
1
+ 2026-01-13 Jan Kotanski <jankotan@gmail.com>
2
+ * check openEntry total runtime (#204)
3
+ * tagged as 3.18.1
4
+
5
+ 2025-12-22 Jan Kotanski <jankotan@gmail.com>
6
+ * add support sardana tango client (#201)
7
+ * tagged as 3.18.0
8
+
1
9
  2025-10-23 Jan Kotanski <jankotan@gmail.com>
2
10
  * create virtual field layout with the parent object (#195)
3
11
  * 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.18.1
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.18.1"
@@ -491,12 +491,17 @@ class TangoDataWriter(object):
491
491
  :brief: It parse the XML settings, creates thread pools
492
492
  and runs the INIT pool.
493
493
  """
494
+ tt0 = time.time()
495
+ if self._streams:
496
+ self._streams.debug("openEntry: INIT")
494
497
  if self.xmlsettings:
495
498
  # flag for INIT mode
496
499
  self.__datasources.counter = -1
497
500
  self.__datasources.nxroot = self.__nxRoot
498
501
  errorHandler = sax.ErrorHandler()
499
502
  parser = sax.make_parser()
503
+ if self._streams:
504
+ self._streams.debug("openEntry: Create NexusXMLHnadler")
500
505
  handler = NexusXMLHandler(
501
506
  self.__nxPath[-1] if self.__nxPath else self.__eFile,
502
507
  self.__datasources,
@@ -517,6 +522,8 @@ class TangoDataWriter(object):
517
522
  else:
518
523
  inpsrc.setByteStream(StringIO(self.xmlsettings))
519
524
 
525
+ if self._streams:
526
+ self._streams.debug("openEntry: Parse NexusXMLHnadler")
520
527
  parser.parse(inpsrc)
521
528
 
522
529
  self.__initPool = handler.initPool
@@ -540,10 +547,18 @@ class TangoDataWriter(object):
540
547
  self.__triggerPools[pool].maxRuntime = \
541
548
  self.maxElementRuntime
542
549
 
550
+ if self._streams:
551
+ self._streams.debug("openEntry: SET JSON")
543
552
  self.__initPool.setJSON(json.loads(self.jsonrecord))
553
+ if self._streams:
554
+ self._streams.debug("openEntry: RUN INIT")
555
+ tt1 = time.time()
544
556
  if not self.skipacquisition:
545
557
  self.__initPool.runAndWait()
546
558
  self.__initPool.checkErrors()
559
+ tt2 = time.time()
560
+ if self._streams:
561
+ self._streams.debug("openEntry: ADD LOGS")
547
562
  self.skipacquisition = False
548
563
  if self.addingLogs:
549
564
  self.__entryCounter += 1
@@ -554,6 +569,9 @@ class TangoDataWriter(object):
554
569
  "string")
555
570
  lfield.write(self.xmlsettings)
556
571
  lfield.close()
572
+ tt3 = time.time()
573
+ if self._streams:
574
+ self._streams.debug("openEntry: FLUSH")
557
575
  if self.__nxFile and hasattr(self.__nxFile, "flush"):
558
576
  self.__nxFile.flush()
559
577
  if self.stepsperfile > 0:
@@ -562,9 +580,34 @@ class TangoDataWriter(object):
562
580
  self.__nextfile()
563
581
  elif "swmr" in self.__pars.keys() and self.__pars["swmr"]:
564
582
  self.__nxFile.reopen(readonly=False, **self.__pars)
583
+ tt4 = time.time()
584
+ else:
585
+ tt4 = time.time()
586
+ tt1 = tt4
587
+ tt2 = tt4
588
+ tt3 = tt4
589
+ if self._streams:
590
+ self._streams.debug("openEntry: PREPARE")
565
591
  if self.__nxFile and hasattr(self.__nxFile, "prepare"):
566
592
  # print("START")
567
593
  self.__nxFile.prepare()
594
+ tt5 = time.time()
595
+ if self._streams:
596
+ dt = tt5 - tt0
597
+ dt1 = tt1 - tt0
598
+ dt2 = tt2 - tt1
599
+ dt3 = tt3 - tt2
600
+ dt4 = tt4 - tt3
601
+ dt5 = tt5 - tt4
602
+ message = "openEntry: END TotalTime = %ss, " \
603
+ "ParseXMLTime=%ss, INITRunTime=%ss, " \
604
+ "AddLogsTime=%ss, FlushTime=%ss, " \
605
+ "PrepateTime=%ss" % (dt, dt1, dt2, dt3, dt4, dt5)
606
+ if dt and self.maxRecordRuntime and \
607
+ dt > self.maxRecordRuntime:
608
+ self._streams.warn(message)
609
+ else:
610
+ self._streams.debug(message)
568
611
 
569
612
  def __nextfile(self):
570
613
  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.18.1
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