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.
- {nxswriter-3.17.2 → nxswriter-3.19.0}/.ci/install.sh +4 -4
- {nxswriter-3.17.2 → nxswriter-3.19.0}/.github/workflows/tests.yml +2 -1
- {nxswriter-3.17.2 → nxswriter-3.19.0}/ChangeLog +12 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/NXSDataWriter.xmi +4 -4
- {nxswriter-3.17.2/nxswriter.egg-info → nxswriter-3.19.0}/PKG-INFO +3 -3
- {nxswriter-3.17.2 → nxswriter-3.19.0}/README.rst +2 -2
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/FullDocument.html +1 -1
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/Properties.html +1 -1
- {nxswriter-3.17.2 → nxswriter-3.19.0}/man/nxswriter.1 +1 -1
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/ClientSource.py +21 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/Release.py +1 -1
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/TangoDataWriter.py +52 -1
- {nxswriter-3.17.2 → nxswriter-3.19.0/nxswriter.egg-info}/PKG-INFO +3 -3
- {nxswriter-3.17.2 → nxswriter-3.19.0}/.ci/debian10_py2/Dockerfile +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/.ci/debian10_py3/Dockerfile +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/.ci/debian11_py3/Dockerfile +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/.ci/debian8_py2/Dockerfile +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/.ci/debian8_py3/Dockerfile +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/.ci/debian9_py2/Dockerfile +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/.ci/debian9_py3/Dockerfile +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/.ci/run.sh +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/.ci/ubuntu16.04_py2/Dockerfile +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/.ci/ubuntu16.04_py3/Dockerfile +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/.ci/ubuntu18.04_py2/Dockerfile +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/.ci/ubuntu18.04_py3/Dockerfile +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/.ci/ubuntu20.04_py3/Dockerfile +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/.flake8 +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/.gitignore +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/COPYRIGHT +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/MANIFEST.in +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/NXSDataWriter +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/XMLExamples/MNI.xml +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/XMLExamples/encodedImage.xml +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/XMLExamples/encodedImage4.xml +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/XMLExamples/scan.xml +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/XMLExamples/scan2.xml +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/XMLExamples/scan3.xml +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/XMLExamples/test.xml +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/XMLExamples/trigger.xml +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc/Makefile +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc/conf.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc/index.rst +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc/make.bat +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc/nxswriter.rst +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/AttrCanFail.html +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/AttrCurrentFileId.html +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/AttrErrors.html +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/AttrFileName.html +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/AttrJSONRecord.html +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/AttrSkipAcquisition.html +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/AttrStepsPerFile.html +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/AttrXMLSettings.html +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/Attributes.html +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/ClassDescription.html +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/CmdCloseEntry.html +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/CmdCloseEntryAsynch.html +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/CmdCloseFile.html +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/CmdOpenEntry.html +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/CmdOpenEntryAsynch.html +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/CmdOpenFile.html +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/CmdRecord.html +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/CmdRecordAsynch.html +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/CmdState.html +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/CmdStatus.html +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/Commands.html +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/States.html +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/TitleBanner.html +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/doc_html/index.html +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/man/NXSDataWriter.1 +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/man/nxsfromxml.1 +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxsfromxml +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/DBaseSource.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/DataHolder.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/DataSourceFactory.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/DataSourcePool.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/DataSources.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/DecoderPool.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/EAttribute.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/EField.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/EGroup.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/ELink.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/EStrategy.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/EVirtualField.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/Element.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/ElementThread.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/Errors.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/FElement.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/FetchNameHandler.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/H5Elements.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/InnerXMLParser.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/Metadata.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/NXSFromXML.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/NXSWriter.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/NexusXMLHandler.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/PyEvalSource.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/StreamSet.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/TangoSource.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/ThreadPool.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/Types.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter/__init__.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter.egg-info/SOURCES.txt +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter.egg-info/dependency_links.txt +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter.egg-info/not-zip-safe +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter.egg-info/requires.txt +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/nxswriter.egg-info/top_level.txt +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/setup.cfg +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/setup.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/Checkers.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ClientFieldTagAsynchH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ClientFieldTagAsynchH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ClientFieldTagServerH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ClientFieldTagServerH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ClientFieldTagWriterH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ClientFieldTagWriterH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ClientSource_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/Converters_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/DBFieldTagAsynchH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/DBFieldTagAsynchH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/DBFieldTagServerH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/DBFieldTagServerH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/DBFieldTagWriterH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/DBFieldTagWriterH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/DBaseSource_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/DataHolder_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/DataSourceDecoders_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/DataSourceFactory_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/DataSourcePool_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/DataSource_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/DecoderPool_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EAttributeH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EAttributeH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EDimH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EDimH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EDimensionsH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EDimensionsH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EDocH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EDocH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EFieldH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EFieldH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EFieldReshapeH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EFieldReshapeH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EFileH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EFileH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EGroupH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EGroupH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ELinkH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ELinkH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EStrategyH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/EStrategyH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ESymbolH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ESymbolH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ElementH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ElementH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ElementThread_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/Element_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/Errors_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/FElementH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/FElementH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/FElementWithAttrH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/FElementWithAttrH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/FetchNameHandler_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/FileWriterH5CppH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/FileWriterH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/FileWriterH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/H5CppWriter_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/H5PYWriter_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/InnerXMLParser_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/MYSQLSource_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/NTP_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/NXSDataWriterH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/NXSDataWriterH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/NXSFromXMLH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/NXSFromXMLH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/NexusXMLHandlerH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/NexusXMLHandlerH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ORACLESource_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/PGSQLSource_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ProxyHelper.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ProxyTools_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/PyEvalSource_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/PyEvalTangoSourceH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/PyEvalTangoSourceH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ServerSetUp.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/SimpleServer.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/SimpleServerSetUp.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/StreamSet_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TNObject_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TangoClassID.txt +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TangoDataWriterH5CppH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TangoDataWriterH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TangoDataWriterH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TangoFieldTagAsynchH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TangoFieldTagAsynchH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TangoFieldTagServerH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TangoFieldTagServerH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TangoFieldTagWriterH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TangoFieldTagWriterH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TangoSource_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TgDevice_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TgGroup_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TgMember_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/ThreadPool_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/TstDataSource.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/UINT32decoder_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/UTF8decoder_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/VDEOdecoder_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/XMLFieldTagAsynchH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/XMLFieldTagAsynchH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/XMLFieldTagServerH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/XMLFieldTagServerH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/XMLFieldTagWriterH5Cpp_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/XMLFieldTagWriterH5PY_test.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/__init__.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/__main__.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/main.py +0 -0
- {nxswriter-3.17.2 → nxswriter-3.19.0}/test/mydb.pgsql +0 -0
- {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.
|
|
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://
|
|
3
|
-
<classes name="NXSDataWriter" pogoRevision="9.
|
|
4
|
-
<description description="NXSDataWriter is a Tango server which allows to store NeXuS Data in H5 files.

The server provides storing data from other Tango devices,
various databases as well as passed by a user client via JSON strings.

Source code: https://github.com/nexdatas/nxsdatawriter
Project Web page: https://nexdatas.github.io/nxsdatawriter
NexDaTaS Web page: https://nexdatas.github.io" title="NeXus Data Writer" sourcePath="/home/jkotan/ndts/nexdatas.writer" language="Python" filestogenerate="XMI file,
|
|
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.

The server provides storing data from other Tango devices,
various databases as well as passed by a user client via JSON strings.

Source code: https://github.com/nexdatas/nxsdatawriter
Project Web page: https://nexdatas.github.io/nxsdatawriter
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: `
|
|
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.
|
|
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 `
|
|
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.
|
|
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 `
|
|
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.
|
|
82
|
+
$ wget http://repos.pni-hdri.de/trixie-pni-hdri.sources
|
|
83
83
|
|
|
84
84
|
To install tango server
|
|
85
85
|
|
|
@@ -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 \
|
|
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)
|
|
@@ -65,7 +65,15 @@ try:
|
|
|
65
65
|
WRITERS["h5redis"] = H5RedisWriter
|
|
66
66
|
except Exception:
|
|
67
67
|
pass
|
|
68
|
-
|
|
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.
|
|
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 `
|
|
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.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|