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.

Files changed (150) hide show
  1. {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
  2. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/pyproject.toml +1 -1
  3. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/_business_host.py +102 -1
  4. iris_pex_embedded_python-3.0.1b10/src/iop/cls/IOP/Common.cls +338 -0
  5. {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
  6. iris_pex_embedded_python-3.0.1b8/src/iop/cls/IOP/Common.cls +0 -203
  7. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/LICENSE +0 -0
  8. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/README.md +0 -0
  9. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/setup.cfg +0 -0
  10. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/setup.py +0 -0
  11. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/__init__.py +0 -0
  12. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/BusinessOperation.cls +0 -0
  13. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/BusinessProcess.cls +0 -0
  14. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/BusinessService.cls +0 -0
  15. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/Common.cls +0 -0
  16. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/Director.cls +0 -0
  17. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/Duplex/Operation.cls +0 -0
  18. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/Duplex/Process.cls +0 -0
  19. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/Duplex/Service.cls +0 -0
  20. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/InboundAdapter.cls +0 -0
  21. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/Message.cls +0 -0
  22. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/OutboundAdapter.cls +0 -0
  23. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/PickleMessage.cls +0 -0
  24. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/PrivateSession/Duplex.cls +0 -0
  25. {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
  26. {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
  27. {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
  28. {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
  29. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/Test.cls +0 -0
  30. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/PEX/Utils.cls +0 -0
  31. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/cls/Grongier/Service/WSGI.cls +0 -0
  32. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/pex/__init__.py +0 -0
  33. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/pex/__main__.py +0 -0
  34. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/pex/_business_host.py +0 -0
  35. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/pex/_cli.py +0 -0
  36. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/pex/_common.py +0 -0
  37. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/pex/_director.py +0 -0
  38. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/pex/_utils.py +0 -0
  39. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/grongier/pex/wsgi/handlers.py +0 -0
  40. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_BufferReader.py +0 -0
  41. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_BufferWriter.py +0 -0
  42. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_ConnectionInformation.py +0 -0
  43. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_ConnectionParameters.py +0 -0
  44. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_Constant.py +0 -0
  45. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_DBList.py +0 -0
  46. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_Device.py +0 -0
  47. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_GatewayContext.py +0 -0
  48. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_GatewayException.py +0 -0
  49. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_GatewayUtility.py +0 -0
  50. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_IRIS.py +0 -0
  51. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_IRISConnection.py +0 -0
  52. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_IRISEmbedded.py +0 -0
  53. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_IRISGlobalNode.py +0 -0
  54. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_IRISGlobalNodeView.py +0 -0
  55. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_IRISIterator.py +0 -0
  56. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_IRISList.py +0 -0
  57. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_IRISNative.py +0 -0
  58. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_IRISOREF.py +0 -0
  59. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_IRISObject.py +0 -0
  60. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_IRISReference.py +0 -0
  61. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_InStream.py +0 -0
  62. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_LegacyIterator.py +0 -0
  63. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_ListItem.py +0 -0
  64. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_ListReader.py +0 -0
  65. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_ListWriter.py +0 -0
  66. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_LogFileStream.py +0 -0
  67. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_MessageHeader.py +0 -0
  68. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_OutStream.py +0 -0
  69. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_PrintStream.py +0 -0
  70. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_PythonGateway.py +0 -0
  71. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/_SharedMemorySocket.py +0 -0
  72. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/__init__.py +0 -0
  73. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/__main__.py +0 -0
  74. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/dbapi/_Column.py +0 -0
  75. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/dbapi/_DBAPI.py +0 -0
  76. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/dbapi/_Descriptor.py +0 -0
  77. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/dbapi/_IRISStream.py +0 -0
  78. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/dbapi/_Message.py +0 -0
  79. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/dbapi/_Parameter.py +0 -0
  80. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/dbapi/_ParameterCollection.py +0 -0
  81. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/dbapi/_ResultSetRow.py +0 -0
  82. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/dbapi/_SQLType.py +0 -0
  83. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/dbapi/__init__.py +0 -0
  84. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/dbapi/preparser/_PreParser.py +0 -0
  85. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/dbapi/preparser/_Scanner.py +0 -0
  86. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/dbapi/preparser/_Token.py +0 -0
  87. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/dbapi/preparser/_TokenList.py +0 -0
  88. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/dbapi/preparser/__init__.py +0 -0
  89. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/pex/_BusinessHost.py +0 -0
  90. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/pex/_BusinessOperation.py +0 -0
  91. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/pex/_BusinessProcess.py +0 -0
  92. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/pex/_BusinessService.py +0 -0
  93. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/pex/_Common.py +0 -0
  94. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/pex/_Director.py +0 -0
  95. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/pex/_IRISBusinessOperation.py +0 -0
  96. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/pex/_IRISBusinessService.py +0 -0
  97. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/pex/_IRISInboundAdapter.py +0 -0
  98. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/pex/_IRISOutboundAdapter.py +0 -0
  99. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/pex/_InboundAdapter.py +0 -0
  100. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/pex/_Message.py +0 -0
  101. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/pex/_OutboundAdapter.py +0 -0
  102. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/intersystems_iris/pex/__init__.py +0 -0
  103. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/__init__.py +0 -0
  104. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/__main__.py +0 -0
  105. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/_business_operation.py +0 -0
  106. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/_business_process.py +0 -0
  107. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/_business_service.py +0 -0
  108. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/_cli.py +0 -0
  109. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/_common.py +0 -0
  110. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/_director.py +0 -0
  111. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/_inbound_adapter.py +0 -0
  112. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/_message.py +0 -0
  113. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/_outbound_adapter.py +0 -0
  114. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/_pickle_message.py +0 -0
  115. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/_private_session_duplex.py +0 -0
  116. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/_private_session_process.py +0 -0
  117. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/_utils.py +0 -0
  118. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/BusinessOperation.cls +0 -0
  119. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/BusinessProcess.cls +0 -0
  120. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/BusinessService.cls +0 -0
  121. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/Director.cls +0 -0
  122. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/Duplex/Operation.cls +0 -0
  123. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/Duplex/Process.cls +0 -0
  124. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/Duplex/Service.cls +0 -0
  125. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/InboundAdapter.cls +0 -0
  126. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/Message.cls +0 -0
  127. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/OutboundAdapter.cls +0 -0
  128. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/PickleMessage.cls +0 -0
  129. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/PrivateSession/Duplex.cls +0 -0
  130. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/PrivateSession/Message/Ack.cls +0 -0
  131. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/PrivateSession/Message/Poll.cls +0 -0
  132. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/PrivateSession/Message/Start.cls +0 -0
  133. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/PrivateSession/Message/Stop.cls +0 -0
  134. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/Service/WSGI.cls +0 -0
  135. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/Test.cls +0 -0
  136. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/cls/IOP/Utils.cls +0 -0
  137. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iop/wsgi/handlers.py +0 -0
  138. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iris/__init__.py +0 -0
  139. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iris/__init__.pyi +0 -0
  140. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iris/_cli.py +0 -0
  141. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iris/iris_ipm.py +0 -0
  142. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iris/iris_ipm.pyi +0 -0
  143. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/iris/iris_utils.py +0 -0
  144. {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
  145. {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
  146. {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
  147. {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
  148. {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
  149. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/src/irisnative/_IRISNative.py +0 -0
  150. {iris_pex_embedded_python-3.0.1b8 → iris_pex_embedded_python-3.0.1b10}/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.0.1b8
3
+ Version: 3.0.1b10
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.0.1b8"
6
+ version = "3.0.1b10"
7
7
  description = "Iris Interoperability based on Embedded Python"
8
8
  readme = "README.md"
9
9
  authors = [
@@ -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,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: iris_pex_embedded_python
3
- Version: 3.0.1b8
3
+ Version: 3.0.1b10
4
4
  Summary: Iris Interoperability based on Embedded Python
5
5
  Author-email: grongier <guillaume.rongier@intersystems.com>
6
6
  License: MIT License
@@ -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
- }