Skip to content

Commit 44aaa06

Browse files
fix-datasegment.field will return the result in underlying type
1 parent 9a64f08 commit 44aaa06

3 files changed

Lines changed: 11 additions & 2 deletions

File tree

src/nasdaq_protocols/fix/core.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,8 @@ def __getitem__(self, key: str | int):
234234
return self.__dict__[key]
235235

236236
try:
237-
return self.values[key]
237+
field_value = self.values[key]
238+
return field_value.value if isinstance(field_value, Field) else field_value
238239
except KeyError:
239240
field = self.IndexedEntries[key]
240241
return field.default_value() if issubclass(field, Field) else None

src/nasdaq_protocols/fix/session.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ async def send_heartbeat(self):
9494

9595
def _initialize_session(self, logon_msg):
9696
self.session_id.username = logon_msg.Username
97-
self.sequence = count(logon_msg.Header.MsgSeqNum.value)
97+
self.sequence = count(logon_msg.Header.MsgSeqNum)
9898
self.sender_comp_id = logon_msg.Header.SenderCompID
9999
self.sender_sub_id = logon_msg.Header.SenderSubID
100100
self.target_comp_id = logon_msg.Header.TargetCompID

tests/test_fix_core.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -550,6 +550,14 @@ def test__getattr__message__able_to_resolve_segment_fields():
550550
assert message.GroupContainer_2 is None
551551

552552

553+
def test__getattr__message__field_is_decayed_to_its_value():
554+
message = Message_1()
555+
message.Field_1_Int = 10
556+
557+
assert message.Field_1_Int == 10
558+
assert isinstance(message.Field_1_Int, int)
559+
560+
553561
def test__getattr__message__fall_back_to_object_attributes_on_non_segment_fields():
554562
message = Message_1()
555563

0 commit comments

Comments
 (0)