Skip to content

Commit b255a55

Browse files
authored
Merge pull request #101 from resilient-tech/fix-key-error-in-dict
fix: resolve key error by initializing target dictionary with _dict and converting response in frappe dict
2 parents a7b596d + 1698186 commit b255a55

2 files changed

Lines changed: 9 additions & 4 deletions

File tree

transaction_parser/transaction_parser/ai_integration/parser.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import json
12
import re
23
from typing import Any
34

@@ -97,7 +98,9 @@ def send_message(self, messages: tuple, file_doc_name: str | None = None) -> dic
9798
response = self._make_api_call(request_params)
9899
log.request_id = response.id
99100

100-
response_dict = response.to_dict()
101+
response_dict = json.loads(
102+
response.model_dump_json(), object_hook=frappe._dict
103+
)
101104
log.output = response_dict
102105

103106
processed_response = self._process_response(response_dict)

transaction_parser/transaction_parser/utils/response_merger.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from dataclasses import dataclass
22
from typing import Any
33

4-
from frappe import _dict
4+
import frappe
55

66

77
@dataclass
@@ -89,7 +89,9 @@ def __init__(
8989
schema: dict,
9090
match_keys: dict[str, list[str]] | None = None,
9191
):
92-
self.response = _dict(response) if isinstance(response, dict) else response
92+
self.response = (
93+
frappe._dict(response) if isinstance(response, dict) else response
94+
)
9395
self.schema = schema
9496
self.match_keys = match_keys or {}
9597

@@ -168,7 +170,7 @@ def _merge_object(
168170
source_value: dict,
169171
) -> None:
170172
if key not in target or target[key] is None:
171-
target[key] = {}
173+
target[key] = frappe._dict()
172174

173175
self._merge_fields(field_type.children, target[key], source_value)
174176

0 commit comments

Comments
 (0)