iris-pex-embedded-python 4.0.1b8__tar.gz → 4.0.2b1__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.
Files changed (146) hide show
  1. {iris_pex_embedded_python-4.0.1b8/src/iris_pex_embedded_python.egg-info → iris_pex_embedded_python-4.0.2b1}/PKG-INFO +1 -1
  2. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/pyproject.toml +1 -1
  3. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/migration/utils.py +70 -4
  4. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1/src/iris_pex_embedded_python.egg-info}/PKG-INFO +1 -1
  5. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/AGENTS.md +0 -0
  6. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/LICENSE +0 -0
  7. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/MANIFEST.in +0 -0
  8. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/README.md +0 -0
  9. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/agents-template.md +0 -0
  10. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/ai-coding.md +0 -0
  11. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/benchmarks.md +0 -0
  12. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/changelog.md +0 -0
  13. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/code-of-conduct.md +0 -0
  14. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/command-line.md +0 -0
  15. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/component-interaction.md +0 -0
  16. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/contributing.md +0 -0
  17. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/cookbooks/add-business-operation.md +0 -0
  18. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/cookbooks/add-business-process.md +0 -0
  19. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/cookbooks/add-polling-service.md +0 -0
  20. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/cookbooks/code-index.md +0 -0
  21. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/cookbooks/fhir-submission-python-client.md +0 -0
  22. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/cookbooks/hello-world-production.md +0 -0
  23. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/cookbooks/hl7v2-native-input.md +0 -0
  24. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/cookbooks/hl7v2-to-fhir-with-fhir-converter.md +0 -0
  25. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/cookbooks/index.md +0 -0
  26. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/cookbooks/production-settings-and-targets.md +0 -0
  27. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/cookbooks/remote-migration.md +0 -0
  28. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/credits.md +0 -0
  29. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/debug.md +0 -0
  30. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/dtl.md +0 -0
  31. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/example.md +0 -0
  32. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/getting-started/first-steps.md +0 -0
  33. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/getting-started/installation.md +0 -0
  34. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/getting-started/register-component.md +0 -0
  35. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/healthcare-ai-coding.md +0 -0
  36. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/index.md +0 -0
  37. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/logging.md +0 -0
  38. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/prod-settings.md +0 -0
  39. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/production-change-workflow.md +0 -0
  40. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/production-graph.md +0 -0
  41. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/python-api.md +0 -0
  42. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/rest-api.md +0 -0
  43. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/settings.md +0 -0
  44. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/useful-links.md +0 -0
  45. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/venv.md +0 -0
  46. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/docs/wrapper.md +0 -0
  47. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/mkdocs.yml +0 -0
  48. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/setup.cfg +0 -0
  49. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/__init__.py +0 -0
  50. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/__main__.py +0 -0
  51. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cli/__init__.py +0 -0
  52. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cli/formatting.py +0 -0
  53. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cli/main.py +0 -0
  54. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cli/parser.py +0 -0
  55. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cli/types.py +0 -0
  56. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cls/IOP/BusinessOperation.cls +0 -0
  57. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cls/IOP/BusinessProcess.cls +0 -0
  58. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cls/IOP/BusinessService.cls +0 -0
  59. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cls/IOP/Common.cls +0 -0
  60. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cls/IOP/Director.cls +0 -0
  61. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cls/IOP/Duplex/Operation.cls +0 -0
  62. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cls/IOP/Duplex/Process.cls +0 -0
  63. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cls/IOP/Duplex/Service.cls +0 -0
  64. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cls/IOP/Generator/Message/Ack.cls +0 -0
  65. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cls/IOP/Generator/Message/Poll.cls +0 -0
  66. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cls/IOP/Generator/Message/Start.cls +0 -0
  67. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cls/IOP/Generator/Message/StartPickle.cls +0 -0
  68. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cls/IOP/Generator/Message/Stop.cls +0 -0
  69. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cls/IOP/InboundAdapter.cls +0 -0
  70. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cls/IOP/Message/JSONSchema.cls +0 -0
  71. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cls/IOP/Message.cls +0 -0
  72. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cls/IOP/OutboundAdapter.cls +0 -0
  73. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cls/IOP/PickleMessage.cls +0 -0
  74. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cls/IOP/PrivateSession/Duplex.cls +0 -0
  75. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cls/IOP/PrivateSession/Message/Ack.cls +0 -0
  76. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cls/IOP/PrivateSession/Message/Poll.cls +0 -0
  77. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cls/IOP/PrivateSession/Message/Start.cls +0 -0
  78. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cls/IOP/PrivateSession/Message/Stop.cls +0 -0
  79. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cls/IOP/Projection.cls +0 -0
  80. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cls/IOP/Service/Remote/Handler.cls +0 -0
  81. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cls/IOP/Service/Remote/Rest/v1.cls +0 -0
  82. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cls/IOP/Test.cls +0 -0
  83. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cls/IOP/Utils.cls +0 -0
  84. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/cls/IOP/Wrapper.cls +0 -0
  85. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/components/__init__.py +0 -0
  86. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/components/async_request.py +0 -0
  87. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/components/business_host.py +0 -0
  88. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/components/business_operation.py +0 -0
  89. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/components/business_process.py +0 -0
  90. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/components/business_service.py +0 -0
  91. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/components/common.py +0 -0
  92. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/components/debugpy.py +0 -0
  93. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/components/generator_request.py +0 -0
  94. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/components/inbound_adapter.py +0 -0
  95. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/components/log_manager.py +0 -0
  96. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/components/outbound_adapter.py +0 -0
  97. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/components/polling_business_service.py +0 -0
  98. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/components/private_session_duplex.py +0 -0
  99. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/components/private_session_process.py +0 -0
  100. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/components/settings.py +0 -0
  101. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/messages/__init__.py +0 -0
  102. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/messages/base.py +0 -0
  103. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/messages/decorators.py +0 -0
  104. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/messages/dispatch.py +0 -0
  105. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/messages/persistent.py +0 -0
  106. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/messages/serialization.py +0 -0
  107. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/messages/validation.py +0 -0
  108. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/migration/__init__.py +0 -0
  109. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/migration/io.py +0 -0
  110. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/migration/manifest.py +0 -0
  111. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/migration/plans.py +0 -0
  112. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/production/__init__.py +0 -0
  113. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/production/actions.py +0 -0
  114. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/production/common.py +0 -0
  115. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/production/component.py +0 -0
  116. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/production/declarations.py +0 -0
  117. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/production/declarative.py +0 -0
  118. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/production/diff.py +0 -0
  119. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/production/import_.py +0 -0
  120. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/production/inspection.py +0 -0
  121. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/production/model.py +0 -0
  122. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/production/planning.py +0 -0
  123. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/production/reconstruction.py +0 -0
  124. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/production/rendering.py +0 -0
  125. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/production/runtime.py +0 -0
  126. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/production/source_inference.py +0 -0
  127. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/production/types.py +0 -0
  128. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/production/validation.py +0 -0
  129. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/py.typed +0 -0
  130. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/runtime/__init__.py +0 -0
  131. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/runtime/director.py +0 -0
  132. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/runtime/environment.py +0 -0
  133. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/runtime/iris.py +0 -0
  134. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/runtime/local.py +0 -0
  135. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/runtime/protocol.py +0 -0
  136. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/runtime/remote/__init__.py +0 -0
  137. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/runtime/remote/client.py +0 -0
  138. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/runtime/remote/director.py +0 -0
  139. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/runtime/remote/migration.py +0 -0
  140. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/runtime/remote/settings.py +0 -0
  141. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iop/runtime/remote/setup.py +0 -0
  142. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iris_pex_embedded_python.egg-info/SOURCES.txt +0 -0
  143. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iris_pex_embedded_python.egg-info/dependency_links.txt +0 -0
  144. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iris_pex_embedded_python.egg-info/entry_points.txt +0 -0
  145. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iris_pex_embedded_python.egg-info/requires.txt +0 -0
  146. {iris_pex_embedded_python-4.0.1b8 → iris_pex_embedded_python-4.0.2b1}/src/iris_pex_embedded_python.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iris_pex_embedded_python
3
- Version: 4.0.1b8
3
+ Version: 4.0.2b1
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 = "4.0.1b8"
6
+ version = "4.0.2b1"
7
7
  description = "Iris Interoperability based on Embedded Python"
8
8
  readme = "README.md"
9
9
  requires-python = ">=3.10"
@@ -186,6 +186,69 @@ def _get_python_path() -> str:
186
186
  return ""
187
187
 
188
188
 
189
+ def _migration_namespace_hint() -> str:
190
+ namespace = os.environ.get("IRISNAMESPACE") or os.environ.get("IOP_NAMESPACE")
191
+ if namespace:
192
+ return f"namespace {namespace!r}"
193
+ return "the target namespace"
194
+
195
+
196
+ def _looks_like_missing_iris_class_error(exc: RuntimeError) -> bool:
197
+ message = str(exc).lower()
198
+ return "error finding class" in message or "iop.utils" in message
199
+
200
+
201
+ def _format_register_component_error(
202
+ exc: RuntimeError,
203
+ *,
204
+ module: str,
205
+ classname: str,
206
+ path: str,
207
+ iris_classname: str,
208
+ ) -> str:
209
+ namespace_hint = _migration_namespace_hint()
210
+ lines = [
211
+ (
212
+ f"Could not register IRIS proxy class {iris_classname!r} "
213
+ f"for Python component {module}.{classname}."
214
+ )
215
+ ]
216
+
217
+ if _looks_like_missing_iris_class_error(exc):
218
+ lines.extend(
219
+ [
220
+ "",
221
+ "IRIS could not find a class required during component registration.",
222
+ (
223
+ "Most often this means the IoP support classes "
224
+ f"(`IOP.Utils`, `IOP.BusinessService`, etc.) are not loaded in "
225
+ f"{namespace_hint} yet, or migration ran before `iop --init` "
226
+ "completed."
227
+ ),
228
+ "",
229
+ "Fix:",
230
+ f" 1. Run `iop --init` in {namespace_hint}.",
231
+ " 2. Re-run `iop --migrate <settings.py>`.",
232
+ (
233
+ " 3. In containers, wait for IRIS with "
234
+ "`/usr/irissys/dev/Container/waitReady.sh` before `iop --init`."
235
+ ),
236
+ ]
237
+ )
238
+
239
+ lines.extend(
240
+ [
241
+ "",
242
+ "Registration details:",
243
+ f" IRIS proxy class: {iris_classname}",
244
+ f" Python component: {module}.{classname}",
245
+ f" Python class path: {path}",
246
+ f" Original IRIS error: {exc}",
247
+ ]
248
+ )
249
+ return "\n".join(lines)
250
+
251
+
189
252
  def register_component(
190
253
  module: str,
191
254
  classname: str,
@@ -228,10 +291,13 @@ def register_component(
228
291
  )
229
292
  except RuntimeError as e:
230
293
  raise RuntimeError(
231
- "Could not register component "
232
- f"{iris_classname} from {module}.{classname}. "
233
- "If IRIS reports that IOP.Utils is missing, initialize the IRIS "
234
- f"support classes with `iop --init`. Original IRIS error: {e}"
294
+ _format_register_component_error(
295
+ e,
296
+ module=module,
297
+ classname=classname,
298
+ path=path,
299
+ iris_classname=iris_classname,
300
+ )
235
301
  ) from e
236
302
 
237
303
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iris_pex_embedded_python
3
- Version: 4.0.1b8
3
+ Version: 4.0.2b1
4
4
  Summary: Iris Interoperability based on Embedded Python
5
5
  Author-email: grongier <guillaume.rongier@intersystems.com>
6
6
  License: MIT License