iris-pex-embedded-python 3.3.1b1__tar.gz → 3.4.0b2__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.3.1b1 → iris_pex_embedded_python-3.4.0b2}/PKG-INFO +2 -1
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/pyproject.toml +2 -1
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/pex/__init__.py +1 -1
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/__init__.py +3 -2
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/_dispatch.py +15 -11
- iris_pex_embedded_python-3.4.0b2/src/iop/_message.py +28 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/_message_validator.py +12 -6
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/_serialization.py +19 -2
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iris_pex_embedded_python.egg-info/PKG-INFO +2 -1
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iris_pex_embedded_python.egg-info/SOURCES.txt +0 -1
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iris_pex_embedded_python.egg-info/requires.txt +1 -0
- iris_pex_embedded_python-3.3.1b1/src/iop/_message.py +0 -6
- iris_pex_embedded_python-3.3.1b1/src/iop/_pickle_message.py +0 -6
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/LICENSE +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/README.md +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/setup.cfg +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/setup.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/__init__.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/cls/Grongier/PEX/BusinessOperation.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/cls/Grongier/PEX/BusinessProcess.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/cls/Grongier/PEX/BusinessService.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/cls/Grongier/PEX/Common.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/cls/Grongier/PEX/Director.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/cls/Grongier/PEX/Duplex/Operation.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/cls/Grongier/PEX/Duplex/Process.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/cls/Grongier/PEX/Duplex/Service.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/cls/Grongier/PEX/InboundAdapter.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/cls/Grongier/PEX/Message.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/cls/Grongier/PEX/OutboundAdapter.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/cls/Grongier/PEX/PickleMessage.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/cls/Grongier/PEX/PrivateSession/Duplex.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/cls/Grongier/PEX/PrivateSession/Message/Ack.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/cls/Grongier/PEX/PrivateSession/Message/Poll.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/cls/Grongier/PEX/PrivateSession/Message/Start.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/cls/Grongier/PEX/PrivateSession/Message/Stop.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/cls/Grongier/PEX/Test.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/cls/Grongier/PEX/Utils.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/cls/Grongier/Service/WSGI.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/pex/__main__.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/pex/_business_host.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/pex/_cli.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/pex/_common.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/pex/_director.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/pex/_utils.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/pex/wsgi/handlers.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_BufferReader.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_BufferWriter.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_ConnectionInformation.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_ConnectionParameters.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_Constant.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_DBList.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_Device.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_GatewayContext.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_GatewayException.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_GatewayUtility.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_IRIS.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_IRISConnection.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_IRISEmbedded.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_IRISGlobalNode.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_IRISGlobalNodeView.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_IRISIterator.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_IRISList.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_IRISNative.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_IRISOREF.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_IRISObject.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_IRISReference.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_InStream.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_LegacyIterator.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_ListItem.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_ListReader.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_ListWriter.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_LogFileStream.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_MessageHeader.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_OutStream.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_PrintStream.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_PythonGateway.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_SharedMemorySocket.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/__init__.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/__main__.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/dbapi/_Column.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/dbapi/_DBAPI.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/dbapi/_Descriptor.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/dbapi/_IRISStream.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/dbapi/_Message.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/dbapi/_Parameter.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/dbapi/_ParameterCollection.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/dbapi/_ResultSetRow.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/dbapi/_SQLType.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/dbapi/__init__.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/dbapi/preparser/_PreParser.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/dbapi/preparser/_Scanner.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/dbapi/preparser/_Token.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/dbapi/preparser/_TokenList.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/dbapi/preparser/__init__.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/pex/_BusinessHost.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/pex/_BusinessOperation.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/pex/_BusinessProcess.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/pex/_BusinessService.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/pex/_Common.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/pex/_Director.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/pex/_IRISBusinessOperation.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/pex/_IRISBusinessService.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/pex/_IRISInboundAdapter.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/pex/_IRISOutboundAdapter.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/pex/_InboundAdapter.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/pex/_Message.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/pex/_OutboundAdapter.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/pex/__init__.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/__main__.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/_async_request.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/_business_host.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/_business_operation.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/_business_process.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/_business_service.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/_cli.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/_common.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/_decorators.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/_director.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/_inbound_adapter.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/_log_manager.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/_outbound_adapter.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/_private_session_duplex.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/_private_session_process.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/_utils.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/cls/IOP/BusinessOperation.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/cls/IOP/BusinessProcess.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/cls/IOP/BusinessService.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/cls/IOP/Common.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/cls/IOP/Director.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/cls/IOP/Duplex/Operation.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/cls/IOP/Duplex/Process.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/cls/IOP/Duplex/Service.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/cls/IOP/InboundAdapter.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/cls/IOP/Message/JSONSchema.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/cls/IOP/Message.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/cls/IOP/OutboundAdapter.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/cls/IOP/PickleMessage.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/cls/IOP/PrivateSession/Duplex.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/cls/IOP/PrivateSession/Message/Ack.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/cls/IOP/PrivateSession/Message/Poll.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/cls/IOP/PrivateSession/Message/Start.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/cls/IOP/PrivateSession/Message/Stop.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/cls/IOP/Service/WSGI.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/cls/IOP/Test.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/cls/IOP/Utils.cls +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/wsgi/handlers.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iris_pex_embedded_python.egg-info/dependency_links.txt +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iris_pex_embedded_python.egg-info/entry_points.txt +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iris_pex_embedded_python.egg-info/top_level.txt +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/irisnative/_IRISNative.py +0 -0
- {iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/irisnative/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: iris_pex_embedded_python
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.4.0b2
|
|
4
4
|
Summary: Iris Interoperability based on Embedded Python
|
|
5
5
|
Author-email: grongier <guillaume.rongier@intersystems.com>
|
|
6
6
|
License: MIT License
|
|
@@ -45,6 +45,7 @@ Classifier: Topic :: Utilities
|
|
|
45
45
|
Description-Content-Type: text/markdown
|
|
46
46
|
License-File: LICENSE
|
|
47
47
|
Requires-Dist: dacite>=1.6.0
|
|
48
|
+
Requires-Dist: pydantic>=2.0.0
|
|
48
49
|
Requires-Dist: xmltodict>=0.12.0
|
|
49
50
|
Requires-Dist: iris-embedded-python-wrapper>=0.0.6
|
|
50
51
|
Requires-Dist: setuptools>=40.8.0
|
|
@@ -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.4.0b2"
|
|
7
7
|
description = "Iris Interoperability based on Embedded Python"
|
|
8
8
|
readme = "README.md"
|
|
9
9
|
authors = [
|
|
@@ -28,6 +28,7 @@ classifiers = [
|
|
|
28
28
|
|
|
29
29
|
dependencies = [
|
|
30
30
|
"dacite >=1.6.0",
|
|
31
|
+
"pydantic>=2.0.0",
|
|
31
32
|
"xmltodict>=0.12.0",
|
|
32
33
|
"iris-embedded-python-wrapper>=0.0.6",
|
|
33
34
|
"setuptools>=40.8.0",
|
{iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/pex/__init__.py
RENAMED
|
@@ -6,7 +6,7 @@ from iop._business_operation import _BusinessOperation
|
|
|
6
6
|
from iop._inbound_adapter import _InboundAdapter
|
|
7
7
|
from iop._outbound_adapter import _OutboundAdapter
|
|
8
8
|
from iop._message import _Message
|
|
9
|
-
from iop.
|
|
9
|
+
from iop._message import _PickleMessage
|
|
10
10
|
from iop._director import _Director
|
|
11
11
|
from iop._utils import _Utils
|
|
12
12
|
|
|
@@ -3,9 +3,8 @@ from iop._business_process import _BusinessProcess
|
|
|
3
3
|
from iop._business_service import _BusinessService
|
|
4
4
|
from iop._director import _Director
|
|
5
5
|
from iop._inbound_adapter import _InboundAdapter
|
|
6
|
-
from iop._message import _Message
|
|
6
|
+
from iop._message import _Message, _PickleMessage, _PydanticMessage, _PydanticPickleMessage
|
|
7
7
|
from iop._outbound_adapter import _OutboundAdapter
|
|
8
|
-
from iop._pickle_message import _PickleMessage
|
|
9
8
|
from iop._private_session_duplex import _PrivateSessionDuplex
|
|
10
9
|
from iop._private_session_process import _PrivateSessionProcess
|
|
11
10
|
from iop._utils import _Utils
|
|
@@ -21,4 +20,6 @@ class DuplexOperation(_PrivateSessionDuplex): pass
|
|
|
21
20
|
class DuplexProcess(_PrivateSessionProcess): pass
|
|
22
21
|
class Message(_Message): pass
|
|
23
22
|
class PickleMessage(_PickleMessage): pass
|
|
23
|
+
class PydanticMessage(_PydanticMessage): pass
|
|
24
|
+
class PydanticPickleMessage(_PydanticPickleMessage): pass
|
|
24
25
|
class Director(_Director): pass
|
|
@@ -7,6 +7,7 @@ from typing import Any, Dict, List, Type
|
|
|
7
7
|
|
|
8
8
|
import iris
|
|
9
9
|
from dacite import Config, from_dict
|
|
10
|
+
from pydantic import BaseModel
|
|
10
11
|
|
|
11
12
|
from iop._utils import _Utils
|
|
12
13
|
from iop._serialization import IrisJSONEncoder, IrisJSONDecoder
|
|
@@ -165,17 +166,20 @@ def dataclass_from_dict(klass: Type, dikt: Dict) -> Any:
|
|
|
165
166
|
Returns:
|
|
166
167
|
A dataclass object with the fields of the dataclass and the fields of the dictionary.
|
|
167
168
|
"""
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
169
|
+
if issubclass(klass, BaseModel):
|
|
170
|
+
return klass.model_validate(dikt)
|
|
171
|
+
else:
|
|
172
|
+
ret = from_dict(klass, dikt, Config(check_types=False))
|
|
173
|
+
|
|
174
|
+
try:
|
|
175
|
+
fieldtypes = klass.__annotations__
|
|
176
|
+
except Exception as e:
|
|
177
|
+
fieldtypes = []
|
|
178
|
+
|
|
179
|
+
for key, val in dikt.items():
|
|
180
|
+
if key not in fieldtypes:
|
|
181
|
+
setattr(ret, key, val)
|
|
182
|
+
return ret
|
|
179
183
|
|
|
180
184
|
def dispach_message(host, request: Any) -> Any:
|
|
181
185
|
"""Dispatches the message to the appropriate method.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
from typing import Any
|
|
2
|
+
from pydantic import BaseModel
|
|
3
|
+
|
|
4
|
+
class _Message:
|
|
5
|
+
""" The abstract class that is the superclass for persistent messages sent from one component to another.
|
|
6
|
+
This class has no properties or methods. Users subclass Message and add properties.
|
|
7
|
+
The IOP framework provides the persistence to objects derived from the Message class.
|
|
8
|
+
"""
|
|
9
|
+
pass
|
|
10
|
+
|
|
11
|
+
class _PickleMessage:
|
|
12
|
+
""" The abstract class that is the superclass for persistent messages sent from one component to another.
|
|
13
|
+
This class has no properties or methods. Users subclass Message and add properties.
|
|
14
|
+
The IOP framework provides the persistence to objects derived from the Message class.
|
|
15
|
+
"""
|
|
16
|
+
pass
|
|
17
|
+
|
|
18
|
+
class _PydanticMessage(BaseModel):
|
|
19
|
+
"""Base class for Pydantic-based messages that can be serialized to IRIS."""
|
|
20
|
+
|
|
21
|
+
def __init__(self, **data: Any):
|
|
22
|
+
super().__init__(**data)
|
|
23
|
+
|
|
24
|
+
class _PydanticPickleMessage(BaseModel):
|
|
25
|
+
"""Base class for Pydantic-based messages that can be serialized to IRIS."""
|
|
26
|
+
|
|
27
|
+
def __init__(self, **data: Any):
|
|
28
|
+
super().__init__(**data)
|
{iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/_message_validator.py
RENAMED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import dataclasses
|
|
2
2
|
from typing import Any, Type
|
|
3
|
+
from iop._message import _Message, _PickleMessage, _PydanticPickleMessage, BaseModel
|
|
3
4
|
|
|
4
5
|
|
|
5
6
|
def is_message_instance(obj: Any) -> bool:
|
|
6
7
|
"""Check if object is a valid Message instance."""
|
|
8
|
+
if isinstance(obj, BaseModel):
|
|
9
|
+
return True
|
|
7
10
|
if is_message_class(type(obj)):
|
|
8
11
|
if not dataclasses.is_dataclass(obj):
|
|
9
12
|
raise TypeError(f"{type(obj).__module__}.{type(obj).__qualname__} must be a dataclass")
|
|
@@ -13,6 +16,8 @@ def is_message_instance(obj: Any) -> bool:
|
|
|
13
16
|
|
|
14
17
|
def is_pickle_message_instance(obj: Any) -> bool:
|
|
15
18
|
"""Check if object is a PickleMessage instance."""
|
|
19
|
+
if isinstance(obj, _PydanticPickleMessage):
|
|
20
|
+
return True
|
|
16
21
|
if is_pickle_message_class(type(obj)):
|
|
17
22
|
return True
|
|
18
23
|
return False
|
|
@@ -27,15 +32,16 @@ def is_iris_object_instance(obj: Any) -> bool:
|
|
|
27
32
|
|
|
28
33
|
def is_message_class(klass: Type) -> bool:
|
|
29
34
|
"""Check if class is a Message type."""
|
|
30
|
-
|
|
31
|
-
if name in ("iop.Message", "grongier.pex.Message"):
|
|
35
|
+
if issubclass(klass, _Message):
|
|
32
36
|
return True
|
|
33
|
-
return
|
|
37
|
+
return False
|
|
38
|
+
|
|
34
39
|
|
|
35
40
|
|
|
36
41
|
def is_pickle_message_class(klass: Type) -> bool:
|
|
37
42
|
"""Check if class is a PickleMessage type."""
|
|
38
|
-
|
|
39
|
-
|
|
43
|
+
if issubclass(klass, _PickleMessage):
|
|
44
|
+
return True
|
|
45
|
+
if issubclass(klass, _PydanticPickleMessage):
|
|
40
46
|
return True
|
|
41
|
-
return
|
|
47
|
+
return False
|
{iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/_serialization.py
RENAMED
|
@@ -14,7 +14,9 @@ from typing import Any, Dict, Type, Optional
|
|
|
14
14
|
from dacite import Config, from_dict
|
|
15
15
|
import iris
|
|
16
16
|
|
|
17
|
+
from iop._message import _PydanticPickleMessage
|
|
17
18
|
from iop._utils import _Utils
|
|
19
|
+
from pydantic import BaseModel
|
|
18
20
|
|
|
19
21
|
# Constants
|
|
20
22
|
DATETIME_FORMAT_LENGTH = 23
|
|
@@ -91,6 +93,8 @@ class IrisJSONEncoder(json.JSONEncoder):
|
|
|
91
93
|
"""JSONEncoder that handles dates, decimals, UUIDs, etc."""
|
|
92
94
|
|
|
93
95
|
def default(self, obj: Any) -> Any:
|
|
96
|
+
if isinstance(obj, BaseModel):
|
|
97
|
+
return obj.model_dump()
|
|
94
98
|
if obj.__class__.__name__ == 'DataFrame':
|
|
95
99
|
return f'dataframe:{TypeConverter.convert_to_string("dataframe", obj)}'
|
|
96
100
|
elif isinstance(obj, datetime.datetime):
|
|
@@ -134,6 +138,12 @@ class MessageSerializer:
|
|
|
134
138
|
@staticmethod
|
|
135
139
|
def serialize(message: Any, use_pickle: bool = False) -> iris.cls:
|
|
136
140
|
"""Serializes a message to IRIS format."""
|
|
141
|
+
# Check for PydanticPickleMessage first
|
|
142
|
+
if isinstance(message, _PydanticPickleMessage):
|
|
143
|
+
return MessageSerializer._serialize_pickle(message)
|
|
144
|
+
if isinstance(message, BaseModel):
|
|
145
|
+
return (MessageSerializer._serialize_pickle(message)
|
|
146
|
+
if use_pickle else MessageSerializer._serialize_json(message))
|
|
137
147
|
if use_pickle:
|
|
138
148
|
return MessageSerializer._serialize_pickle(message)
|
|
139
149
|
return MessageSerializer._serialize_json(message)
|
|
@@ -155,7 +165,11 @@ class MessageSerializer:
|
|
|
155
165
|
|
|
156
166
|
@staticmethod
|
|
157
167
|
def _serialize_json(message: Any) -> iris.cls:
|
|
158
|
-
|
|
168
|
+
if isinstance(message, BaseModel):
|
|
169
|
+
json_string = json.dumps(message.model_dump(), cls=IrisJSONEncoder, ensure_ascii=False)
|
|
170
|
+
else:
|
|
171
|
+
json_string = json.dumps(message, cls=IrisJSONEncoder, ensure_ascii=False)
|
|
172
|
+
|
|
159
173
|
msg = iris.cls('IOP.Message')._New()
|
|
160
174
|
msg.classname = f"{message.__class__.__module__}.{message.__class__.__name__}"
|
|
161
175
|
|
|
@@ -187,7 +201,10 @@ class MessageSerializer:
|
|
|
187
201
|
|
|
188
202
|
try:
|
|
189
203
|
json_dict = json.loads(json_string, cls=IrisJSONDecoder)
|
|
190
|
-
|
|
204
|
+
if issubclass(msg_class, BaseModel):
|
|
205
|
+
return msg_class.model_validate(json_dict)
|
|
206
|
+
else:
|
|
207
|
+
return dataclass_from_dict(msg_class, json_dict)
|
|
191
208
|
except Exception as e:
|
|
192
209
|
raise SerializationError(f"Failed to deserialize JSON: {str(e)}")
|
|
193
210
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.2
|
|
2
2
|
Name: iris_pex_embedded_python
|
|
3
|
-
Version: 3.
|
|
3
|
+
Version: 3.4.0b2
|
|
4
4
|
Summary: Iris Interoperability based on Embedded Python
|
|
5
5
|
Author-email: grongier <guillaume.rongier@intersystems.com>
|
|
6
6
|
License: MIT License
|
|
@@ -45,6 +45,7 @@ Classifier: Topic :: Utilities
|
|
|
45
45
|
Description-Content-Type: text/markdown
|
|
46
46
|
License-File: LICENSE
|
|
47
47
|
Requires-Dist: dacite>=1.6.0
|
|
48
|
+
Requires-Dist: pydantic>=2.0.0
|
|
48
49
|
Requires-Dist: xmltodict>=0.12.0
|
|
49
50
|
Requires-Dist: iris-embedded-python-wrapper>=0.0.6
|
|
50
51
|
Requires-Dist: setuptools>=40.8.0
|
|
@@ -111,7 +111,6 @@ src/iop/_log_manager.py
|
|
|
111
111
|
src/iop/_message.py
|
|
112
112
|
src/iop/_message_validator.py
|
|
113
113
|
src/iop/_outbound_adapter.py
|
|
114
|
-
src/iop/_pickle_message.py
|
|
115
114
|
src/iop/_private_session_duplex.py
|
|
116
115
|
src/iop/_private_session_process.py
|
|
117
116
|
src/iop/_serialization.py
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
class _Message:
|
|
2
|
-
""" The abstract class that is the superclass for persistent messages sent from one component to another.
|
|
3
|
-
This class has no properties or methods. Users subclass Message and add properties.
|
|
4
|
-
The IOP framework provides the persistence to objects derived from the Message class.
|
|
5
|
-
"""
|
|
6
|
-
pass
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
class _PickleMessage:
|
|
2
|
-
""" The abstract class that is the superclass for persistent messages sent from one component to another.
|
|
3
|
-
This class has no properties or methods. Users subclass Message and add properties.
|
|
4
|
-
The PEX framework provides the persistence to objects derived from the Message class.
|
|
5
|
-
"""
|
|
6
|
-
pass
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/pex/__main__.py
RENAMED
|
File without changes
|
|
File without changes
|
{iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/pex/_cli.py
RENAMED
|
File without changes
|
{iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/pex/_common.py
RENAMED
|
File without changes
|
{iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/pex/_director.py
RENAMED
|
File without changes
|
{iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/grongier/pex/_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/intersystems_iris/_IRIS.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/_async_request.py
RENAMED
|
File without changes
|
{iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/_business_host.py
RENAMED
|
File without changes
|
{iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/_business_operation.py
RENAMED
|
File without changes
|
{iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/_business_process.py
RENAMED
|
File without changes
|
{iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/_business_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/_decorators.py
RENAMED
|
File without changes
|
|
File without changes
|
{iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/_inbound_adapter.py
RENAMED
|
File without changes
|
{iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/_log_manager.py
RENAMED
|
File without changes
|
{iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/_outbound_adapter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/cls/IOP/Common.cls
RENAMED
|
File without changes
|
{iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/cls/IOP/Director.cls
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/cls/IOP/Message.cls
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/cls/IOP/Test.cls
RENAMED
|
File without changes
|
{iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/cls/IOP/Utils.cls
RENAMED
|
File without changes
|
{iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/iop/wsgi/handlers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/irisnative/_IRISNative.py
RENAMED
|
File without changes
|
{iris_pex_embedded_python-3.3.1b1 → iris_pex_embedded_python-3.4.0b2}/src/irisnative/__init__.py
RENAMED
|
File without changes
|