Skip to content

Commit f516180

Browse files
Copilotmykaul
andcommitted
Remove duplicate try-except blocks (DRY principle)
Per review feedback, eliminated code duplication: - Combined two separate try-except blocks into one - Single exception handler now checks column_encryption_policy to decide path - Maintains same error reporting behavior - Follows Python's DRY (Don't Repeat Yourself) principle This makes the code cleaner and more maintainable. Co-authored-by: mykaul <[email protected]>
1 parent 8910184 commit f516180

File tree

1 file changed

+15
-23
lines changed

1 file changed

+15
-23
lines changed

cassandra/protocol.py

Lines changed: 15 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -732,36 +732,28 @@ def decode_val(val, col_md, col_desc):
732732

733733
def decode_row(row):
734734
return tuple(decode_val(val, col_md, col_desc) for val, col_md, col_desc in zip(row, column_metadata, col_descs))
735-
736-
try:
737-
self.parsed_rows = [decode_row(row) for row in rows]
738-
except Exception:
739-
for row in rows:
740-
for val, col_md, col_desc in zip(row, column_metadata, col_descs):
741-
try:
742-
decode_val(val, col_md, col_desc)
743-
except Exception as e:
744-
raise DriverException('Failed decoding result column "%s" of type %s: %s' % (col_md[2],
745-
col_md[3].cql_parameterized_type(),
746-
str(e)))
747735
else:
748736
# Simple path without encryption - just decode raw bytes directly
749737
def decode_row(row):
750738
return tuple(col_md[3].from_binary(val, protocol_version) for val, col_md in zip(row, column_metadata))
751739

752-
try:
753-
self.parsed_rows = [decode_row(row) for row in rows]
754-
except Exception:
755-
# Create col_descs only if needed for error reporting
740+
try:
741+
self.parsed_rows = [decode_row(row) for row in rows]
742+
except Exception:
743+
# Create col_descs only if needed for error reporting
744+
if not column_encryption_policy:
756745
col_descs = [ColDesc(md[0], md[1], md[2]) for md in column_metadata]
757-
for row in rows:
758-
for val, col_md, col_desc in zip(row, column_metadata, col_descs):
759-
try:
746+
for row in rows:
747+
for val, col_md, col_desc in zip(row, column_metadata, col_descs):
748+
try:
749+
if column_encryption_policy:
750+
decode_val(val, col_md, col_desc)
751+
else:
760752
col_md[3].from_binary(val, protocol_version)
761-
except Exception as e:
762-
raise DriverException('Failed decoding result column "%s" of type %s: %s' % (col_md[2],
763-
col_md[3].cql_parameterized_type(),
764-
str(e)))
753+
except Exception as e:
754+
raise DriverException('Failed decoding result column "%s" of type %s: %s' % (col_md[2],
755+
col_md[3].cql_parameterized_type(),
756+
str(e)))
765757

766758
def recv_results_prepared(self, f, protocol_version, user_type_map):
767759
self.query_id = read_binary_string(f)

0 commit comments

Comments
 (0)