iris-pex-embedded-python 3.1.1b2__tar.gz → 3.1.1b4__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.

Files changed (149) hide show
  1. {iris_pex_embedded_python-3.1.1b2/src/iris_pex_embedded_python.egg-info → iris_pex_embedded_python-3.1.1b4}/PKG-INFO +1 -1
  2. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/pyproject.toml +1 -1
  3. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/_business_host.py +59 -52
  4. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/_director.py +2 -2
  5. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/_utils.py +32 -18
  6. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/cls/IOP/Message.cls +21 -9
  7. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/cls/IOP/Test.cls +13 -1
  8. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/cls/IOP/Utils.cls +1 -1
  9. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4/src/iris_pex_embedded_python.egg-info}/PKG-INFO +1 -1
  10. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/LICENSE +0 -0
  11. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/README.md +0 -0
  12. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/setup.cfg +0 -0
  13. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/setup.py +0 -0
  14. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/grongier/__init__.py +0 -0
  15. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/grongier/cls/Grongier/PEX/BusinessOperation.cls +0 -0
  16. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/grongier/cls/Grongier/PEX/BusinessProcess.cls +0 -0
  17. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/grongier/cls/Grongier/PEX/BusinessService.cls +0 -0
  18. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/grongier/cls/Grongier/PEX/Common.cls +0 -0
  19. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/grongier/cls/Grongier/PEX/Director.cls +0 -0
  20. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/grongier/cls/Grongier/PEX/Duplex/Operation.cls +0 -0
  21. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/grongier/cls/Grongier/PEX/Duplex/Process.cls +0 -0
  22. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/grongier/cls/Grongier/PEX/Duplex/Service.cls +0 -0
  23. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/grongier/cls/Grongier/PEX/InboundAdapter.cls +0 -0
  24. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/grongier/cls/Grongier/PEX/Message.cls +0 -0
  25. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/grongier/cls/Grongier/PEX/OutboundAdapter.cls +0 -0
  26. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/grongier/cls/Grongier/PEX/PickleMessage.cls +0 -0
  27. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/grongier/cls/Grongier/PEX/PrivateSession/Duplex.cls +0 -0
  28. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/grongier/cls/Grongier/PEX/PrivateSession/Message/Ack.cls +0 -0
  29. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/grongier/cls/Grongier/PEX/PrivateSession/Message/Poll.cls +0 -0
  30. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/grongier/cls/Grongier/PEX/PrivateSession/Message/Start.cls +0 -0
  31. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/grongier/cls/Grongier/PEX/PrivateSession/Message/Stop.cls +0 -0
  32. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/grongier/cls/Grongier/PEX/Test.cls +0 -0
  33. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/grongier/cls/Grongier/PEX/Utils.cls +0 -0
  34. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/grongier/cls/Grongier/Service/WSGI.cls +0 -0
  35. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/grongier/pex/__init__.py +0 -0
  36. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/grongier/pex/__main__.py +0 -0
  37. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/grongier/pex/_business_host.py +0 -0
  38. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/grongier/pex/_cli.py +0 -0
  39. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/grongier/pex/_common.py +0 -0
  40. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/grongier/pex/_director.py +0 -0
  41. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/grongier/pex/_utils.py +0 -0
  42. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/grongier/pex/wsgi/handlers.py +0 -0
  43. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_BufferReader.py +0 -0
  44. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_BufferWriter.py +0 -0
  45. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_ConnectionInformation.py +0 -0
  46. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_ConnectionParameters.py +0 -0
  47. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_Constant.py +0 -0
  48. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_DBList.py +0 -0
  49. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_Device.py +0 -0
  50. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_GatewayContext.py +0 -0
  51. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_GatewayException.py +0 -0
  52. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_GatewayUtility.py +0 -0
  53. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_IRIS.py +0 -0
  54. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_IRISConnection.py +0 -0
  55. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_IRISEmbedded.py +0 -0
  56. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_IRISGlobalNode.py +0 -0
  57. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_IRISGlobalNodeView.py +0 -0
  58. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_IRISIterator.py +0 -0
  59. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_IRISList.py +0 -0
  60. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_IRISNative.py +0 -0
  61. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_IRISOREF.py +0 -0
  62. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_IRISObject.py +0 -0
  63. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_IRISReference.py +0 -0
  64. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_InStream.py +0 -0
  65. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_LegacyIterator.py +0 -0
  66. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_ListItem.py +0 -0
  67. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_ListReader.py +0 -0
  68. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_ListWriter.py +0 -0
  69. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_LogFileStream.py +0 -0
  70. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_MessageHeader.py +0 -0
  71. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_OutStream.py +0 -0
  72. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_PrintStream.py +0 -0
  73. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_PythonGateway.py +0 -0
  74. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/_SharedMemorySocket.py +0 -0
  75. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/__init__.py +0 -0
  76. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/__main__.py +0 -0
  77. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/dbapi/_Column.py +0 -0
  78. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/dbapi/_DBAPI.py +0 -0
  79. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/dbapi/_Descriptor.py +0 -0
  80. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/dbapi/_IRISStream.py +0 -0
  81. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/dbapi/_Message.py +0 -0
  82. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/dbapi/_Parameter.py +0 -0
  83. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/dbapi/_ParameterCollection.py +0 -0
  84. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/dbapi/_ResultSetRow.py +0 -0
  85. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/dbapi/_SQLType.py +0 -0
  86. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/dbapi/__init__.py +0 -0
  87. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/dbapi/preparser/_PreParser.py +0 -0
  88. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/dbapi/preparser/_Scanner.py +0 -0
  89. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/dbapi/preparser/_Token.py +0 -0
  90. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/dbapi/preparser/_TokenList.py +0 -0
  91. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/dbapi/preparser/__init__.py +0 -0
  92. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/pex/_BusinessHost.py +0 -0
  93. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/pex/_BusinessOperation.py +0 -0
  94. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/pex/_BusinessProcess.py +0 -0
  95. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/pex/_BusinessService.py +0 -0
  96. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/pex/_Common.py +0 -0
  97. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/pex/_Director.py +0 -0
  98. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/pex/_IRISBusinessOperation.py +0 -0
  99. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/pex/_IRISBusinessService.py +0 -0
  100. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/pex/_IRISInboundAdapter.py +0 -0
  101. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/pex/_IRISOutboundAdapter.py +0 -0
  102. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/pex/_InboundAdapter.py +0 -0
  103. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/pex/_Message.py +0 -0
  104. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/pex/_OutboundAdapter.py +0 -0
  105. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/intersystems_iris/pex/__init__.py +0 -0
  106. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/__init__.py +0 -0
  107. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/__main__.py +0 -0
  108. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/_business_operation.py +0 -0
  109. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/_business_process.py +0 -0
  110. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/_business_service.py +0 -0
  111. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/_cli.py +0 -0
  112. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/_common.py +0 -0
  113. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/_inbound_adapter.py +0 -0
  114. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/_message.py +0 -0
  115. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/_outbound_adapter.py +0 -0
  116. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/_pickle_message.py +0 -0
  117. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/_private_session_duplex.py +0 -0
  118. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/_private_session_process.py +0 -0
  119. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/cls/IOP/BusinessOperation.cls +0 -0
  120. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/cls/IOP/BusinessProcess.cls +0 -0
  121. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/cls/IOP/BusinessService.cls +0 -0
  122. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/cls/IOP/Common.cls +0 -0
  123. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/cls/IOP/Director.cls +0 -0
  124. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/cls/IOP/Duplex/Operation.cls +0 -0
  125. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/cls/IOP/Duplex/Process.cls +0 -0
  126. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/cls/IOP/Duplex/Service.cls +0 -0
  127. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/cls/IOP/InboundAdapter.cls +0 -0
  128. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/cls/IOP/OutboundAdapter.cls +0 -0
  129. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/cls/IOP/PickleMessage.cls +0 -0
  130. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/cls/IOP/PrivateSession/Duplex.cls +0 -0
  131. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/cls/IOP/PrivateSession/Message/Ack.cls +0 -0
  132. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/cls/IOP/PrivateSession/Message/Poll.cls +0 -0
  133. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/cls/IOP/PrivateSession/Message/Start.cls +0 -0
  134. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/cls/IOP/PrivateSession/Message/Stop.cls +0 -0
  135. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/cls/IOP/Service/WSGI.cls +0 -0
  136. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iop/wsgi/handlers.py +0 -0
  137. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iris/__init__.py +0 -0
  138. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iris/__init__.pyi +0 -0
  139. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iris/_cli.py +0 -0
  140. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iris/iris_ipm.py +0 -0
  141. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iris/iris_ipm.pyi +0 -0
  142. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iris/iris_utils.py +0 -0
  143. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iris_pex_embedded_python.egg-info/SOURCES.txt +0 -0
  144. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iris_pex_embedded_python.egg-info/dependency_links.txt +0 -0
  145. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iris_pex_embedded_python.egg-info/entry_points.txt +0 -0
  146. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iris_pex_embedded_python.egg-info/requires.txt +0 -0
  147. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/iris_pex_embedded_python.egg-info/top_level.txt +0 -0
  148. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/irisnative/_IRISNative.py +0 -0
  149. {iris_pex_embedded_python-3.1.1b2 → iris_pex_embedded_python-3.1.1b4}/src/irisnative/__init__.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: iris_pex_embedded_python
3
- Version: 3.1.1b2
3
+ Version: 3.1.1b4
4
4
  Summary: Iris Interoperability based on Embedded Python
5
5
  Author-email: grongier <guillaume.rongier@intersystems.com>
6
6
  License: MIT License
@@ -3,7 +3,7 @@ requires = ["setuptools", "wheel"]
3
3
 
4
4
  [project]
5
5
  name = "iris_pex_embedded_python"
6
- version = "3.1.1b2"
6
+ version = "3.1.1b4"
7
7
  description = "Iris Interoperability based on Embedded Python"
8
8
  readme = "README.md"
9
9
  authors = [
@@ -34,15 +34,14 @@ class _BusinessHost(_Common):
34
34
  :param fonction: the function that will be decorated
35
35
  :return: The function dispatch_serializer is being returned.
36
36
  """
37
- def dispatch_serializer(self,*params, **param2):
38
- # Handle positional arguments
39
- serialized=[]
40
- for param in params:
41
- serialized.append(self._dispatch_serializer(param))
42
- # Handle keyword arguments
43
- for key, value in param2.items():
44
- param2[key] = self._dispatch_serializer(value)
45
- return fonction(self,*serialized, **param2)
37
+ def dispatch_serializer(self, *params, **param2):
38
+ # Handle positional arguments using list comprehension
39
+ serialized = [self._dispatch_serializer(param) for param in params]
40
+
41
+ # Handle keyword arguments using dictionary comprehension
42
+ param2 = {key: self._dispatch_serializer(value) for key, value in param2.items()}
43
+
44
+ return fonction(self, *serialized, **param2)
46
45
  return dispatch_serializer
47
46
 
48
47
  def input_serialzer_param(position:int,name:str):
@@ -55,19 +54,20 @@ class _BusinessHost(_Common):
55
54
  """
56
55
  def input_serialzer_param(fonction):
57
56
  @wraps(fonction)
58
- def dispatch_serializer(self,*params, **param2):
59
- # Handle positional arguments
60
- serialized=[]
61
- for i,param in enumerate(params):
62
- if i == position:
63
- serialized.append(self._dispatch_serializer(param))
64
- else:
65
- serialized.append(param)
66
- # Handle keyword arguments
67
- for key, value in param2.items():
68
- if key == name:
69
- param2[key] = self._dispatch_serializer(value)
70
- return fonction(self,*serialized, **param2)
57
+ def dispatch_serializer(self, *params, **param2):
58
+ # Handle positional arguments using list comprehension
59
+ serialized = [
60
+ self._dispatch_serializer(param) if i == position else param
61
+ for i, param in enumerate(params)
62
+ ]
63
+
64
+ # Handle keyword arguments using dictionary comprehension
65
+ param2 = {
66
+ key: self._dispatch_serializer(value) if key == name else value
67
+ for key, value in param2.items()
68
+ }
69
+
70
+ return fonction(self, *serialized, **param2)
71
71
  return dispatch_serializer
72
72
  return input_serialzer_param
73
73
 
@@ -93,15 +93,14 @@ class _BusinessHost(_Common):
93
93
  :param fonction: the function that will be decorated
94
94
  :return: The function dispatch_deserializer is being returned.
95
95
  """
96
- def dispatch_deserializer(self,*params, **param2):
97
- # Handle positional arguments
98
- serialized=[]
99
- for param in params:
100
- serialized.append(self._dispatch_deserializer(param))
101
- # Handle keyword arguments
102
- for key, value in param2.items():
103
- param2[key] = self._dispatch_deserializer(value)
104
- return fonction(self,*serialized, **param2)
96
+ def dispatch_deserializer(self, *params, **param2):
97
+ # Handle positional arguments using list comprehension
98
+ serialized = [self._dispatch_deserializer(param) for param in params]
99
+
100
+ # Handle keyword arguments using dictionary comprehension
101
+ param2 = {key: self._dispatch_deserializer(value) for key, value in param2.items()}
102
+
103
+ return fonction(self, *serialized, **param2)
105
104
  return dispatch_deserializer
106
105
 
107
106
  def output_serialzer(fonction):
@@ -236,18 +235,20 @@ class _BusinessHost(_Common):
236
235
  :param message: The message to be serialized
237
236
  :return: The serialized message
238
237
  """
239
- if (message is not None and self._is_message_instance(message)):
240
- return self._serialize_message(message)
241
- elif (message is not None and self._is_pickle_message_instance(message)):
242
- return self._serialize_pickle_message(message)
243
- elif (message is not None and self._is_iris_object_instance(message)):
244
- return message
245
- elif (message is None or message == ""):
238
+ if message is not None:
239
+ if self._is_message_instance(message):
240
+ return self._serialize_message(message)
241
+ elif self._is_pickle_message_instance(message):
242
+ return self._serialize_pickle_message(message)
243
+ elif self._is_iris_object_instance(message):
244
+ return message
245
+
246
+ if message == "" or message is None:
246
247
  return message
247
- else:
248
- # todo : decorator takes care of all the parameters, so this should never happen
249
- # return message
250
- raise TypeError("The message must be an instance of a class that is a subclass of Message or IRISObject %Persistent class.")
248
+
249
+ # todo : decorator takes care of all the parameters, so this should never happen
250
+ # return message
251
+ raise TypeError("The message must be an instance of a class that is a subclass of Message or IRISObject %Persistent class.")
251
252
 
252
253
  def _serialize_message(self,message):
253
254
  """ Converts a python dataclass message into an iris iop.message.
@@ -265,8 +266,8 @@ class _BusinessHost(_Common):
265
266
  msg = iris.cls('IOP.Message')._New()
266
267
  msg.classname = module + "." + classname
267
268
 
268
- if hasattr(message, 'buffer') and len(json_string) > msg.buffer:
269
- msg.json = _Utils.string_to_stream(json_string)
269
+ if hasattr(msg, 'buffer') and len(json_string) > msg.buffer:
270
+ msg.json = _Utils.string_to_stream(json_string,msg.buffer)
270
271
  else:
271
272
  msg.json = json_string
272
273
 
@@ -291,16 +292,22 @@ class _BusinessHost(_Common):
291
292
  :return: The return value is a tuple of the form (serial, serial_type)
292
293
  """
293
294
  if (
294
- (serial is not None and type(serial).__module__.find('iris') == 0)
295
- and
296
- (serial._IsA("IOP.Message") or serial._IsA("Grongier.PEX.Message"))
297
- ):
295
+ serial is not None
296
+ and type(serial).__module__.startswith('iris')
297
+ and (
298
+ serial._IsA("IOP.Message")
299
+ or serial._IsA("Grongier.PEX.Message")
300
+ )
301
+ ):
298
302
  return self._deserialize_message(serial)
299
303
  elif (
300
- (serial is not None and type(serial).__module__.find('iris') == 0)
301
- and
302
- (serial._IsA("IOP.PickleMessage") or serial._IsA("Grongier.PEX.PickleMessage"))
303
- ):
304
+ serial is not None
305
+ and type(serial).__module__.startswith('iris')
306
+ and (
307
+ serial._IsA("IOP.PickleMessage")
308
+ or serial._IsA("Grongier.PEX.PickleMessage")
309
+ )
310
+ ):
304
311
  return self._deserialize_pickle_message(serial)
305
312
  else:
306
313
  return serial
@@ -258,9 +258,9 @@ class _Director():
258
258
  message = iris.cls("IOP.Message")._New()
259
259
  message.classname = classname
260
260
  if body:
261
- message.jstr = _Utils.string_to_stream(body)
261
+ message.json = _Utils.string_to_stream(body)
262
262
  else:
263
- message.jstr = _Utils.string_to_stream("{}")
263
+ message.json = _Utils.string_to_stream("{}")
264
264
  # serialize the message
265
265
  business_host = _BusinessHost()
266
266
  serial_message = business_host._dispatch_serializer(message)
@@ -1,9 +1,11 @@
1
1
  import os
2
+ import sys
2
3
  import ast
3
4
  import iris
4
5
  import inspect
5
6
  import xmltodict
6
7
  import pkg_resources
8
+ import importlib
7
9
 
8
10
  class _Utils():
9
11
  @staticmethod
@@ -186,20 +188,17 @@ class _Utils():
186
188
  * key: the name of the production
187
189
  * value: a dictionary containing the settings for the production
188
190
  """
189
- # try to load the settings file
190
- if filename:
191
- import sys
192
- path = None
193
- # check if the filename is absolute or relative
194
- if os.path.isabs(filename):
195
- path = os.path.dirname(filename)
191
+ try:
192
+ # if the filename is not provided
193
+ if filename is None:
194
+ settings = importlib.import_module('settings')
196
195
  else:
197
- raise ValueError("The filename must be absolute")
198
- # add the path to the system path
199
- sys.path.append(path)
200
- import settings
201
- # get the path of the settings file
202
- path = os.path.dirname(inspect.getfile(settings))
196
+ # import the settings file
197
+ settings = _Utils.import_module_from_path('settings',filename)
198
+ # get the path of the settings file
199
+ path = os.path.dirname(inspect.getfile(settings))
200
+ except ModuleNotFoundError as e:
201
+ raise ModuleNotFoundError("settings.py not found") from e
203
202
  try:
204
203
  # set the classes settings
205
204
  _Utils.set_classes_settings(settings.CLASSES,path)
@@ -211,7 +210,22 @@ class _Utils():
211
210
  except AttributeError:
212
211
  print("No productions to register")
213
212
 
214
-
213
+ @staticmethod
214
+ def import_module_from_path(module_name, file_path):
215
+ if not os.path.isabs(file_path):
216
+ file_path = os.path.abspath(file_path)
217
+ # check is a file is persent at the path
218
+ if not os.path.isfile(file_path):
219
+ # append settings.py to the path
220
+ file_path = os.path.join(file_path,'settings.py')
221
+
222
+ spec = importlib.util.spec_from_file_location(module_name, file_path)
223
+ if spec is None:
224
+ raise ImportError(f"Cannot find module named {module_name} at {file_path}")
225
+
226
+ module = importlib.util.module_from_spec(spec)
227
+ sys.modules[module_name] = module
228
+ return module
215
229
 
216
230
  @staticmethod
217
231
  def set_classes_settings(class_items,root_path=None):
@@ -360,17 +374,17 @@ class _Utils():
360
374
  return data
361
375
 
362
376
  @staticmethod
363
- def stream_to_string(stream)-> str:
377
+ def stream_to_string(stream,buffer=1000000)-> str:
364
378
  string = ""
365
379
  stream.Rewind()
366
380
  while not stream.AtEnd:
367
- string += stream.Read(4092)
381
+ string += stream.Read(buffer)
368
382
  return string
369
383
 
370
384
  @staticmethod
371
- def string_to_stream(string:str):
385
+ def string_to_stream(string:str,buffer=1000000):
372
386
  stream = iris.cls('%Stream.GlobalCharacter')._New()
373
- n = 4092
387
+ n = buffer
374
388
  chunks = [string[i:i+n] for i in range(0, len(string), n)]
375
389
  for chunk in chunks:
376
390
  stream.Write(chunk)
@@ -5,7 +5,7 @@
5
5
  Class IOP.Message Extends (Ens.MessageBody, %CSP.Page, %XML.Adaptor)
6
6
  {
7
7
 
8
- Parameter BUFFER = 64000;
8
+ Parameter BUFFER = 1000000;
9
9
 
10
10
  Property buffer As %String(MAXLEN = "") [ Calculated, Transient ];
11
11
 
@@ -15,9 +15,9 @@ Property jsonObject As %DynamicObject(XMLPROJECTION = "None");
15
15
 
16
16
  Property json As %String(MAXLEN = "");
17
17
 
18
- Property jsonStream As %Stream.GlobalCharacter [ Internal, ReadOnly ];
18
+ Property jsonStream As %Stream.GlobalCharacter [ Internal, Private ];
19
19
 
20
- Property jsonString As %String(MAXLEN = 64000) [ Internal, ReadOnly ];
20
+ Property jsonString As %String(MAXLEN = 1000000) [ Internal, Private ];
21
21
 
22
22
  Property jstr As %Stream.GlobalCharacter [ Internal, Private ];
23
23
 
@@ -80,13 +80,25 @@ Method jsonSet(pInput) As %Status
80
80
  , :$$$NULLOREF)
81
81
  Quit:tOldStream=pInput $$$OK
82
82
  Do:..type'="" Clear() Set i%type=""
83
- If $ISOBJECT(pInput) && pInput.%Extends("%Stream.GlobalCharacter") {
84
- Set r%jsonStream=pInput, i%type="Stream"
85
- }
86
- If $IsObject(pInput) && 'pInput.%Extends("%Stream.GlobalCharacter") {
87
- Throw ##class(%Exception.General).%New("Invalid input type, must be a %Stream.GlobalCharacter")
83
+
84
+ If $ISOBJECT(pInput) {
85
+ if pInput.%Extends("%Stream.GlobalCharacter") {
86
+ Set ..jsonStream=pInput, i%type="Stream"
87
+ }
88
+ else {
89
+ Throw ##class(%Exception.General).%New("Invalid input type, must be a %Stream.GlobalCharacter or a %String")
90
+ }
88
91
  }
89
- Else {
92
+ Else {
93
+ if $LENGTH(pInput)>..#BUFFER {
94
+ // write in a stream
95
+ Set stream = ##class(%Stream.GlobalCharacter).%New()
96
+ for i=1:..#BUFFER:$LENGTH(pInput) {
97
+ Set sc = stream.Write($EXTRACT(pInput,i,(i+..#BUFFER)))
98
+ Quit:$$$ISERR(sc)
99
+ }
100
+ Set ..jsonStream=stream, i%type="Stream"
101
+ }
90
102
  Set i%jsonString=pInput, i%type="String"
91
103
  }
92
104
  Quit $$$OK
@@ -3,7 +3,7 @@ Class IOP.Test Extends %Persistent
3
3
  {
4
4
 
5
5
  /// Description
6
- ClassMethod TEST() As %Status
6
+ ClassMethod TestJsonStringMessage() As %Status
7
7
  {
8
8
  set msg = ##class(IOP.Message).%New()
9
9
  set msg.classname = "IOP.Message"
@@ -13,6 +13,18 @@ ClassMethod TEST() As %Status
13
13
  QUIT $$$OK
14
14
  }
15
15
 
16
+ ClassMethod TestJsonStreamMessage() As %Status
17
+ {
18
+ set msg = ##class(IOP.Message).%New()
19
+ set msg.classname = "IOP.Message"
20
+ set stream = ##class(%Stream.GlobalCharacter).%New()
21
+ set sc = stream.Write("{""name"":""John""}")
22
+ set msg.json = stream
23
+ set tset = msg.json
24
+ set tst = msg.jstr
25
+ QUIT $$$OK
26
+ }
27
+
16
28
  /// Register
17
29
  ClassMethod Register() As %Status
18
30
  {
@@ -120,7 +120,7 @@ ClassMethod GetRemoteClassInfo(
120
120
  set onePath = $p(extraClasspaths,"|",i)
121
121
  set onePath = ##class(%File).NormalizeDirectory(onePath)
122
122
  if onePath?1"$$IRISHOME"1P.E set onePath = $e($system.Util.InstallDirectory(),1,*-1)_$e(onePath,11,*)
123
- if onePath'="" do sys.path.append(onePath)
123
+ if onePath'="" && '$FIND(sys.path,onePath) do sys.path.insert(0, onePath)
124
124
  }
125
125
  }
126
126
  ;
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: iris_pex_embedded_python
3
- Version: 3.1.1b2
3
+ Version: 3.1.1b4
4
4
  Summary: Iris Interoperability based on Embedded Python
5
5
  Author-email: grongier <guillaume.rongier@intersystems.com>
6
6
  License: MIT License