iris-pex-embedded-python 3.1.6b1__tar.gz → 3.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of iris-pex-embedded-python might be problematic. Click here for more details.

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