Skip to content

Commit 84db9bc

Browse files
committed
Refactor serialization and utility classes for improved readability and consistency
- Consolidated formatting and spacing in the MessageSerializer and _Utils classes. - Updated method signatures and docstrings for clarity. - Enhanced error handling and exception messages. - Streamlined import statements and removed unnecessary comments. - Maintained backwards compatibility for serialization functions. - Improved the organization of the code for better maintainability.
1 parent 69b17b3 commit 84db9bc

31 files changed

Lines changed: 1486 additions & 808 deletions

CHANGELOG.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1111
- Export `Model` from `iop` for nested native persistent or serial objects inside `PersistentMessage`.
1212

1313
### Fixed
14-
- Fix json schema handling enums.
1514
- Fix `PersistentMessage` deserialization for IRIS-originated messages whose Python module is not already importable by storing and using `IOP_PYTHON_CLASSPATH`.
15+
- using ruff to fix various linting issues and improve code quality
16+
17+
## [3.6.1] - 2026-05-12
18+
### Fixed
19+
- Fix json schema handling enums.
1620

1721
## [3.6.0] - 2026-03-30
1822
### Added

src/grongier/pex/__init__.py

Lines changed: 61 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,66 @@
1-
from iop._business_service import _BusinessService
2-
from iop._business_process import _BusinessProcess
3-
from iop._private_session_duplex import _PrivateSessionDuplex
4-
from iop._private_session_process import _PrivateSessionProcess
5-
from iop._business_operation import _BusinessOperation
6-
from iop._inbound_adapter import _InboundAdapter
7-
from iop._outbound_adapter import _OutboundAdapter
1+
from iop._business_operation import _BusinessOperation
2+
from iop._business_process import _BusinessProcess
3+
from iop._business_service import _BusinessService
4+
from iop._director import _Director
5+
from iop._inbound_adapter import _InboundAdapter
86
from iop._message import _Message
97
from iop._message import _PickleMessage
10-
from iop._persistent_message import Field, Model, _PersistentMessage
11-
from iop._director import _Director
8+
from iop._outbound_adapter import _OutboundAdapter
9+
from iop._persistent_message import Field as Field
10+
from iop._persistent_message import Model as Model
11+
from iop._persistent_message import _PersistentMessage
12+
from iop._private_session_duplex import _PrivateSessionDuplex
13+
from iop._private_session_process import _PrivateSessionProcess
1214
from iop._utils import _Utils
13-
14-
class Utils(_Utils): pass
15-
class InboundAdapter(_InboundAdapter): pass
16-
class OutboundAdapter(_OutboundAdapter): pass
17-
class BusinessService(_BusinessService): pass
18-
class BusinessOperation(_BusinessOperation): pass
19-
class BusinessProcess(_BusinessProcess): pass
20-
class DuplexService(_PrivateSessionDuplex): pass
21-
class DuplexOperation(_PrivateSessionDuplex): pass
22-
class DuplexProcess(_PrivateSessionProcess): pass
23-
class Message(_Message): pass
24-
class PickleMessage(_PickleMessage): pass
15+
16+
17+
class Utils(_Utils):
18+
pass
19+
20+
21+
class InboundAdapter(_InboundAdapter):
22+
pass
23+
24+
25+
class OutboundAdapter(_OutboundAdapter):
26+
pass
27+
28+
29+
class BusinessService(_BusinessService):
30+
pass
31+
32+
33+
class BusinessOperation(_BusinessOperation):
34+
pass
35+
36+
37+
class BusinessProcess(_BusinessProcess):
38+
pass
39+
40+
41+
class DuplexService(_PrivateSessionDuplex):
42+
pass
43+
44+
45+
class DuplexOperation(_PrivateSessionDuplex):
46+
pass
47+
48+
49+
class DuplexProcess(_PrivateSessionProcess):
50+
pass
51+
52+
53+
class Message(_Message):
54+
pass
55+
56+
57+
class PickleMessage(_PickleMessage):
58+
pass
59+
60+
2561
class PersistentMessage(_PersistentMessage):
2662
_iop_persistent_message_abstract = True
27-
class Director(_Director): pass
63+
64+
65+
class Director(_Director):
66+
pass

src/iop/__init__.py

Lines changed: 71 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,78 @@
1-
from iop._business_operation import _BusinessOperation
2-
from iop._business_process import _BusinessProcess
3-
from iop._business_service import _BusinessService
4-
from iop._director import _Director
1+
from iop._business_operation import _BusinessOperation
2+
from iop._business_process import _BusinessProcess
3+
from iop._business_service import _BusinessService
4+
from iop._director import _Director
55
from iop._inbound_adapter import _InboundAdapter
6-
from iop._message import _Message, _PickleMessage, _PydanticMessage, _PydanticPickleMessage
6+
from iop._message import (
7+
_Message,
8+
_PickleMessage,
9+
_PydanticMessage,
10+
_PydanticPickleMessage,
11+
)
712
from iop._outbound_adapter import _OutboundAdapter
8-
from iop._persistent_message import Field, Model, _PersistentMessage
13+
from iop._persistent_message import Field as Field
14+
from iop._persistent_message import Model as Model
15+
from iop._persistent_message import _PersistentMessage
916
from iop._private_session_duplex import _PrivateSessionDuplex
1017
from iop._private_session_process import _PrivateSessionProcess
1118
from iop._utils import _Utils
12-
13-
class Utils(_Utils): pass
14-
class InboundAdapter(_InboundAdapter): pass
15-
class OutboundAdapter(_OutboundAdapter): pass
16-
class BusinessService(_BusinessService): pass
17-
class BusinessOperation(_BusinessOperation): pass
18-
class BusinessProcess(_BusinessProcess): pass
19-
class DuplexService(_PrivateSessionDuplex): pass
20-
class DuplexOperation(_PrivateSessionDuplex): pass
21-
class DuplexProcess(_PrivateSessionProcess): pass
22-
class Message(_Message): pass
23-
class PickleMessage(_PickleMessage): pass
24-
class PydanticMessage(_PydanticMessage): pass
25-
class PydanticPickleMessage(_PydanticPickleMessage): pass
19+
20+
21+
class Utils(_Utils):
22+
pass
23+
24+
25+
class InboundAdapter(_InboundAdapter):
26+
pass
27+
28+
29+
class OutboundAdapter(_OutboundAdapter):
30+
pass
31+
32+
33+
class BusinessService(_BusinessService):
34+
pass
35+
36+
37+
class BusinessOperation(_BusinessOperation):
38+
pass
39+
40+
41+
class BusinessProcess(_BusinessProcess):
42+
pass
43+
44+
45+
class DuplexService(_PrivateSessionDuplex):
46+
pass
47+
48+
49+
class DuplexOperation(_PrivateSessionDuplex):
50+
pass
51+
52+
53+
class DuplexProcess(_PrivateSessionProcess):
54+
pass
55+
56+
57+
class Message(_Message):
58+
pass
59+
60+
61+
class PickleMessage(_PickleMessage):
62+
pass
63+
64+
65+
class PydanticMessage(_PydanticMessage):
66+
pass
67+
68+
69+
class PydanticPickleMessage(_PydanticPickleMessage):
70+
pass
71+
72+
2673
class PersistentMessage(_PersistentMessage):
2774
_iop_persistent_message_abstract = True
28-
class Director(_Director): pass
75+
76+
77+
class Director(_Director):
78+
pass

src/iop/__main__.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# main entry is _cli.main()
2-
if __name__ == '__main__':
2+
if __name__ == "__main__":
33
import iop._cli as _cli
4-
_cli.main()
4+
5+
_cli.main()

src/iop/_async_request.py

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,22 @@
55
from ._dispatch import dispatch_deserializer, dispatch_serializer
66
from ._message import _Message as Message
77

8+
89
class AsyncRequest(asyncio.Future):
910
_message_header_id: int = 0
1011
_queue_name: str = ""
1112
_end_time: int = 0
1213
_response: Any = None
1314
_done: bool = False
1415

15-
def __init__(self, target: str, request: Union[Message, Any],
16-
timeout: int = -1, description: Optional[str] = None, host: Optional[Any] = None) -> None:
16+
def __init__(
17+
self,
18+
target: str,
19+
request: Union[Message, Any],
20+
timeout: int = -1,
21+
description: Optional[str] = None,
22+
host: Optional[Any] = None,
23+
) -> None:
1724
super().__init__()
1825
self.target = target
1926
self.request = request
@@ -35,9 +42,15 @@ async def send(self) -> None:
3542

3643
# send request
3744
self._iris_handle.dispatchSendRequestAsyncNG(
38-
self.target, request, self.timeout, self.description,
39-
message_header_id, queue_name, end_time)
40-
45+
self.target,
46+
request,
47+
self.timeout,
48+
self.description,
49+
message_header_id,
50+
queue_name,
51+
end_time,
52+
)
53+
4154
# get byref values
4255
self._message_header_id = message_header_id.value
4356
self._queue_name = queue_name.value
@@ -52,16 +65,22 @@ async def send(self) -> None:
5265
def is_done(self) -> None:
5366
iris = _iris.get_iris()
5467
response = iris.ref()
55-
status = self._iris_handle.dispatchIsRequestDone(self.timeout, self._end_time,
56-
self._queue_name, self._message_header_id,
57-
response)
58-
68+
status = self._iris_handle.dispatchIsRequestDone(
69+
self.timeout,
70+
self._end_time,
71+
self._queue_name,
72+
self._message_header_id,
73+
response,
74+
)
75+
5976
self._response = dispatch_deserializer(response.value)
6077

61-
if status == 2: # message found
78+
if status == 2: # message found
6279
self._done = True
63-
elif status == 1: # message not found
80+
elif status == 1: # message not found
6481
pass
6582
else:
6683
self._done = True
67-
self.set_exception(RuntimeError(iris.system.Status.GetOneStatusText(status)))
84+
self.set_exception(
85+
RuntimeError(iris.system.Status.GetOneStatusText(status))
86+
)

0 commit comments

Comments
 (0)