iris-pex-embedded-python 4.0.0b2__tar.gz → 4.0.0b3__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 (98) hide show
  1. {iris_pex_embedded_python-4.0.0b2/src/iris_pex_embedded_python.egg-info → iris_pex_embedded_python-4.0.0b3}/PKG-INFO +1 -1
  2. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/pyproject.toml +1 -1
  3. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/messages/serialization.py +13 -4
  4. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/runtime/director.py +15 -5
  5. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3/src/iris_pex_embedded_python.egg-info}/PKG-INFO +1 -1
  6. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/LICENSE +0 -0
  7. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/README.md +0 -0
  8. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/setup.cfg +0 -0
  9. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/__init__.py +0 -0
  10. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/__main__.py +0 -0
  11. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cli/__init__.py +0 -0
  12. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cli/formatting.py +0 -0
  13. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cli/main.py +0 -0
  14. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cli/parser.py +0 -0
  15. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cli/types.py +0 -0
  16. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cls/IOP/BusinessOperation.cls +0 -0
  17. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cls/IOP/BusinessProcess.cls +0 -0
  18. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cls/IOP/BusinessService.cls +0 -0
  19. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cls/IOP/Common.cls +0 -0
  20. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cls/IOP/Director.cls +0 -0
  21. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cls/IOP/Duplex/Operation.cls +0 -0
  22. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cls/IOP/Duplex/Process.cls +0 -0
  23. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cls/IOP/Duplex/Service.cls +0 -0
  24. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cls/IOP/Generator/Message/Ack.cls +0 -0
  25. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cls/IOP/Generator/Message/Poll.cls +0 -0
  26. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cls/IOP/Generator/Message/Start.cls +0 -0
  27. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cls/IOP/Generator/Message/StartPickle.cls +0 -0
  28. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cls/IOP/Generator/Message/Stop.cls +0 -0
  29. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cls/IOP/InboundAdapter.cls +0 -0
  30. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cls/IOP/Message/JSONSchema.cls +0 -0
  31. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cls/IOP/Message.cls +0 -0
  32. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cls/IOP/OutboundAdapter.cls +0 -0
  33. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cls/IOP/PickleMessage.cls +0 -0
  34. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cls/IOP/PrivateSession/Duplex.cls +0 -0
  35. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cls/IOP/PrivateSession/Message/Ack.cls +0 -0
  36. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cls/IOP/PrivateSession/Message/Poll.cls +0 -0
  37. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cls/IOP/PrivateSession/Message/Start.cls +0 -0
  38. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cls/IOP/PrivateSession/Message/Stop.cls +0 -0
  39. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cls/IOP/Projection.cls +0 -0
  40. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cls/IOP/Service/Remote/Handler.cls +0 -0
  41. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cls/IOP/Service/Remote/Rest/v1.cls +0 -0
  42. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cls/IOP/Test.cls +0 -0
  43. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cls/IOP/Utils.cls +0 -0
  44. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/cls/IOP/Wrapper.cls +0 -0
  45. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/components/__init__.py +0 -0
  46. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/components/async_request.py +0 -0
  47. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/components/business_host.py +0 -0
  48. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/components/business_operation.py +0 -0
  49. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/components/business_process.py +0 -0
  50. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/components/business_service.py +0 -0
  51. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/components/common.py +0 -0
  52. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/components/debugpy.py +0 -0
  53. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/components/generator_request.py +0 -0
  54. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/components/inbound_adapter.py +0 -0
  55. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/components/log_manager.py +0 -0
  56. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/components/outbound_adapter.py +0 -0
  57. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/components/polling_business_service.py +0 -0
  58. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/components/private_session_duplex.py +0 -0
  59. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/components/private_session_process.py +0 -0
  60. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/components/settings.py +0 -0
  61. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/messages/__init__.py +0 -0
  62. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/messages/base.py +0 -0
  63. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/messages/decorators.py +0 -0
  64. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/messages/dispatch.py +0 -0
  65. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/messages/persistent.py +0 -0
  66. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/messages/validation.py +0 -0
  67. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/migration/__init__.py +0 -0
  68. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/migration/io.py +0 -0
  69. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/migration/plans.py +0 -0
  70. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/migration/utils.py +0 -0
  71. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/production/__init__.py +0 -0
  72. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/production/actions.py +0 -0
  73. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/production/common.py +0 -0
  74. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/production/component.py +0 -0
  75. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/production/diff.py +0 -0
  76. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/production/import_.py +0 -0
  77. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/production/inspection.py +0 -0
  78. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/production/model.py +0 -0
  79. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/production/reconstruction.py +0 -0
  80. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/production/rendering.py +0 -0
  81. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/production/runtime.py +0 -0
  82. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/production/types.py +0 -0
  83. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/runtime/__init__.py +0 -0
  84. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/runtime/environment.py +0 -0
  85. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/runtime/iris.py +0 -0
  86. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/runtime/local.py +0 -0
  87. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/runtime/protocol.py +0 -0
  88. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/runtime/remote/__init__.py +0 -0
  89. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/runtime/remote/client.py +0 -0
  90. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/runtime/remote/director.py +0 -0
  91. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/runtime/remote/migration.py +0 -0
  92. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/runtime/remote/settings.py +0 -0
  93. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iop/runtime/remote/setup.py +0 -0
  94. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iris_pex_embedded_python.egg-info/SOURCES.txt +0 -0
  95. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iris_pex_embedded_python.egg-info/dependency_links.txt +0 -0
  96. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iris_pex_embedded_python.egg-info/entry_points.txt +0 -0
  97. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/src/iris_pex_embedded_python.egg-info/requires.txt +0 -0
  98. {iris_pex_embedded_python-4.0.0b2 → iris_pex_embedded_python-4.0.0b3}/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.0b2
3
+ Version: 4.0.0b3
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.0b2"
6
+ version = "4.0.0b3"
7
7
  description = "Iris Interoperability based on Embedded Python"
8
8
  readme = "README.md"
9
9
  requires-python = ">=3.10"
@@ -22,6 +22,12 @@ class SerializationError(Exception):
22
22
  pass
23
23
 
24
24
 
25
+ class MessageClassImportError(SerializationError, ImportError):
26
+ """Raised when a JSON message's Python class cannot be imported."""
27
+
28
+ pass
29
+
30
+
25
31
  class TempPydanticModel(BaseModel):
26
32
  model_config = {"arbitrary_types_allowed": True, "extra": "allow"}
27
33
 
@@ -93,8 +99,8 @@ class MessageSerializer:
93
99
  )
94
100
  module = importlib.import_module(module_name)
95
101
  msg_class = getattr(module, class_name)
96
- except Exception as e:
97
- raise SerializationError(
102
+ except (ModuleNotFoundError, AttributeError, ValueError) as e:
103
+ raise MessageClassImportError(
98
104
  f"Failed to load class {serial.classname}: {str(e)}"
99
105
  ) from e
100
106
 
@@ -130,9 +136,12 @@ class MessageSerializer:
130
136
 
131
137
  @staticmethod
132
138
  def _parse_classname(classname: str) -> tuple[str, str]:
133
- j = classname.rindex(".")
139
+ try:
140
+ j = classname.rindex(".")
141
+ except ValueError as e:
142
+ raise ValueError(f"Classname must include a module: {classname}") from e
134
143
  if j <= 0:
135
- raise SerializationError(f"Classname must include a module: {classname}")
144
+ raise ValueError(f"Classname must include a module: {classname}")
136
145
  return classname[:j], classname[j + 1 :]
137
146
 
138
147
  @staticmethod
@@ -9,6 +9,7 @@ from dataclasses import dataclass
9
9
  from functools import wraps
10
10
 
11
11
  from ..messages.dispatch import dispatch_deserializer, dispatch_serializer
12
+ from ..messages.serialization import MessageClassImportError
12
13
  from ..migration import utils as _migration_utils
13
14
  from ..runtime import iris as _iris
14
15
 
@@ -327,11 +328,20 @@ def test_component(target, message=None, classname=None, body=None):
327
328
  response = iris.cls("IOP.Utils").dispatchTestComponent(target, serial_message)
328
329
  try:
329
330
  deserialized_response = dispatch_deserializer(response)
330
- except ImportError:
331
- # can't import the class, return the string
332
- deserialized_response = (
333
- f"{response.classname} : {_migration_utils.stream_to_string(response.jstr)}"
334
- )
331
+ except MessageClassImportError:
332
+ if response._IsA("IOP.Message"):
333
+ body = (
334
+ _migration_utils.stream_to_string(response.json)
335
+ if response.type == "Stream"
336
+ else response.json
337
+ )
338
+ deserialized_response = {
339
+ "classname": response.classname,
340
+ "body": body,
341
+ "truncated": False,
342
+ }
343
+ else:
344
+ raise
335
345
  return deserialized_response
336
346
 
337
347
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iris_pex_embedded_python
3
- Version: 4.0.0b2
3
+ Version: 4.0.0b3
4
4
  Summary: Iris Interoperability based on Embedded Python
5
5
  Author-email: grongier <guillaume.rongier@intersystems.com>
6
6
  License: MIT License