Skip to content

Commit 298a633

Browse files
Merge pull request #65 from splunk-soar-connectors/python-3.13-fixes
chore: resolve issues related to Python 3.13 upgrade
2 parents 1c01826 + 401ce5b commit 298a633

File tree

3 files changed

+26
-23
lines changed

3 files changed

+26
-23
lines changed

office365_view.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,8 @@ def display_view(provides, all_app_runs, context):
8989
continue
9090
results.append(ctx_result)
9191

92+
return_page = None
93+
9294
if provides == "list events":
9395
return_page = "office365_list_events.html"
9496

process_email.py

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -630,12 +630,12 @@ def _handle_attachment(self, part, tmp_dir, file_name, file_path):
630630

631631
part_base64_encoded = part.get_payload()
632632

633-
headers = self._get_email_headers_from_part(part)
633+
email_headers = self._get_email_headers_from_part(part)
634634

635635
attach_meta_info = dict()
636636

637-
if headers:
638-
attach_meta_info = {"headers": dict(headers)}
637+
if email_headers:
638+
attach_meta_info = {"headers": dict(email_headers)}
639639

640640
for curr_attach in self._attachments_from_msgraph:
641641
if curr_attach.get("should_ignore", False):
@@ -726,21 +726,21 @@ def _handle_part(self, part, part_index, tmp_dir, extract_attach, parsed_mail, c
726726

727727
return phantom.APP_SUCCESS
728728

729-
def _update_headers(self, headers):
729+
def _update_headers(self, headers_to_update):
730730
# compare the various values of the passed header (param: headers)
731731
# to the header that the class got self._headers_from_ews
732732
if not self._headers_from_ews:
733733
return phantom.APP_SUCCESS
734734

735-
if not headers:
735+
if not headers_to_update:
736736
return phantom.APP_SUCCESS
737737

738-
headers_ci = CaseInsensitiveDict(headers)
738+
headers_ci = CaseInsensitiveDict(headers_to_update)
739739

740740
for curr_header_lower in self._headers_from_ews:
741741
if headers_ci.get("message-id", "default_value1").strip() == curr_header_lower.get("message-id", "default_value2").strip():
742742
# the headers match with the one that we got from the ews API, so update it
743-
headers.update(curr_header_lower)
743+
headers_to_update.update(curr_header_lower)
744744

745745
return phantom.APP_SUCCESS
746746

@@ -758,9 +758,9 @@ def _get_email_headers_from_part(self, part, charset=None):
758758
return {}
759759

760760
# Convert the header tuple into a dictionary
761-
headers = CaseInsensitiveDict()
761+
email_headers_dict = CaseInsensitiveDict()
762762
try:
763-
[headers.update({x[0]: self._get_string(x[1], charset)}) for x in email_headers]
763+
[email_headers_dict.update({x[0]: self._get_string(x[1], charset)}) for x in email_headers]
764764
except Exception as e:
765765
error_msg = _get_error_msg_from_exception(e)
766766
err = "Error occurred while converting the header tuple into a dictionary"
@@ -776,48 +776,48 @@ def _get_email_headers_from_part(self, part, charset=None):
776776
self._debug_print(f"{err}. {error_msg}")
777777

778778
if received_headers:
779-
headers["Received"] = received_headers
779+
email_headers_dict["Received"] = received_headers
780780

781781
# handle the subject string, if required add a new key
782-
subject = headers.get("Subject")
782+
subject = email_headers_dict.get("Subject")
783783
if subject:
784784
if isinstance(subject, str):
785-
headers["decodedSubject"] = self._decode_uni_string(subject, subject)
785+
email_headers_dict["decodedSubject"] = self._decode_uni_string(subject, subject)
786786

787-
return headers
787+
return email_headers_dict
788788

789789
def _parse_email_headers(self, parsed_mail, part, charset=None, add_email_id=None):
790790
email_header_artifacts = parsed_mail[PROC_EMAIL_JSON_EMAIL_HEADERS]
791791

792-
headers = self._get_email_headers_from_part(part, charset)
792+
email_headers = self._get_email_headers_from_part(part, charset)
793793

794-
if not headers:
794+
if not email_headers:
795795
return 0
796796

797797
# Parse email keys first
798798
cef_artifact = {}
799799
cef_types = {}
800800

801-
if headers.get("From"):
802-
emails = headers["From"]
801+
if email_headers.get("From"):
802+
emails = email_headers["From"]
803803
if emails:
804804
cef_artifact.update({"fromEmail": emails})
805805

806-
if headers.get("To"):
807-
emails = headers["To"]
806+
if email_headers.get("To"):
807+
emails = email_headers["To"]
808808
if emails:
809809
cef_artifact.update({"toEmail": emails})
810810

811811
# if the header did not contain any email addresses then ignore this artifact
812-
message_id = headers.get("message-id")
812+
message_id = email_headers.get("message-id")
813813
if not cef_artifact and message_id is None:
814814
return 0
815815

816816
cef_types.update({"fromEmail": ["email"], "toEmail": ["email"]})
817817

818-
if headers:
819-
self._update_headers(headers)
820-
cef_artifact["emailHeaders"] = dict(headers)
818+
if email_headers:
819+
self._update_headers(email_headers)
820+
cef_artifact["emailHeaders"] = dict(email_headers)
821821

822822
for curr_key in list(cef_artifact["emailHeaders"].keys()):
823823
if curr_key.lower().startswith("body"):

release_notes/unreleased.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
**Unreleased**
2+
* Resolved app issues related to Python 3.13 upgrade

0 commit comments

Comments
 (0)