iris-pex-embedded-python 3.4.1b3__tar.gz → 3.4.1b5__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 (85) hide show
  1. {iris_pex_embedded_python-3.4.1b3/src/iris_pex_embedded_python.egg-info → iris_pex_embedded_python-3.4.1b5}/PKG-INFO +1 -1
  2. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/pyproject.toml +1 -1
  3. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/_serialization.py +18 -10
  4. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5/src/iris_pex_embedded_python.egg-info}/PKG-INFO +1 -1
  5. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/LICENSE +0 -0
  6. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/README.md +0 -0
  7. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/setup.cfg +0 -0
  8. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/setup.py +0 -0
  9. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/grongier/__init__.py +0 -0
  10. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/grongier/cls/Grongier/PEX/BusinessOperation.cls +0 -0
  11. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/grongier/cls/Grongier/PEX/BusinessProcess.cls +0 -0
  12. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/grongier/cls/Grongier/PEX/BusinessService.cls +0 -0
  13. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/grongier/cls/Grongier/PEX/Common.cls +0 -0
  14. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/grongier/cls/Grongier/PEX/Director.cls +0 -0
  15. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/grongier/cls/Grongier/PEX/Duplex/Operation.cls +0 -0
  16. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/grongier/cls/Grongier/PEX/Duplex/Process.cls +0 -0
  17. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/grongier/cls/Grongier/PEX/Duplex/Service.cls +0 -0
  18. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/grongier/cls/Grongier/PEX/InboundAdapter.cls +0 -0
  19. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/grongier/cls/Grongier/PEX/Message.cls +0 -0
  20. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/grongier/cls/Grongier/PEX/OutboundAdapter.cls +0 -0
  21. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/grongier/cls/Grongier/PEX/PickleMessage.cls +0 -0
  22. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/grongier/cls/Grongier/PEX/PrivateSession/Duplex.cls +0 -0
  23. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/grongier/cls/Grongier/PEX/PrivateSession/Message/Ack.cls +0 -0
  24. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/grongier/cls/Grongier/PEX/PrivateSession/Message/Poll.cls +0 -0
  25. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/grongier/cls/Grongier/PEX/PrivateSession/Message/Start.cls +0 -0
  26. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/grongier/cls/Grongier/PEX/PrivateSession/Message/Stop.cls +0 -0
  27. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/grongier/cls/Grongier/PEX/Test.cls +0 -0
  28. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/grongier/cls/Grongier/PEX/Utils.cls +0 -0
  29. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/grongier/cls/Grongier/Service/WSGI.cls +0 -0
  30. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/grongier/pex/__init__.py +0 -0
  31. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/grongier/pex/__main__.py +0 -0
  32. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/grongier/pex/_business_host.py +0 -0
  33. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/grongier/pex/_cli.py +0 -0
  34. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/grongier/pex/_common.py +0 -0
  35. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/grongier/pex/_director.py +0 -0
  36. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/grongier/pex/_utils.py +0 -0
  37. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/grongier/pex/wsgi/handlers.py +0 -0
  38. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/__init__.py +0 -0
  39. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/__main__.py +0 -0
  40. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/_async_request.py +0 -0
  41. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/_business_host.py +0 -0
  42. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/_business_operation.py +0 -0
  43. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/_business_process.py +0 -0
  44. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/_business_service.py +0 -0
  45. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/_cli.py +0 -0
  46. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/_common.py +0 -0
  47. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/_decorators.py +0 -0
  48. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/_director.py +0 -0
  49. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/_dispatch.py +0 -0
  50. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/_inbound_adapter.py +0 -0
  51. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/_iris.py +0 -0
  52. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/_log_manager.py +0 -0
  53. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/_message.py +0 -0
  54. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/_message_validator.py +0 -0
  55. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/_outbound_adapter.py +0 -0
  56. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/_private_session_duplex.py +0 -0
  57. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/_private_session_process.py +0 -0
  58. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/_utils.py +0 -0
  59. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/cls/IOP/BusinessOperation.cls +0 -0
  60. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/cls/IOP/BusinessProcess.cls +0 -0
  61. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/cls/IOP/BusinessService.cls +0 -0
  62. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/cls/IOP/Common.cls +0 -0
  63. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/cls/IOP/Director.cls +0 -0
  64. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/cls/IOP/Duplex/Operation.cls +0 -0
  65. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/cls/IOP/Duplex/Process.cls +0 -0
  66. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/cls/IOP/Duplex/Service.cls +0 -0
  67. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/cls/IOP/InboundAdapter.cls +0 -0
  68. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/cls/IOP/Message/JSONSchema.cls +0 -0
  69. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/cls/IOP/Message.cls +0 -0
  70. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/cls/IOP/OutboundAdapter.cls +0 -0
  71. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/cls/IOP/PickleMessage.cls +0 -0
  72. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/cls/IOP/PrivateSession/Duplex.cls +0 -0
  73. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/cls/IOP/PrivateSession/Message/Ack.cls +0 -0
  74. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/cls/IOP/PrivateSession/Message/Poll.cls +0 -0
  75. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/cls/IOP/PrivateSession/Message/Start.cls +0 -0
  76. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/cls/IOP/PrivateSession/Message/Stop.cls +0 -0
  77. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/cls/IOP/Service/WSGI.cls +0 -0
  78. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/cls/IOP/Test.cls +0 -0
  79. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/cls/IOP/Utils.cls +0 -0
  80. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iop/wsgi/handlers.py +0 -0
  81. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iris_pex_embedded_python.egg-info/SOURCES.txt +0 -0
  82. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iris_pex_embedded_python.egg-info/dependency_links.txt +0 -0
  83. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iris_pex_embedded_python.egg-info/entry_points.txt +0 -0
  84. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/src/iris_pex_embedded_python.egg-info/requires.txt +0 -0
  85. {iris_pex_embedded_python-3.4.1b3 → iris_pex_embedded_python-3.4.1b5}/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: 3.4.1b3
3
+ Version: 3.4.1b5
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.4.1b3"
6
+ version = "3.4.1b5"
7
7
  description = "Iris Interoperability based on Embedded Python"
8
8
  readme = "README.md"
9
9
  authors = [
@@ -4,13 +4,13 @@ import importlib
4
4
  import inspect
5
5
  import pickle
6
6
  import json
7
- from dataclasses import asdict, is_dataclass
7
+ from dataclasses import is_dataclass
8
8
  from typing import Any, Dict, Type
9
9
 
10
10
  from . import _iris
11
11
  from pydantic import BaseModel, TypeAdapter, ValidationError
12
12
 
13
- from iop._message import _PydanticPickleMessage
13
+ from iop._message import _PydanticPickleMessage, _Message
14
14
  from iop._utils import _Utils
15
15
 
16
16
  class SerializationError(Exception):
@@ -31,10 +31,10 @@ class MessageSerializer:
31
31
  """Convert objects to JSON-safe format."""
32
32
  if isinstance(obj, BaseModel):
33
33
  return obj.model_dump_json()
34
- elif is_dataclass(obj):
34
+ elif is_dataclass(obj) and isinstance(obj, _Message):
35
35
  return TempPydanticModel.model_validate(dataclass_to_dict(obj)).model_dump_json()
36
36
  else:
37
- raise SerializationError(f"Object {obj} must be a Pydantic model or dataclass")
37
+ raise SerializationError(f"Object {obj} must be a Pydantic model or dataclass Message")
38
38
 
39
39
  @staticmethod
40
40
  def serialize(message: Any, use_pickle: bool = False) -> Any:
@@ -149,12 +149,20 @@ def dataclass_from_dict(klass: Type, dikt: Dict) -> Any:
149
149
  def dataclass_to_dict(instance: Any) -> Dict:
150
150
  """Converts a class instance to a dictionary.
151
151
  Handles non attended fields."""
152
- dikt = asdict(instance)
153
- # assign any extra fields
154
- for k, v in vars(instance).items():
155
- if k not in dikt:
156
- dikt[k] = v
157
- return dikt
152
+ result = {}
153
+ for field in instance.__dict__:
154
+ value = getattr(instance, field)
155
+ if is_dataclass(value):
156
+ result[field] = dataclass_to_dict(value)
157
+ elif isinstance(value, list):
158
+ result[field] = [dataclass_to_dict(i) if is_dataclass(i) else i for i in value]
159
+ elif isinstance(value, dict):
160
+ result[field] = {k: dataclass_to_dict(v) if is_dataclass(v) else v for k, v in value.items()}
161
+ elif hasattr(value, '__dict__'):
162
+ result[field] = dataclass_to_dict(value)
163
+ else:
164
+ result[field] = value
165
+ return result
158
166
 
159
167
  # Maintain backwards compatibility
160
168
  serialize_pickle_message = lambda msg: MessageSerializer.serialize(msg, use_pickle=True)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: iris_pex_embedded_python
3
- Version: 3.4.1b3
3
+ Version: 3.4.1b5
4
4
  Summary: Iris Interoperability based on Embedded Python
5
5
  Author-email: grongier <guillaume.rongier@intersystems.com>
6
6
  License: MIT License