Skip to content

Commit 3986974

Browse files
committed
comment - replace InvalidEncoding with UnicodeDecodeError
1 parent ec6673a commit 3986974

File tree

3 files changed

+10
-18
lines changed

3 files changed

+10
-18
lines changed

recordprocessor/src/batch_processor.py

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
from send_to_kinesis import send_to_kinesis
99
from clients import logger
1010
from file_level_validation import file_level_validation
11-
from errors import NoOperationPermissions, InvalidHeaders, InvalidEncoding
11+
from errors import NoOperationPermissions, InvalidHeaders
1212
from utils_for_recordprocessor import get_csv_content_dict_reader
1313
from typing import Optional
1414

@@ -43,7 +43,7 @@ def process_csv_to_fhir(incoming_message_body: dict) -> int:
4343
created_at_formatted_string, csv_reader, target_disease)
4444

4545
if err:
46-
if isinstance(err, InvalidEncoding):
46+
if isinstance(err, UnicodeDecodeError):
4747
""" resolves encoding issue VED-754 """
4848
logger.warning(f"Encoding Error: {err}.")
4949
new_encoder = "cp1252"
@@ -95,13 +95,10 @@ def process_rows(file_id, vaccine, supplier, file_key, allowed_operations, creat
9595
send_to_kinesis(supplier, outgoing_message_body, vaccine)
9696
total_rows_processed_count += 1
9797

98-
except Exception as error: # pylint: disable=broad-exception-caught
99-
# if error reason is 'invalid continuation byte', then it's a decode error
98+
except UnicodeDecodeError as error: # pylint: disable=broad-exception-caught
10099
logger.error("Error processing row %s: %s", row_count, error)
101-
if hasattr(error, 'reason') and error.reason == "invalid continuation byte":
102-
return total_rows_processed_count, InvalidEncoding("Invalid continuation byte")
103-
else:
104-
raise error
100+
return total_rows_processed_count, error
101+
105102
return total_rows_processed_count, None
106103

107104

recordprocessor/src/errors.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,5 @@ class InvalidHeaders(Exception):
99
"""A custom exception for when the file headers are invalid."""
1010

1111

12-
class InvalidEncoding(Exception):
13-
"""A custom exception for when the file encoding is invalid."""
14-
15-
1612
class UnhandledAuditTableError(Exception):
1713
"""A custom exception for when an unexpected error occurs whilst adding the file to the audit table."""

recordprocessor/src/file_level_validation.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from clients import logger, s3_client
66
from make_and_upload_ack_file import make_and_upload_ack_file
77
from utils_for_recordprocessor import get_csv_content_dict_reader, invoke_filename_lambda
8-
from errors import InvalidHeaders, NoOperationPermissions, InvalidEncoding
8+
from errors import InvalidHeaders, NoOperationPermissions
99
from logging_decorator import file_level_validation_logging_decorator
1010
from audit_table import change_audit_table_status_to_processed, get_next_queued_file_details
1111
from constants import SOURCE_BUCKET_NAME, EXPECTED_CSV_HEADERS, permission_to_operation_map, Permission
@@ -83,11 +83,10 @@ def file_level_validation(incoming_message_body: dict) -> dict:
8383
csv_reader = get_csv_content_dict_reader(file_key, encoder=encoder)
8484
validate_content_headers(csv_reader)
8585
except UnicodeDecodeError as e:
86-
if hasattr(e, 'reason') and e.reason == "invalid continuation byte" and encoder == "utf-8":
87-
logger.warning("Invalid Encoding detected: %s", e)
88-
# retry with cp1252 encoding
89-
csv_reader = get_csv_content_dict_reader(file_key, encoder="cp1252")
90-
validate_content_headers(csv_reader)
86+
logger.warning("Invalid Encoding detected: %s", e)
87+
# retry with cp1252 encoding
88+
csv_reader = get_csv_content_dict_reader(file_key, encoder="cp1252")
89+
validate_content_headers(csv_reader)
9190

9291
# Validate has permission to perform at least one of the requested actions
9392
allowed_operations_set = get_permitted_operations(supplier, vaccine, permission)

0 commit comments

Comments
 (0)