iris-pex-embedded-python 3.1.6b2__tar.gz → 3.2.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.
Potentially problematic release.
This version of iris-pex-embedded-python might be problematic. Click here for more details.
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/PKG-INFO +4 -2
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/pyproject.toml +4 -2
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/_utils.py +38 -1
- iris_pex_embedded_python-3.2.0/src/iop/cls/IOP/Message/JSONSchema.cls +125 -0
- iris_pex_embedded_python-3.2.0/src/iop/cls/IOP/Message.cls +729 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iris_pex_embedded_python.egg-info/PKG-INFO +4 -2
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iris_pex_embedded_python.egg-info/SOURCES.txt +1 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iris_pex_embedded_python.egg-info/requires.txt +2 -0
- iris_pex_embedded_python-3.1.6b2/src/iop/cls/IOP/Message.cls +0 -198
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/LICENSE +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/README.md +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/setup.cfg +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/setup.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/grongier/__init__.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/grongier/cls/Grongier/PEX/BusinessOperation.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/grongier/cls/Grongier/PEX/BusinessProcess.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/grongier/cls/Grongier/PEX/BusinessService.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/grongier/cls/Grongier/PEX/Common.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/grongier/cls/Grongier/PEX/Director.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/grongier/cls/Grongier/PEX/Duplex/Operation.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/grongier/cls/Grongier/PEX/Duplex/Process.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/grongier/cls/Grongier/PEX/Duplex/Service.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/grongier/cls/Grongier/PEX/InboundAdapter.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/grongier/cls/Grongier/PEX/Message.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/grongier/cls/Grongier/PEX/OutboundAdapter.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/grongier/cls/Grongier/PEX/PickleMessage.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/grongier/cls/Grongier/PEX/PrivateSession/Duplex.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/grongier/cls/Grongier/PEX/PrivateSession/Message/Ack.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/grongier/cls/Grongier/PEX/PrivateSession/Message/Poll.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/grongier/cls/Grongier/PEX/PrivateSession/Message/Start.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/grongier/cls/Grongier/PEX/PrivateSession/Message/Stop.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/grongier/cls/Grongier/PEX/Test.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/grongier/cls/Grongier/PEX/Utils.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/grongier/cls/Grongier/Service/WSGI.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/grongier/pex/__init__.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/grongier/pex/__main__.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/grongier/pex/_business_host.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/grongier/pex/_cli.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/grongier/pex/_common.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/grongier/pex/_director.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/grongier/pex/_utils.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/grongier/pex/wsgi/handlers.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_BufferReader.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_BufferWriter.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_ConnectionInformation.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_ConnectionParameters.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_Constant.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_DBList.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_Device.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_GatewayContext.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_GatewayException.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_GatewayUtility.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_IRIS.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_IRISConnection.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_IRISEmbedded.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_IRISGlobalNode.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_IRISGlobalNodeView.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_IRISIterator.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_IRISList.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_IRISNative.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_IRISOREF.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_IRISObject.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_IRISReference.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_InStream.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_LegacyIterator.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_ListItem.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_ListReader.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_ListWriter.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_LogFileStream.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_MessageHeader.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_OutStream.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_PrintStream.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_PythonGateway.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/_SharedMemorySocket.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/__init__.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/__main__.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/dbapi/_Column.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/dbapi/_DBAPI.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/dbapi/_Descriptor.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/dbapi/_IRISStream.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/dbapi/_Message.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/dbapi/_Parameter.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/dbapi/_ParameterCollection.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/dbapi/_ResultSetRow.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/dbapi/_SQLType.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/dbapi/__init__.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/dbapi/preparser/_PreParser.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/dbapi/preparser/_Scanner.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/dbapi/preparser/_Token.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/dbapi/preparser/_TokenList.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/dbapi/preparser/__init__.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/pex/_BusinessHost.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/pex/_BusinessOperation.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/pex/_BusinessProcess.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/pex/_BusinessService.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/pex/_Common.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/pex/_Director.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/pex/_IRISBusinessOperation.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/pex/_IRISBusinessService.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/pex/_IRISInboundAdapter.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/pex/_IRISOutboundAdapter.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/pex/_InboundAdapter.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/pex/_Message.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/pex/_OutboundAdapter.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/intersystems_iris/pex/__init__.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/__init__.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/__main__.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/_business_host.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/_business_operation.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/_business_process.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/_business_service.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/_cli.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/_common.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/_director.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/_inbound_adapter.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/_message.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/_outbound_adapter.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/_pickle_message.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/_private_session_duplex.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/_private_session_process.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/cls/IOP/BusinessOperation.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/cls/IOP/BusinessProcess.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/cls/IOP/BusinessService.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/cls/IOP/Common.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/cls/IOP/Director.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/cls/IOP/Duplex/Operation.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/cls/IOP/Duplex/Process.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/cls/IOP/Duplex/Service.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/cls/IOP/InboundAdapter.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/cls/IOP/OutboundAdapter.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/cls/IOP/PickleMessage.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/cls/IOP/PrivateSession/Duplex.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/cls/IOP/PrivateSession/Message/Ack.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/cls/IOP/PrivateSession/Message/Poll.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/cls/IOP/PrivateSession/Message/Start.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/cls/IOP/PrivateSession/Message/Stop.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/cls/IOP/Service/WSGI.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/cls/IOP/Test.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/cls/IOP/Utils.cls +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iop/wsgi/handlers.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iris_pex_embedded_python.egg-info/dependency_links.txt +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iris_pex_embedded_python.egg-info/entry_points.txt +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/iris_pex_embedded_python.egg-info/top_level.txt +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/irisnative/_IRISNative.py +0 -0
- {iris_pex_embedded_python-3.1.6b2 → iris_pex_embedded_python-3.2.0}/src/irisnative/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: iris_pex_embedded_python
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.2.0
|
|
4
4
|
Summary: Iris Interoperability based on Embedded Python
|
|
5
5
|
Author-email: grongier <guillaume.rongier@intersystems.com>
|
|
6
6
|
License: MIT License
|
|
@@ -48,6 +48,8 @@ Requires-Dist: dacite>=1.6.0
|
|
|
48
48
|
Requires-Dist: xmltodict>=0.12.0
|
|
49
49
|
Requires-Dist: iris-embedded-python-wrapper>=0.0.6
|
|
50
50
|
Requires-Dist: setuptools>=40.8.0
|
|
51
|
+
Requires-Dist: dc-schema>=0.0.8
|
|
52
|
+
Requires-Dist: jsonpath-ng>=1.7.0
|
|
51
53
|
|
|
52
54
|
# IoP (Interoperability On Python)
|
|
53
55
|
|
|
@@ -3,7 +3,7 @@ requires = ["setuptools", "wheel"]
|
|
|
3
3
|
|
|
4
4
|
[project]
|
|
5
5
|
name = "iris_pex_embedded_python"
|
|
6
|
-
version = "3.
|
|
6
|
+
version = "3.2.0"
|
|
7
7
|
description = "Iris Interoperability based on Embedded Python"
|
|
8
8
|
readme = "README.md"
|
|
9
9
|
authors = [
|
|
@@ -30,7 +30,9 @@ dependencies = [
|
|
|
30
30
|
"dacite >=1.6.0",
|
|
31
31
|
"xmltodict>=0.12.0",
|
|
32
32
|
"iris-embedded-python-wrapper>=0.0.6",
|
|
33
|
-
"setuptools
|
|
33
|
+
"setuptools>=40.8.0",
|
|
34
|
+
"dc-schema>=0.0.8",
|
|
35
|
+
"jsonpath-ng>=1.7.0"
|
|
34
36
|
]
|
|
35
37
|
|
|
36
38
|
license = { file = "LICENSE" }
|
|
@@ -6,6 +6,8 @@ import inspect
|
|
|
6
6
|
import xmltodict
|
|
7
7
|
import pkg_resources
|
|
8
8
|
import importlib
|
|
9
|
+
import json
|
|
10
|
+
from dc_schema import get_schema
|
|
9
11
|
|
|
10
12
|
class _Utils():
|
|
11
13
|
@staticmethod
|
|
@@ -33,6 +35,33 @@ class _Utils():
|
|
|
33
35
|
if path:
|
|
34
36
|
_Utils.raise_on_error(iris.cls('%SYSTEM.OBJ').LoadDir(path,'cubk',"*.cls",1))
|
|
35
37
|
|
|
38
|
+
@staticmethod
|
|
39
|
+
def register_message_schema(cls):
|
|
40
|
+
"""
|
|
41
|
+
It takes a class and registers the schema
|
|
42
|
+
|
|
43
|
+
:param cls: The class to register
|
|
44
|
+
"""
|
|
45
|
+
schema = get_schema(cls)
|
|
46
|
+
schema_name = cls.__module__ + '.' + cls.__name__
|
|
47
|
+
schema_str = json.dumps(schema)
|
|
48
|
+
categories = schema_name
|
|
49
|
+
_Utils.register_schema(schema_name,schema_str,categories)
|
|
50
|
+
|
|
51
|
+
@staticmethod
|
|
52
|
+
def register_schema(schema_name:str, schema_str:str,categories:str):
|
|
53
|
+
"""
|
|
54
|
+
It takes a schema name, a schema string, and a category string, and registers the schema
|
|
55
|
+
|
|
56
|
+
:param schema_name: The name of the schema
|
|
57
|
+
:type schema_name: str
|
|
58
|
+
:param schema_str: The schema as a string
|
|
59
|
+
:type schema_str: str
|
|
60
|
+
:param categories: The categories of the schema
|
|
61
|
+
:type categories: str
|
|
62
|
+
"""
|
|
63
|
+
_Utils.raise_on_error(iris.cls('IOP.Message.JSONSchema').Import(schema_str,categories,schema_name))
|
|
64
|
+
|
|
36
65
|
@staticmethod
|
|
37
66
|
def register_component(module:str,classname:str,path:str,overwrite:int=1,iris_classname:str='Python'):
|
|
38
67
|
"""
|
|
@@ -128,7 +157,7 @@ class _Utils():
|
|
|
128
157
|
extend = klass.bases[0].id
|
|
129
158
|
else:
|
|
130
159
|
extend = klass.bases[0].attr
|
|
131
|
-
if
|
|
160
|
+
if extend in ('BusinessOperation','BusinessProcess','BusinessService','DuplexService','DuplexProcess','DuplexOperation','InboundAdapter','OutboundAdapter'):
|
|
132
161
|
module = _Utils.filename_to_module(filename)
|
|
133
162
|
iris_class_name = f"{iris_package_name}.{module}.{klass.name}"
|
|
134
163
|
# strip "_" for iris class name
|
|
@@ -188,6 +217,8 @@ class _Utils():
|
|
|
188
217
|
list of dictionaries:
|
|
189
218
|
* key: the name of the production
|
|
190
219
|
* value: a dictionary containing the settings for the production
|
|
220
|
+
* SCHEMAS
|
|
221
|
+
List of classes
|
|
191
222
|
"""
|
|
192
223
|
path = None
|
|
193
224
|
# try to load the settings file
|
|
@@ -216,6 +247,12 @@ class _Utils():
|
|
|
216
247
|
_Utils.set_productions_settings(settings.PRODUCTIONS,path)
|
|
217
248
|
except AttributeError:
|
|
218
249
|
print("No productions to register")
|
|
250
|
+
try:
|
|
251
|
+
# set the schemas
|
|
252
|
+
for cls in settings.SCHEMAS:
|
|
253
|
+
_Utils.register_message_schema(cls)
|
|
254
|
+
except AttributeError:
|
|
255
|
+
print("No schemas to register")
|
|
219
256
|
try:
|
|
220
257
|
sys.path.remove(path)
|
|
221
258
|
except ValueError:
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
Class IOP.Message.JSONSchema Extends %Persistent
|
|
2
|
+
{
|
|
3
|
+
|
|
4
|
+
Property Name As %String;
|
|
5
|
+
|
|
6
|
+
Property Category As %String;
|
|
7
|
+
|
|
8
|
+
Property JSONSchema As %String(MAXLEN = "");
|
|
9
|
+
|
|
10
|
+
Index NameIndex On Name [ IdKey, Unique ];
|
|
11
|
+
|
|
12
|
+
/// Import a JSON Schema from file
|
|
13
|
+
ClassMethod ImportFromFile(
|
|
14
|
+
pFileName As %String,
|
|
15
|
+
pCategory As %String = "",
|
|
16
|
+
pName As %String) As %Status
|
|
17
|
+
{
|
|
18
|
+
Set pStatus = $$$OK
|
|
19
|
+
Try {
|
|
20
|
+
If '##class(%File).Exists(pFileName) {
|
|
21
|
+
Set pStatus = $$$ERROR($$$GeneralError, "File not found")
|
|
22
|
+
Return pStatus
|
|
23
|
+
}
|
|
24
|
+
Set tFile = ##class(%File).%New(pFileName)
|
|
25
|
+
$$$ThrowOnError(tFile.Open("R"))
|
|
26
|
+
Set tSchema = ""
|
|
27
|
+
While 'tFile.AtEnd {
|
|
28
|
+
Set tSchema = tSchema _ tFile.ReadLine()
|
|
29
|
+
}
|
|
30
|
+
Set pStatus = ..Import(tSchema, pCategory, pName)
|
|
31
|
+
} Catch ex {
|
|
32
|
+
Set pStatus = ex.AsStatus()
|
|
33
|
+
}
|
|
34
|
+
Return pStatus
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/// Store the JSON Schema in this object
|
|
38
|
+
ClassMethod Import(
|
|
39
|
+
pSchema As %String,
|
|
40
|
+
pCategory As %String = "",
|
|
41
|
+
pName As %String) As %Status
|
|
42
|
+
{
|
|
43
|
+
Set pStatus = $$$OK
|
|
44
|
+
Try {
|
|
45
|
+
if ##class(IOP.Message.JSONSchema).%ExistsId(pName) {
|
|
46
|
+
Set tThis = ##class(IOP.Message.JSONSchema).%OpenId(pName)
|
|
47
|
+
Set tThis.Category = pCategory
|
|
48
|
+
Set tThis.JSONSchema = pSchema
|
|
49
|
+
$$$ThrowOnError(tThis.%Save())
|
|
50
|
+
} Else {
|
|
51
|
+
Set tThis = ##class(IOP.Message.JSONSchema).%New()
|
|
52
|
+
Set tThis.Name = pName
|
|
53
|
+
Set tThis.Category = pCategory
|
|
54
|
+
Set tThis.JSONSchema = pSchema
|
|
55
|
+
$$$ThrowOnError(tThis.%Save())
|
|
56
|
+
}
|
|
57
|
+
} Catch ex {
|
|
58
|
+
Set pStatus = ex.AsStatus()
|
|
59
|
+
}
|
|
60
|
+
Quit pStatus
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/// Get a stored schema by category and name
|
|
64
|
+
ClassMethod GetSchema(
|
|
65
|
+
pName As %String = "",
|
|
66
|
+
Output pSchema As %String) As %Status
|
|
67
|
+
{
|
|
68
|
+
Set pStatus = $$$OK
|
|
69
|
+
Try {
|
|
70
|
+
Set tSql = "SELECT JSONSchema FROM IOP_Message.JSONSchema WHERE Name = ?"
|
|
71
|
+
Set tStatement = ##class(%SQL.Statement).%New()
|
|
72
|
+
Do tStatement.%Prepare(tSql)
|
|
73
|
+
set rs = tStatement.%Execute(pName)
|
|
74
|
+
If rs.%Next() {
|
|
75
|
+
Set pSchema = rs.%Get("JSONSchema")
|
|
76
|
+
} Else {
|
|
77
|
+
Set pStatus = $$$ERROR($$$GeneralError, "Schema not found")
|
|
78
|
+
}
|
|
79
|
+
} Catch ex {
|
|
80
|
+
Set pStatus = ex.AsStatus()
|
|
81
|
+
}
|
|
82
|
+
Return pStatus
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/// Validate JSON data against a stored schema
|
|
86
|
+
ClassMethod ValidateJSONSchema(
|
|
87
|
+
pJSON As %String,
|
|
88
|
+
pName As %String) As %Status
|
|
89
|
+
{
|
|
90
|
+
Set tSC = $$$OK
|
|
91
|
+
Try {
|
|
92
|
+
Set tSchema = ""
|
|
93
|
+
Set tSC = ..GetSchema(pName, .tSchema)
|
|
94
|
+
If $$$ISERR(tSC) Return tSC
|
|
95
|
+
// Validate JSON data against schema
|
|
96
|
+
// To be implemented
|
|
97
|
+
Set tSC = $$$OK
|
|
98
|
+
} Catch ex {
|
|
99
|
+
Set tSC = ex.AsStatus()
|
|
100
|
+
}
|
|
101
|
+
Return tSC
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
Storage Default
|
|
105
|
+
{
|
|
106
|
+
<Data name="JSONSchemaDefaultData">
|
|
107
|
+
<Value name="1">
|
|
108
|
+
<Value>%%CLASSNAME</Value>
|
|
109
|
+
</Value>
|
|
110
|
+
<Value name="2">
|
|
111
|
+
<Value>JSONSchema</Value>
|
|
112
|
+
</Value>
|
|
113
|
+
<Value name="3">
|
|
114
|
+
<Value>Category</Value>
|
|
115
|
+
</Value>
|
|
116
|
+
</Data>
|
|
117
|
+
<DataLocation>^IOP.Message.JSONSchemaD</DataLocation>
|
|
118
|
+
<DefaultData>JSONSchemaDefaultData</DefaultData>
|
|
119
|
+
<IdLocation>^IOP.Message.JSONSchemaD</IdLocation>
|
|
120
|
+
<IndexLocation>^IOP.Message.JSONSchemaI</IndexLocation>
|
|
121
|
+
<StreamLocation>^IOP.Message.JSONSchemaS</StreamLocation>
|
|
122
|
+
<Type>%Storage.Persistent</Type>
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
}
|