iris-pex-embedded-python 4.0.1b7__tar.gz → 4.0.1b8__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.1b7/src/iris_pex_embedded_python.egg-info → iris_pex_embedded_python-4.0.1b8}/PKG-INFO +1 -1
  2. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/pyproject.toml +1 -1
  3. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/production/common.py +14 -1
  4. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/production/declarations.py +6 -4
  5. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/production/model.py +3 -2
  6. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/production/validation.py +10 -3
  7. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8/src/iris_pex_embedded_python.egg-info}/PKG-INFO +1 -1
  8. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/AGENTS.md +0 -0
  9. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/LICENSE +0 -0
  10. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/MANIFEST.in +0 -0
  11. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/README.md +0 -0
  12. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/agents-template.md +0 -0
  13. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/ai-coding.md +0 -0
  14. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/benchmarks.md +0 -0
  15. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/changelog.md +0 -0
  16. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/code-of-conduct.md +0 -0
  17. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/command-line.md +0 -0
  18. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/component-interaction.md +0 -0
  19. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/contributing.md +0 -0
  20. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/cookbooks/add-business-operation.md +0 -0
  21. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/cookbooks/add-business-process.md +0 -0
  22. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/cookbooks/add-polling-service.md +0 -0
  23. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/cookbooks/code-index.md +0 -0
  24. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/cookbooks/fhir-submission-python-client.md +0 -0
  25. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/cookbooks/hello-world-production.md +0 -0
  26. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/cookbooks/hl7v2-native-input.md +0 -0
  27. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/cookbooks/hl7v2-to-fhir-with-fhir-converter.md +0 -0
  28. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/cookbooks/index.md +0 -0
  29. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/cookbooks/production-settings-and-targets.md +0 -0
  30. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/cookbooks/remote-migration.md +0 -0
  31. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/credits.md +0 -0
  32. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/debug.md +0 -0
  33. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/dtl.md +0 -0
  34. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/example.md +0 -0
  35. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/getting-started/first-steps.md +0 -0
  36. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/getting-started/installation.md +0 -0
  37. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/getting-started/register-component.md +0 -0
  38. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/healthcare-ai-coding.md +0 -0
  39. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/index.md +0 -0
  40. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/logging.md +0 -0
  41. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/prod-settings.md +0 -0
  42. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/production-change-workflow.md +0 -0
  43. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/production-graph.md +0 -0
  44. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/python-api.md +0 -0
  45. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/rest-api.md +0 -0
  46. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/settings.md +0 -0
  47. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/useful-links.md +0 -0
  48. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/venv.md +0 -0
  49. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/docs/wrapper.md +0 -0
  50. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/mkdocs.yml +0 -0
  51. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/setup.cfg +0 -0
  52. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/__init__.py +0 -0
  53. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/__main__.py +0 -0
  54. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cli/__init__.py +0 -0
  55. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cli/formatting.py +0 -0
  56. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cli/main.py +0 -0
  57. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cli/parser.py +0 -0
  58. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cli/types.py +0 -0
  59. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cls/IOP/BusinessOperation.cls +0 -0
  60. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cls/IOP/BusinessProcess.cls +0 -0
  61. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cls/IOP/BusinessService.cls +0 -0
  62. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cls/IOP/Common.cls +0 -0
  63. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cls/IOP/Director.cls +0 -0
  64. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cls/IOP/Duplex/Operation.cls +0 -0
  65. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cls/IOP/Duplex/Process.cls +0 -0
  66. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cls/IOP/Duplex/Service.cls +0 -0
  67. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cls/IOP/Generator/Message/Ack.cls +0 -0
  68. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cls/IOP/Generator/Message/Poll.cls +0 -0
  69. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cls/IOP/Generator/Message/Start.cls +0 -0
  70. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cls/IOP/Generator/Message/StartPickle.cls +0 -0
  71. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cls/IOP/Generator/Message/Stop.cls +0 -0
  72. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cls/IOP/InboundAdapter.cls +0 -0
  73. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cls/IOP/Message/JSONSchema.cls +0 -0
  74. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cls/IOP/Message.cls +0 -0
  75. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cls/IOP/OutboundAdapter.cls +0 -0
  76. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cls/IOP/PickleMessage.cls +0 -0
  77. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cls/IOP/PrivateSession/Duplex.cls +0 -0
  78. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cls/IOP/PrivateSession/Message/Ack.cls +0 -0
  79. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cls/IOP/PrivateSession/Message/Poll.cls +0 -0
  80. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cls/IOP/PrivateSession/Message/Start.cls +0 -0
  81. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cls/IOP/PrivateSession/Message/Stop.cls +0 -0
  82. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cls/IOP/Projection.cls +0 -0
  83. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cls/IOP/Service/Remote/Handler.cls +0 -0
  84. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cls/IOP/Service/Remote/Rest/v1.cls +0 -0
  85. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cls/IOP/Test.cls +0 -0
  86. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cls/IOP/Utils.cls +0 -0
  87. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/cls/IOP/Wrapper.cls +0 -0
  88. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/components/__init__.py +0 -0
  89. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/components/async_request.py +0 -0
  90. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/components/business_host.py +0 -0
  91. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/components/business_operation.py +0 -0
  92. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/components/business_process.py +0 -0
  93. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/components/business_service.py +0 -0
  94. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/components/common.py +0 -0
  95. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/components/debugpy.py +0 -0
  96. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/components/generator_request.py +0 -0
  97. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/components/inbound_adapter.py +0 -0
  98. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/components/log_manager.py +0 -0
  99. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/components/outbound_adapter.py +0 -0
  100. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/components/polling_business_service.py +0 -0
  101. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/components/private_session_duplex.py +0 -0
  102. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/components/private_session_process.py +0 -0
  103. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/components/settings.py +0 -0
  104. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/messages/__init__.py +0 -0
  105. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/messages/base.py +0 -0
  106. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/messages/decorators.py +0 -0
  107. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/messages/dispatch.py +0 -0
  108. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/messages/persistent.py +0 -0
  109. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/messages/serialization.py +0 -0
  110. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/messages/validation.py +0 -0
  111. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/migration/__init__.py +0 -0
  112. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/migration/io.py +0 -0
  113. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/migration/manifest.py +0 -0
  114. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/migration/plans.py +0 -0
  115. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/migration/utils.py +0 -0
  116. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/production/__init__.py +0 -0
  117. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/production/actions.py +0 -0
  118. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/production/component.py +0 -0
  119. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/production/declarative.py +0 -0
  120. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/production/diff.py +0 -0
  121. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/production/import_.py +0 -0
  122. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/production/inspection.py +0 -0
  123. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/production/planning.py +0 -0
  124. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/production/reconstruction.py +0 -0
  125. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/production/rendering.py +0 -0
  126. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/production/runtime.py +0 -0
  127. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/production/source_inference.py +0 -0
  128. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/production/types.py +0 -0
  129. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/py.typed +0 -0
  130. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/runtime/__init__.py +0 -0
  131. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/runtime/director.py +0 -0
  132. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/runtime/environment.py +0 -0
  133. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/runtime/iris.py +0 -0
  134. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/runtime/local.py +0 -0
  135. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/runtime/protocol.py +0 -0
  136. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/runtime/remote/__init__.py +0 -0
  137. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/runtime/remote/client.py +0 -0
  138. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/runtime/remote/director.py +0 -0
  139. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/runtime/remote/migration.py +0 -0
  140. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/runtime/remote/settings.py +0 -0
  141. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iop/runtime/remote/setup.py +0 -0
  142. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iris_pex_embedded_python.egg-info/SOURCES.txt +0 -0
  143. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iris_pex_embedded_python.egg-info/dependency_links.txt +0 -0
  144. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iris_pex_embedded_python.egg-info/entry_points.txt +0 -0
  145. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/src/iris_pex_embedded_python.egg-info/requires.txt +0 -0
  146. {iris_pex_embedded_python-4.0.1b7 → iris_pex_embedded_python-4.0.1b8}/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.1b7
3
+ Version: 4.0.1b8
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.1b7"
6
+ version = "4.0.1b8"
7
7
  description = "Iris Interoperability based on Embedded Python"
8
8
  readme = "README.md"
9
9
  requires-python = ">=3.10"
@@ -3,6 +3,8 @@ from __future__ import annotations
3
3
  import importlib
4
4
  from typing import Any
5
5
 
6
+ from ..components.settings import Setting
7
+
6
8
  PRODUCTION_SETTING_FIELDS: dict[str, tuple[str, Any]] = {
7
9
  "shutdown_timeout": ("ShutdownTimeout", 120),
8
10
  "update_timeout": ("UpdateTimeout", 10),
@@ -83,11 +85,21 @@ def _adapter_type_from_class_name(class_name: str | None) -> str:
83
85
  return _adapter_type_from_component_class(component_class)
84
86
 
85
87
 
88
+ def _setting_name(name: Any) -> str:
89
+ if isinstance(name, Setting) and name.name:
90
+ return name.name
91
+ return str(name)
92
+
93
+
94
+ def _normalize_settings_mapping(values: Any) -> dict[str, Any]:
95
+ return {_setting_name(key): value for key, value in dict(values or {}).items()}
96
+
97
+
86
98
  def _settings_to_iris(target_name: str, values: dict[str, Any]) -> list[dict[str, str]]:
87
99
  return [
88
100
  {
89
101
  "@Target": target_name,
90
- "@Name": name,
102
+ "@Name": _setting_name(name),
91
103
  "#text": _text_value(value),
92
104
  }
93
105
  for name, value in values.items()
@@ -97,6 +109,7 @@ def _settings_to_iris(target_name: str, values: dict[str, Any]) -> list[dict[str
97
109
  def _apply_settings_update(target: dict[str, Any], updates: Any) -> None:
98
110
  """Merge *updates* into *target*, treating ``None`` values as removals."""
99
111
  for key, value in (updates or {}).items():
112
+ key = _setting_name(key)
100
113
  if value is None:
101
114
  target.pop(key, None)
102
115
  else:
@@ -2,9 +2,9 @@ from __future__ import annotations
2
2
 
3
3
  from collections.abc import Iterable, Mapping
4
4
  from dataclasses import dataclass, field
5
- from typing import Any, ClassVar, Protocol
5
+ from typing import Any, ClassVar, Protocol, cast
6
6
 
7
- from .common import SETTING_NAME_ALIASES
7
+ from .common import SETTING_NAME_ALIASES, _normalize_settings_mapping
8
8
  from .types import TargetSetting
9
9
 
10
10
 
@@ -36,7 +36,9 @@ class Route:
36
36
  targets = (self.targets,)
37
37
  else:
38
38
  try:
39
- targets = tuple(self.targets)
39
+ targets = tuple(
40
+ cast(Iterable[str | _NamedRouteTarget], self.targets)
41
+ )
40
42
  except TypeError as exc:
41
43
  raise TypeError(
42
44
  f"Route {self.target_setting_name!r} targets must be an item name, "
@@ -174,7 +176,7 @@ def _mapping(
174
176
  item_name: str,
175
177
  ) -> dict[str, Any]:
176
178
  try:
177
- return dict(values or {})
179
+ return _normalize_settings_mapping(values)
178
180
  except (TypeError, ValueError) as exc:
179
181
  raise TypeError(
180
182
  f"Production item {item_name!r} {field_name} must be a mapping"
@@ -9,6 +9,7 @@ from .common import (
9
9
  _adapter_type_from_component_class,
10
10
  _apply_settings_update,
11
11
  _auto_proxy_class_name,
12
+ _normalize_settings_mapping,
12
13
  )
13
14
  from .component import ComponentRef
14
15
  from .declarative import _DeclarativeProductionMixin
@@ -432,8 +433,8 @@ class Production(_DeclarativeProductionMixin):
432
433
  comment=comment,
433
434
  log_trace_events=log_trace_events,
434
435
  schedule=schedule,
435
- host_settings=dict(settings or {}),
436
- adapter_settings=dict(adapter_settings or {}),
436
+ host_settings=_normalize_settings_mapping(settings),
437
+ adapter_settings=_normalize_settings_mapping(adapter_settings),
437
438
  )
438
439
  self._add_item(ref)
439
440
  return ref
@@ -8,6 +8,7 @@ from .common import (
8
8
  PRODUCTION_SETTING_FIELDS_BY_IRIS,
9
9
  PRODUCTION_SETTING_NAMES,
10
10
  SETTING_NAME_ALIASES,
11
+ _normalize_settings_mapping,
11
12
  )
12
13
  from .import_ import _as_list, _production_payload, _split_settings
13
14
  from .types import TargetSetting
@@ -183,14 +184,18 @@ def _validate_component_ref(item: Any) -> list[ProductionValidationIssue]:
183
184
 
184
185
  issues.extend(
185
186
  _validate_settings(
186
- settings=dict(getattr(item, "host_settings", {}) or {}),
187
+ settings=_normalize_settings_mapping(
188
+ getattr(item, "host_settings", {}) or {}
189
+ ),
187
190
  path_prefix=f"items.{item_name}.settings.Host",
188
191
  local_class=component_class,
189
192
  iris_class_name=class_name,
190
193
  )
191
194
  )
192
195
 
193
- adapter_settings = dict(getattr(item, "adapter_settings", {}) or {})
196
+ adapter_settings = _normalize_settings_mapping(
197
+ getattr(item, "adapter_settings", {}) or {}
198
+ )
194
199
  if str(getattr(item, "kind", "")) == "process" and adapter_settings:
195
200
  issues.append(
196
201
  ProductionValidationIssue(
@@ -355,7 +360,9 @@ def _validate_target_setting_values(production: Any) -> list[ProductionValidatio
355
360
  issues: list[ProductionValidationIssue] = []
356
361
  for item in items:
357
362
  item_name = str(getattr(item, "name", ""))
358
- host_settings = dict(getattr(item, "host_settings", {}) or {})
363
+ host_settings = _normalize_settings_mapping(
364
+ getattr(item, "host_settings", {}) or {}
365
+ )
359
366
  for setting_name in _target_setting_names(item):
360
367
  if setting_name not in host_settings:
361
368
  continue
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iris_pex_embedded_python
3
- Version: 4.0.1b7
3
+ Version: 4.0.1b8
4
4
  Summary: Iris Interoperability based on Embedded Python
5
5
  Author-email: grongier <guillaume.rongier@intersystems.com>
6
6
  License: MIT License