iris-pex-embedded-python 3.0.1b8__tar.gz → 3.0.1b10__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.0.1b8/src/iris_pex_embedded_python.egg-info → iris_pex_embedded_python-3.0.1b10}/PKG-INFO +1 -1
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/pyproject.toml +1 -1
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/_business_host.py +102 -1
- iris_pex_embedded_python-3.0.1b10/src/iop/cls/IOP/Common.cls +338 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10/src/iris_pex_embedded_python.egg-info}/PKG-INFO +1 -1
- iris_pex_embedded_python-3.0.1b8/src/iop/cls/IOP/Common.cls +0 -203
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/LICENSE +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/README.md +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/setup.cfg +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/setup.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/__init__.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/BusinessOperation.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/BusinessProcess.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/BusinessService.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/Common.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/Director.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/Duplex/Operation.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/Duplex/Process.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/Duplex/Service.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/InboundAdapter.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/Message.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/OutboundAdapter.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/PickleMessage.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/PrivateSession/Duplex.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/PrivateSession/Message/Ack.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/PrivateSession/Message/Poll.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/PrivateSession/Message/Start.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/PrivateSession/Message/Stop.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/Test.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/Utils.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/Service/WSGI.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/pex/__init__.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/pex/__main__.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/pex/_business_host.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/pex/_cli.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/pex/_common.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/pex/_director.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/pex/_utils.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/pex/wsgi/handlers.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_BufferReader.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_BufferWriter.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_ConnectionInformation.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_ConnectionParameters.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_Constant.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_DBList.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_Device.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_GatewayContext.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_GatewayException.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_GatewayUtility.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_IRIS.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_IRISConnection.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_IRISEmbedded.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_IRISGlobalNode.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_IRISGlobalNodeView.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_IRISIterator.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_IRISList.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_IRISNative.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_IRISOREF.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_IRISObject.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_IRISReference.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_InStream.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_LegacyIterator.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_ListItem.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_ListReader.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_ListWriter.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_LogFileStream.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_MessageHeader.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_OutStream.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_PrintStream.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_PythonGateway.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_SharedMemorySocket.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/__init__.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/__main__.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/dbapi/_Column.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/dbapi/_DBAPI.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/dbapi/_Descriptor.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/dbapi/_IRISStream.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/dbapi/_Message.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/dbapi/_Parameter.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/dbapi/_ParameterCollection.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/dbapi/_ResultSetRow.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/dbapi/_SQLType.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/dbapi/__init__.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/dbapi/preparser/_PreParser.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/dbapi/preparser/_Scanner.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/dbapi/preparser/_Token.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/dbapi/preparser/_TokenList.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/dbapi/preparser/__init__.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/pex/_BusinessHost.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/pex/_BusinessOperation.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/pex/_BusinessProcess.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/pex/_BusinessService.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/pex/_Common.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/pex/_Director.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/pex/_IRISBusinessOperation.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/pex/_IRISBusinessService.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/pex/_IRISInboundAdapter.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/pex/_IRISOutboundAdapter.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/pex/_InboundAdapter.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/pex/_Message.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/pex/_OutboundAdapter.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/pex/__init__.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/__init__.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/__main__.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/_business_operation.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/_business_process.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/_business_service.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/_cli.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/_common.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/_director.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/_inbound_adapter.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/_message.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/_outbound_adapter.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/_pickle_message.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/_private_session_duplex.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/_private_session_process.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/_utils.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/BusinessOperation.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/BusinessProcess.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/BusinessService.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/Director.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/Duplex/Operation.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/Duplex/Process.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/Duplex/Service.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/InboundAdapter.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/Message.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/OutboundAdapter.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/PickleMessage.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/PrivateSession/Duplex.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/PrivateSession/Message/Ack.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/PrivateSession/Message/Poll.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/PrivateSession/Message/Start.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/PrivateSession/Message/Stop.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/Service/WSGI.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/Test.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/Utils.cls +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/wsgi/handlers.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iris/__init__.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iris/__init__.pyi +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iris/_cli.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iris/iris_ipm.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iris/iris_ipm.pyi +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iris/iris_utils.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iris_pex_embedded_python.egg-info/SOURCES.txt +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iris_pex_embedded_python.egg-info/dependency_links.txt +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iris_pex_embedded_python.egg-info/entry_points.txt +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iris_pex_embedded_python.egg-info/requires.txt +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iris_pex_embedded_python.egg-info/top_level.txt +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/irisnative/_IRISNative.py +0 -0
- {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/irisnative/__init__.py +0 -0
{iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/_business_host.py
RENAMED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import asyncio
|
|
1
2
|
import datetime
|
|
2
3
|
import pickle
|
|
3
4
|
import codecs
|
|
@@ -133,7 +134,6 @@ class _BusinessHost(_Common):
|
|
|
133
134
|
Raises:
|
|
134
135
|
TypeError: if request is not of type Message or IRISObject.
|
|
135
136
|
"""
|
|
136
|
-
|
|
137
137
|
return self.iris_handle.dispatchSendRequestSync(target,request,timeout,description)
|
|
138
138
|
|
|
139
139
|
@input_serialzer_param(1,'request')
|
|
@@ -151,6 +151,50 @@ class _BusinessHost(_Common):
|
|
|
151
151
|
"""
|
|
152
152
|
|
|
153
153
|
return self.iris_handle.dispatchSendRequestAsync(target,request,description)
|
|
154
|
+
|
|
155
|
+
async def send_request_async_ng(self, target, request, timeout=-1, description=None):
|
|
156
|
+
""" Send the specified message to the target business process or business operation asynchronously.
|
|
157
|
+
Parameters:
|
|
158
|
+
target: a string that specifies the name of the business process or operation to receive the request.
|
|
159
|
+
The target is the name of the component as specified in the Item Name property in the production definition, not the class name of the component.
|
|
160
|
+
request: specifies the message to send to the target. The request is an instance of IRISObject or of a subclass of Message.
|
|
161
|
+
If the target is a built-in ObjectScript component, you should use the IRISObject class. The IRISObject class enables the PEX framework to convert the message to a class supported by the target.
|
|
162
|
+
description: an optional string parameter that sets a description property in the message header. The default is None.
|
|
163
|
+
"""
|
|
164
|
+
return await _send_request_async_ng(target, request, timeout ,description, self)
|
|
165
|
+
|
|
166
|
+
def send_multi_request_sync(self, target_request:list, timeout=-1, description=None)->list:
|
|
167
|
+
""" Send the specified list of tuple (target,request) to business process or business operation synchronously.
|
|
168
|
+
|
|
169
|
+
Parameters:
|
|
170
|
+
target_request: a list of tuple (target,request) that specifies the name of the business process or operation to receive the request.
|
|
171
|
+
The target is the name of the component as specified in the Item Name property in the production definition, not the class name of the component.
|
|
172
|
+
The request is either an instance of a class that is a subclass of Message class or of IRISObject class.
|
|
173
|
+
timeout: an optional integer that specifies the number of seconds to wait before treating the send request as a failure. The default value is -1, which means wait forever.
|
|
174
|
+
description: an optional string parameter that sets a description property in the message header. The default is None.
|
|
175
|
+
Returns:
|
|
176
|
+
the list of tuple (target,request,response,status).
|
|
177
|
+
"""
|
|
178
|
+
# create a list of iris.Ens.CallStructure for each target_request
|
|
179
|
+
call_list = []
|
|
180
|
+
for target,request in target_request:
|
|
181
|
+
call = iris.cls("Ens.CallStructure")._New()
|
|
182
|
+
call.TargetDispatchName = target
|
|
183
|
+
call.Request = self._dispatch_serializer(request)
|
|
184
|
+
call_list.append(call)
|
|
185
|
+
# call the dispatchSendMultiRequestSync method
|
|
186
|
+
response_list = self.iris_handle.dispatchSendRequestSyncMultiple(call_list,timeout)
|
|
187
|
+
# create a list of tuple (target,request,response,status)
|
|
188
|
+
result = []
|
|
189
|
+
for i in range(len(target_request)):
|
|
190
|
+
result.append(
|
|
191
|
+
(target_request[i][0],
|
|
192
|
+
target_request[i][1],
|
|
193
|
+
self._dispatch_deserializer(response_list[i].Response),
|
|
194
|
+
response_list[i].ResponseCode
|
|
195
|
+
))
|
|
196
|
+
return result
|
|
197
|
+
|
|
154
198
|
|
|
155
199
|
def _serialize_pickle_message(self,message):
|
|
156
200
|
""" Converts a python dataclass message into an iris iop.message.
|
|
@@ -517,3 +561,60 @@ class IrisJSONDecoder(json.JSONDecoder):
|
|
|
517
561
|
else:
|
|
518
562
|
ret[key] = value
|
|
519
563
|
return ret
|
|
564
|
+
|
|
565
|
+
class _send_request_async_ng(asyncio.Future):
|
|
566
|
+
|
|
567
|
+
_message_header_id = 0
|
|
568
|
+
_queue_name = ""
|
|
569
|
+
_end_time = 0
|
|
570
|
+
_response = None
|
|
571
|
+
_done = False
|
|
572
|
+
|
|
573
|
+
def __init__(self, target, request, timeout=-1, description=None, host=None):
|
|
574
|
+
super().__init__()
|
|
575
|
+
self.target = target
|
|
576
|
+
self.request = request
|
|
577
|
+
self.timeout = timeout
|
|
578
|
+
self.description = description
|
|
579
|
+
self.host = host
|
|
580
|
+
self._iris_handle = host.iris_handle
|
|
581
|
+
asyncio.create_task(self.send())
|
|
582
|
+
|
|
583
|
+
async def send(self):
|
|
584
|
+
# init parameters
|
|
585
|
+
message_header_id = iris.ref()
|
|
586
|
+
queue_name = iris.ref()
|
|
587
|
+
end_time = iris.ref()
|
|
588
|
+
request = self.host._dispatch_serializer(self.request)
|
|
589
|
+
|
|
590
|
+
# send request
|
|
591
|
+
self._iris_handle.dispatchSendRequestAsyncNG(
|
|
592
|
+
self.target, request, self.timeout, self.description,
|
|
593
|
+
message_header_id, queue_name, end_time)
|
|
594
|
+
|
|
595
|
+
# get byref values
|
|
596
|
+
self._message_header_id = message_header_id.value
|
|
597
|
+
self._queue_name = queue_name.value
|
|
598
|
+
self._end_time = end_time.value
|
|
599
|
+
|
|
600
|
+
while not self._done:
|
|
601
|
+
await asyncio.sleep(0.1)
|
|
602
|
+
self.is_done()
|
|
603
|
+
|
|
604
|
+
self.set_result(self._response)
|
|
605
|
+
|
|
606
|
+
def is_done(self):
|
|
607
|
+
response = iris.ref()
|
|
608
|
+
status = self._iris_handle.dispatchIsRequestDone(self.timeout, self._end_time,
|
|
609
|
+
self._queue_name, self._message_header_id,
|
|
610
|
+
response)
|
|
611
|
+
|
|
612
|
+
self._response = self.host._dispatch_deserializer(response.value)
|
|
613
|
+
|
|
614
|
+
if status == 2: # message found
|
|
615
|
+
self._done = True
|
|
616
|
+
elif status == 1: # message not found
|
|
617
|
+
pass
|
|
618
|
+
else:
|
|
619
|
+
self._done = True
|
|
620
|
+
self.set_exception(RuntimeError(iris.system.Status.GetOneStatusText(status)))
|
|
@@ -0,0 +1,338 @@
|
|
|
1
|
+
/* Copyright (c) 2021 by InterSystems Corporation.
|
|
2
|
+
Cambridge, Massachusetts, U.S.A. All rights reserved.
|
|
3
|
+
Confidential property of InterSystems Corporation. */
|
|
4
|
+
|
|
5
|
+
Include Ensemble
|
|
6
|
+
|
|
7
|
+
Class IOP.Common [ Abstract, ClassType = "", ProcedureBlock, System = 4 ]
|
|
8
|
+
{
|
|
9
|
+
|
|
10
|
+
/// One or more Classpaths (separated by '|' character) needed in addition to the ones configured in the Java Gateway Service
|
|
11
|
+
Property %classpaths As %String(MAXLEN = "");
|
|
12
|
+
|
|
13
|
+
Property %classname As %String(MAXLEN = "");
|
|
14
|
+
|
|
15
|
+
Property %module As %String(MAXLEN = "");
|
|
16
|
+
|
|
17
|
+
Property %settings As %String(MAXLEN = "");
|
|
18
|
+
|
|
19
|
+
/// Instance of class
|
|
20
|
+
Property %class As %SYS.Python;
|
|
21
|
+
|
|
22
|
+
/// Get Class
|
|
23
|
+
Method GetClass() As %SYS.Python
|
|
24
|
+
{
|
|
25
|
+
Return ..%class
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/// Get Classname
|
|
29
|
+
Method GetClassname() As %String
|
|
30
|
+
{
|
|
31
|
+
Return ..%classname
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/// Get Classname
|
|
35
|
+
Method GetModule() As %String
|
|
36
|
+
{
|
|
37
|
+
Return ..%module
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
Method OnInit() As %Status
|
|
41
|
+
{
|
|
42
|
+
set tSC = $$$OK
|
|
43
|
+
try {
|
|
44
|
+
$$$ThrowOnError(..Connect())
|
|
45
|
+
do ..%class."_dispatch_on_init"($this)
|
|
46
|
+
} catch ex {
|
|
47
|
+
set tSC = ex.AsStatus()
|
|
48
|
+
}
|
|
49
|
+
quit tSC
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
ClassMethod SetPythonPath(pClasspaths)
|
|
53
|
+
{
|
|
54
|
+
set sys = ##class(%SYS.Python).Import("sys")
|
|
55
|
+
|
|
56
|
+
for i=0:1:(sys.path."__len__"()-1) {
|
|
57
|
+
Try {
|
|
58
|
+
if sys.path."__getitem__"(i) = pClasspaths {
|
|
59
|
+
do sys.path."__delitem__"(i)
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
Catch ex {
|
|
63
|
+
// do nothing
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
}
|
|
67
|
+
do sys.path.insert(0, pClasspaths)
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
Method Connect() As %Status
|
|
71
|
+
{
|
|
72
|
+
set tSC = $$$OK
|
|
73
|
+
try {
|
|
74
|
+
|
|
75
|
+
set container = $this
|
|
76
|
+
|
|
77
|
+
//set classpass
|
|
78
|
+
if ..%classpaths '="" {
|
|
79
|
+
set delimiter = $s($system.Version.GetOS()="Windows":";",1:":")
|
|
80
|
+
set extraClasspaths = $tr(container.%classpaths,delimiter,"|")
|
|
81
|
+
for i=1:1:$l(extraClasspaths,"|") {
|
|
82
|
+
set onePath = $p(extraClasspaths,"|",i)
|
|
83
|
+
set onePath = ##class(%File).NormalizeDirectory(onePath)
|
|
84
|
+
do ..SetPythonPath(onePath)
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if $isObject(..%class)=0 {
|
|
88
|
+
set importlib = ##class(%SYS.Python).Import("importlib")
|
|
89
|
+
set builtins = ##class(%SYS.Python).Import("builtins")
|
|
90
|
+
set module = importlib."import_module"(..%module)
|
|
91
|
+
set class = builtins.getattr(module, ..%classname)
|
|
92
|
+
set ..%class = class."__new__"(class)
|
|
93
|
+
}
|
|
94
|
+
;
|
|
95
|
+
if ..%Extends("IOP.InboundAdapter") || ..%Extends("IOP.OutboundAdapter") {
|
|
96
|
+
do ..%class."_set_iris_handles"($this,..BusinessHost)
|
|
97
|
+
} elseif $this.%Extends("IOP.BusinessProcess") {
|
|
98
|
+
do ..%class."_set_iris_handles"($this,$$$NULLOREF)
|
|
99
|
+
} else {
|
|
100
|
+
do ..%class."_set_iris_handles"($this,..Adapter)
|
|
101
|
+
}
|
|
102
|
+
;
|
|
103
|
+
do ..SetPropertyValues()
|
|
104
|
+
;
|
|
105
|
+
try {
|
|
106
|
+
do ..%class."_dispatch_on_connected"($this)
|
|
107
|
+
} catch ex {
|
|
108
|
+
$$$LOGWARNING(ex.DisplayString())
|
|
109
|
+
}
|
|
110
|
+
;
|
|
111
|
+
} catch ex {
|
|
112
|
+
set msg = $System.Status.GetOneStatusText(ex.AsStatus(),1)
|
|
113
|
+
set tSC = $$$ERROR($$$EnsErrGeneral,msg)
|
|
114
|
+
}
|
|
115
|
+
quit tSC
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
Method OnTearDown() As %Status
|
|
119
|
+
{
|
|
120
|
+
set tSC = $$$OK
|
|
121
|
+
do ..%class."_dispatch_on_tear_down"()
|
|
122
|
+
quit tSC
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
Method SetPropertyValues()
|
|
126
|
+
{
|
|
127
|
+
set remoteSettings = $tr(..%settings,$c(13))
|
|
128
|
+
for i=1:1:$l(remoteSettings,$c(10)) {
|
|
129
|
+
set oneLine = $p(remoteSettings,$c(10),i)
|
|
130
|
+
set property = $p(oneLine,"=",1) continue:property=""
|
|
131
|
+
set value = $p(oneLine,"=",2,*)
|
|
132
|
+
try {
|
|
133
|
+
set $property(..%class,property) = value
|
|
134
|
+
} catch ex {
|
|
135
|
+
$$$LOGWARNING(ex.DisplayString())
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
quit
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
Method dispatchSendRequestSync(
|
|
142
|
+
pTarget,
|
|
143
|
+
pRequest,
|
|
144
|
+
timeout,
|
|
145
|
+
pDescription) As %String
|
|
146
|
+
{
|
|
147
|
+
set tSC = ..SendRequestSync(pTarget,pRequest,.objResponse,timeout,pDescription)
|
|
148
|
+
if $$$ISERR(tSC) throw ##class(%Exception.StatusException).CreateFromStatus(tSC)
|
|
149
|
+
quit $g(objResponse)
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
Method dispatchSendRequestSyncMultiple(
|
|
153
|
+
pCallStructList As %List,
|
|
154
|
+
pTimeout As %Numeric = -1) As %List
|
|
155
|
+
{
|
|
156
|
+
set builtins = ##class(%SYS.Python).Import("builtins")
|
|
157
|
+
// Convert %List to multidimensional array
|
|
158
|
+
set tCallStructList=builtins.len(pCallStructList)
|
|
159
|
+
for i=0:1:builtins.len(pCallStructList)-1 {
|
|
160
|
+
set tCallStructList(i+1) = pCallStructList."__getitem__"(i)
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
set tSC = ..SendRequestSyncMultiple(.tCallStructList,pTimeout)
|
|
164
|
+
if $$$ISERR(tSC) throw ##class(%Exception.StatusException).CreateFromStatus(tSC)
|
|
165
|
+
|
|
166
|
+
// Convert multidimensional array to Python list
|
|
167
|
+
set tResponseList = builtins.list()
|
|
168
|
+
|
|
169
|
+
for i=1:1:tCallStructList {
|
|
170
|
+
do tResponseList.append(tCallStructList(i))
|
|
171
|
+
}
|
|
172
|
+
quit tResponseList
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
Method dispatchSendRequestAsync(
|
|
176
|
+
pTarget,
|
|
177
|
+
pRequest,
|
|
178
|
+
pDescription)
|
|
179
|
+
{
|
|
180
|
+
set tSC = ..SendRequestAsync(pTarget,pRequest,pDescription)
|
|
181
|
+
if $$$ISERR(tSC) throw ##class(%Exception.StatusException).CreateFromStatus(tSC)
|
|
182
|
+
quit
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
ClassMethod OnGetConnections(
|
|
186
|
+
Output pArray As %String,
|
|
187
|
+
pItem As Ens.Config.Item)
|
|
188
|
+
{
|
|
189
|
+
// finds any settings of type Ens.DataType.ConfigName
|
|
190
|
+
do ..GetPropertyConnections(.pArray,pItem)
|
|
191
|
+
|
|
192
|
+
// Get settings
|
|
193
|
+
do pItem.GetModifiedSetting("%classpaths", .tClasspaths)
|
|
194
|
+
do pItem.GetModifiedSetting("%classname", .tClassname)
|
|
195
|
+
do pItem.GetModifiedSetting("%module", .tModule)
|
|
196
|
+
|
|
197
|
+
// try to instantiate class
|
|
198
|
+
if tClasspaths '="" {
|
|
199
|
+
set sys = ##class(%SYS.Python).Import("sys")
|
|
200
|
+
set delimiter = $s($system.Version.GetOS()="Windows":";",1:":")
|
|
201
|
+
set extraClasspaths = $tr(tClasspaths,delimiter,"|")
|
|
202
|
+
for i=1:1:$l(extraClasspaths,"|") {
|
|
203
|
+
set onePath = $p(extraClasspaths,"|",i)
|
|
204
|
+
set onePath = ##class(%File).NormalizeDirectory(onePath)
|
|
205
|
+
if onePath?1"$$IRISHOME"1P.E set onePath = $e($system.Util.InstallDirectory(),1,*-1)_$e(onePath,11,*)
|
|
206
|
+
if onePath'="" do sys.path.append(onePath)
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
set importlib = ##class(%SYS.Python).Import("importlib")
|
|
210
|
+
set builtins = ##class(%SYS.Python).Import("builtins")
|
|
211
|
+
set module = importlib."import_module"(tModule)
|
|
212
|
+
set class = builtins.getattr(module, tClassname)
|
|
213
|
+
set tClass = class."__new__"(class)
|
|
214
|
+
|
|
215
|
+
set tPythonList = tClass."on_get_connections"()
|
|
216
|
+
set tPythonListLen = tPythonList."__len__"()
|
|
217
|
+
for i=0:1:(tPythonListLen-1) {
|
|
218
|
+
set tPythonItem = tPythonList."__getitem__"(i)
|
|
219
|
+
set pArray(tPythonItem) = ""
|
|
220
|
+
#; set ^AALog(pItem.Name,tPythonItem) = ""
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
quit
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
Method dispatchSendRequestAsyncNG(
|
|
227
|
+
pTarget,
|
|
228
|
+
pRequest,
|
|
229
|
+
pTimeout,
|
|
230
|
+
pDescription,
|
|
231
|
+
ByRef pMessageHeaderId,
|
|
232
|
+
ByRef pQueueName,
|
|
233
|
+
ByRef pEndTime) As %String
|
|
234
|
+
{
|
|
235
|
+
set tSC=$$$OK, tResponse=$$$NULLOREF
|
|
236
|
+
try {
|
|
237
|
+
|
|
238
|
+
set tTargetDispatchName=pTarget
|
|
239
|
+
set tTargetConfigName=$get($$$DispatchNameToConfigName(pTarget))
|
|
240
|
+
if tTargetConfigName="" set tSC=$$$EnsError($$$EnsErrBusinessDispatchNameNotRegistered,tTargetDispatchName) quit
|
|
241
|
+
set tTargetBusinessClass = $$$ConfigClassName(tTargetConfigName)
|
|
242
|
+
set tINVOCATION=$classmethod(tTargetBusinessClass,"%GetParameter","INVOCATION")
|
|
243
|
+
if (tINVOCATION'="Queue")&&(tINVOCATION'="InProc") set tSC=$$$ERROR($$$EnsErrParameterInvocationInvalid,tTargetBusinessClass) quit
|
|
244
|
+
|
|
245
|
+
quit:$$$ISERR(tSC)
|
|
246
|
+
;
|
|
247
|
+
set tStartTime=$zh
|
|
248
|
+
set:pTimeout'=-1 tEndTime=$zh+pTimeout
|
|
249
|
+
|
|
250
|
+
if tINVOCATION="InProc" {
|
|
251
|
+
set tTimeout=$s(pTimeout=-1:-1,1:tEndTime-$zh)
|
|
252
|
+
if (pTimeout'=-1)&&(tTimeout<0) quit
|
|
253
|
+
set tSC=..SendRequestSync(tTargetConfigName,pRequest,.tResponse,tTimeout,pDescription)
|
|
254
|
+
return tResponse
|
|
255
|
+
} elseif tINVOCATION="Queue" {
|
|
256
|
+
Set tSessionId=..%SessionId
|
|
257
|
+
Set tSuperSession = ..%SuperSession
|
|
258
|
+
Set tSC = ##class(Ens.MessageHeader).NewRequestMessage(.tRequestHeader,pRequest,.tSessionId,.tSuperSession) quit:$$$ISERR(tSC)
|
|
259
|
+
Set ..%SessionId=tSessionId
|
|
260
|
+
Set ..%SuperSession=tSuperSession
|
|
261
|
+
Set tRequestHeader.SourceConfigName = ..%ConfigName
|
|
262
|
+
Set tRequestHeader.TargetConfigName = tTargetConfigName
|
|
263
|
+
Set tRequestHeader.SourceBusinessType = $$$ConfigBusinessType($$$DispatchNameToConfigName(..%ConfigName))
|
|
264
|
+
Set tRequestHeader.TargetBusinessType = $$$ConfigBusinessType($$$DispatchNameToConfigName(tTargetConfigName))
|
|
265
|
+
Set tRequestHeader.TargetQueueName = $$$getConfigQueueName($$$DispatchNameToConfigName(tTargetConfigName),..%SessionId)
|
|
266
|
+
Set tRequestHeader.ReturnQueueName = $$$queueSyncCallQueueName
|
|
267
|
+
Set tRequestHeader.BusinessProcessId = ""
|
|
268
|
+
Set tRequestHeader.Priority = $$$eMessagePriorityAsync
|
|
269
|
+
Set tRequestHeader.Description = pDescription
|
|
270
|
+
Set tSC = ##class(Ens.Queue).Create($$$queueSyncCallQueueName) quit:$$$ISERR(tSC)
|
|
271
|
+
Set tSC = ##class(Ens.Queue).EnQueue(tRequestHeader) quit:$$$ISERR(tSC)
|
|
272
|
+
Set pMessageHeaderId = tRequestHeader.MessageId()
|
|
273
|
+
Set pQueueName = $$$queueSyncCallQueueName
|
|
274
|
+
Set:(pTimeout'=-1) pEndTime = tEndTime
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
catch {
|
|
278
|
+
set tSC = $$$EnsSystemError
|
|
279
|
+
}
|
|
280
|
+
quit tSC
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
Method dispatchIsRequestDone(
|
|
284
|
+
pTimeout,
|
|
285
|
+
pEndTime,
|
|
286
|
+
pQueueName,
|
|
287
|
+
pMessageHeaderId,
|
|
288
|
+
ByRef pResponse) As %Status
|
|
289
|
+
{
|
|
290
|
+
|
|
291
|
+
set tSC=$$$OK
|
|
292
|
+
try {
|
|
293
|
+
set tTimeout=$s(pTimeout=-1:-1,1:pEndTime-$zh)
|
|
294
|
+
|
|
295
|
+
set tSC = ##class(Ens.Queue).DeQueue($$$queueSyncCallQueueName,.tResponseHeader,tTimeout,.tIsTimedOut,0) Quit:$$$ISERR(tSC)
|
|
296
|
+
|
|
297
|
+
quit:$IsObject(tResponseHeader)=0
|
|
298
|
+
|
|
299
|
+
set tFound = $select(tResponseHeader.CorrespondingMessageId: pMessageHeaderId=tResponseHeader.CorrespondingMessageId, 1: 0)
|
|
300
|
+
if tFound=0 {
|
|
301
|
+
|
|
302
|
+
set tSC = ##class(Ens.Queue).EnQueue(tResponseHeader)
|
|
303
|
+
Kill $$$EnsActiveMessage($$$SystemName_":"_$Job)
|
|
304
|
+
}
|
|
305
|
+
else {
|
|
306
|
+
|
|
307
|
+
if tIsTimedOut || ((pTimeout'=-1)&&(tTimeout<0)) {
|
|
308
|
+
|
|
309
|
+
do tResponseHeader.SetStatus($$$eMessageStatusDiscarded)
|
|
310
|
+
return $$$ERROR($$$EnsErrFailureTimeout, tTimeout, $$$StatusDisplayString(tSC), $$$CurrentClass)
|
|
311
|
+
}
|
|
312
|
+
if tResponseHeader.IsError {
|
|
313
|
+
|
|
314
|
+
do tResponseHeader.SetStatus($$$eMessageStatusCompleted)
|
|
315
|
+
return $$$EnsError($$$EnsErrGeneral,"Error message received: "_tResponseHeader.ErrorText)
|
|
316
|
+
|
|
317
|
+
}
|
|
318
|
+
if tResponseHeader.MessageBodyClassName'="" {
|
|
319
|
+
|
|
320
|
+
set tResponse = $classmethod(tResponseHeader.MessageBodyClassName,"%OpenId",tResponseHeader.MessageBodyId,,.tSC)
|
|
321
|
+
if '$IsObject(tResponse) return $$$EnsError($$$EnsErrGeneral,"Could not open MessageBody "_tResponseHeader.MessageBodyId_" for MessageHeader #"_tResponseHeader.%Id()_" with body class "_tResponseHeader.MessageBodyClassName_":"_$$$StatusDisplayString(tSC))
|
|
322
|
+
} else {
|
|
323
|
+
|
|
324
|
+
set tResponse=$$$NULLOREF
|
|
325
|
+
}
|
|
326
|
+
set pResponse=tResponse
|
|
327
|
+
do tResponseHeader.SetStatus($$$eMessageStatusCompleted)
|
|
328
|
+
set tSC = 2
|
|
329
|
+
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
catch ex {
|
|
333
|
+
set tSC = ex.AsStatus()
|
|
334
|
+
}
|
|
335
|
+
quit tSC
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
}
|
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
/* Copyright (c) 2021 by InterSystems Corporation.
|
|
2
|
-
Cambridge, Massachusetts, U.S.A. All rights reserved.
|
|
3
|
-
Confidential property of InterSystems Corporation. */
|
|
4
|
-
|
|
5
|
-
Include Ensemble
|
|
6
|
-
|
|
7
|
-
Class IOP.Common [ Abstract, ClassType = "", ProcedureBlock, System = 4 ]
|
|
8
|
-
{
|
|
9
|
-
|
|
10
|
-
/// One or more Classpaths (separated by '|' character) needed in addition to the ones configured in the Java Gateway Service
|
|
11
|
-
Property %classpaths As %String(MAXLEN = "");
|
|
12
|
-
|
|
13
|
-
Property %classname As %String(MAXLEN = "");
|
|
14
|
-
|
|
15
|
-
Property %module As %String(MAXLEN = "");
|
|
16
|
-
|
|
17
|
-
Property %settings As %String(MAXLEN = "");
|
|
18
|
-
|
|
19
|
-
/// Instance of class
|
|
20
|
-
Property %class As %SYS.Python;
|
|
21
|
-
|
|
22
|
-
/// Get Class
|
|
23
|
-
Method GetClass() As %SYS.Python
|
|
24
|
-
{
|
|
25
|
-
Return ..%class
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/// Get Classname
|
|
29
|
-
Method GetClassname() As %String
|
|
30
|
-
{
|
|
31
|
-
Return ..%classname
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/// Get Classname
|
|
35
|
-
Method GetModule() As %String
|
|
36
|
-
{
|
|
37
|
-
Return ..%module
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
Method OnInit() As %Status
|
|
41
|
-
{
|
|
42
|
-
set tSC = $$$OK
|
|
43
|
-
try {
|
|
44
|
-
$$$ThrowOnError(..Connect())
|
|
45
|
-
do ..%class."_dispatch_on_init"($this)
|
|
46
|
-
} catch ex {
|
|
47
|
-
set tSC = ex.AsStatus()
|
|
48
|
-
}
|
|
49
|
-
quit tSC
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
ClassMethod SetPythonPath(pClasspaths)
|
|
53
|
-
{
|
|
54
|
-
set sys = ##class(%SYS.Python).Import("sys")
|
|
55
|
-
|
|
56
|
-
for i=0:1:(sys.path."__len__"()-1) {
|
|
57
|
-
Try {
|
|
58
|
-
if sys.path."__getitem__"(i) = pClasspaths {
|
|
59
|
-
do sys.path."__delitem__"(i)
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
Catch ex {
|
|
63
|
-
// do nothing
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
do sys.path.insert(0, pClasspaths)
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
Method Connect() As %Status
|
|
71
|
-
{
|
|
72
|
-
set tSC = $$$OK
|
|
73
|
-
try {
|
|
74
|
-
|
|
75
|
-
set container = $this
|
|
76
|
-
|
|
77
|
-
//set classpass
|
|
78
|
-
if ..%classpaths '="" {
|
|
79
|
-
set delimiter = $s($system.Version.GetOS()="Windows":";",1:":")
|
|
80
|
-
set extraClasspaths = $tr(container.%classpaths,delimiter,"|")
|
|
81
|
-
for i=1:1:$l(extraClasspaths,"|") {
|
|
82
|
-
set onePath = $p(extraClasspaths,"|",i)
|
|
83
|
-
set onePath = ##class(%File).NormalizeDirectory(onePath)
|
|
84
|
-
do ..SetPythonPath(onePath)
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
if $isObject(..%class)=0 {
|
|
88
|
-
set importlib = ##class(%SYS.Python).Import("importlib")
|
|
89
|
-
set builtins = ##class(%SYS.Python).Import("builtins")
|
|
90
|
-
set module = importlib."import_module"(..%module)
|
|
91
|
-
set class = builtins.getattr(module, ..%classname)
|
|
92
|
-
set ..%class = class."__new__"(class)
|
|
93
|
-
}
|
|
94
|
-
;
|
|
95
|
-
if ..%Extends("IOP.InboundAdapter") || ..%Extends("IOP.OutboundAdapter") {
|
|
96
|
-
do ..%class."_set_iris_handles"($this,..BusinessHost)
|
|
97
|
-
} elseif $this.%Extends("IOP.BusinessProcess") {
|
|
98
|
-
do ..%class."_set_iris_handles"($this,$$$NULLOREF)
|
|
99
|
-
} else {
|
|
100
|
-
do ..%class."_set_iris_handles"($this,..Adapter)
|
|
101
|
-
}
|
|
102
|
-
;
|
|
103
|
-
do ..SetPropertyValues()
|
|
104
|
-
;
|
|
105
|
-
try {
|
|
106
|
-
do ..%class."_dispatch_on_connected"($this)
|
|
107
|
-
} catch ex {
|
|
108
|
-
$$$LOGWARNING(ex.DisplayString())
|
|
109
|
-
}
|
|
110
|
-
;
|
|
111
|
-
} catch ex {
|
|
112
|
-
set msg = $System.Status.GetOneStatusText(ex.AsStatus(),1)
|
|
113
|
-
set tSC = $$$ERROR($$$EnsErrGeneral,msg)
|
|
114
|
-
}
|
|
115
|
-
quit tSC
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
Method OnTearDown() As %Status
|
|
119
|
-
{
|
|
120
|
-
set tSC = $$$OK
|
|
121
|
-
do ..%class."_dispatch_on_tear_down"()
|
|
122
|
-
quit tSC
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
Method SetPropertyValues()
|
|
126
|
-
{
|
|
127
|
-
set remoteSettings = $tr(..%settings,$c(13))
|
|
128
|
-
for i=1:1:$l(remoteSettings,$c(10)) {
|
|
129
|
-
set oneLine = $p(remoteSettings,$c(10),i)
|
|
130
|
-
set property = $p(oneLine,"=",1) continue:property=""
|
|
131
|
-
set value = $p(oneLine,"=",2,*)
|
|
132
|
-
try {
|
|
133
|
-
set $property(..%class,property) = value
|
|
134
|
-
} catch ex {
|
|
135
|
-
$$$LOGWARNING(ex.DisplayString())
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
quit
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
Method dispatchSendRequestSync(
|
|
142
|
-
target,
|
|
143
|
-
request,
|
|
144
|
-
timeout,
|
|
145
|
-
description) As %String
|
|
146
|
-
{
|
|
147
|
-
set tSC = ..SendRequestSync(target,request,.objResponse,timeout,description)
|
|
148
|
-
if $$$ISERR(tSC) throw ##class(%Exception.StatusException).CreateFromStatus(tSC)
|
|
149
|
-
quit $g(objResponse)
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
Method dispatchSendRequestAsync(
|
|
153
|
-
target,
|
|
154
|
-
request,
|
|
155
|
-
description)
|
|
156
|
-
{
|
|
157
|
-
set tSC = ..SendRequestAsync(target,request,description)
|
|
158
|
-
if $$$ISERR(tSC) throw ##class(%Exception.StatusException).CreateFromStatus(tSC)
|
|
159
|
-
quit
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
ClassMethod OnGetConnections(
|
|
163
|
-
Output pArray As %String,
|
|
164
|
-
pItem As Ens.Config.Item)
|
|
165
|
-
{
|
|
166
|
-
// finds any settings of type Ens.DataType.ConfigName
|
|
167
|
-
do ..GetPropertyConnections(.pArray,pItem)
|
|
168
|
-
|
|
169
|
-
// Get settings
|
|
170
|
-
do pItem.GetModifiedSetting("%classpaths", .tClasspaths)
|
|
171
|
-
do pItem.GetModifiedSetting("%classname", .tClassname)
|
|
172
|
-
do pItem.GetModifiedSetting("%module", .tModule)
|
|
173
|
-
|
|
174
|
-
// try to instantiate class
|
|
175
|
-
if tClasspaths '="" {
|
|
176
|
-
set sys = ##class(%SYS.Python).Import("sys")
|
|
177
|
-
set delimiter = $s($system.Version.GetOS()="Windows":";",1:":")
|
|
178
|
-
set extraClasspaths = $tr(tClasspaths,delimiter,"|")
|
|
179
|
-
for i=1:1:$l(extraClasspaths,"|") {
|
|
180
|
-
set onePath = $p(extraClasspaths,"|",i)
|
|
181
|
-
set onePath = ##class(%File).NormalizeDirectory(onePath)
|
|
182
|
-
if onePath?1"$$IRISHOME"1P.E set onePath = $e($system.Util.InstallDirectory(),1,*-1)_$e(onePath,11,*)
|
|
183
|
-
if onePath'="" do sys.path.append(onePath)
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
set importlib = ##class(%SYS.Python).Import("importlib")
|
|
187
|
-
set builtins = ##class(%SYS.Python).Import("builtins")
|
|
188
|
-
set module = importlib."import_module"(tModule)
|
|
189
|
-
set class = builtins.getattr(module, tClassname)
|
|
190
|
-
set tClass = class."__new__"(class)
|
|
191
|
-
|
|
192
|
-
set tPythonList = tClass."on_get_connections"()
|
|
193
|
-
set tPythonListLen = tPythonList."__len__"()
|
|
194
|
-
for i=0:1:(tPythonListLen-1) {
|
|
195
|
-
set tPythonItem = tPythonList."__getitem__"(i)
|
|
196
|
-
set pArray(tPythonItem) = ""
|
|
197
|
-
#; set ^AALog(pItem.Name,tPythonItem) = ""
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
quit
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|