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