11from typing import Any , List , Type , TypeVar
22
33from hyperbrowser .display_utils import format_string_key_for_error
4- from hyperbrowser .exceptions import HyperbrowserError
54from hyperbrowser .models .session import SessionRecording
6- from .list_parsing_utils import parse_mapping_list_items
5+ from .list_parsing_utils import parse_mapping_list_items , read_plain_list_items
76from .response_utils import parse_response_model
87
98T = TypeVar ("T" )
@@ -30,19 +29,11 @@ def parse_session_response_model(
3029def parse_session_recordings_response_data (
3130 response_data : Any ,
3231) -> List [SessionRecording ]:
33- if type (response_data ) is not list :
34- raise HyperbrowserError (
35- "Expected session recording response to be a list of objects"
36- )
37- try :
38- recording_items = list (response_data )
39- except HyperbrowserError :
40- raise
41- except Exception as exc :
42- raise HyperbrowserError (
43- "Failed to iterate session recording response list" ,
44- original_error = exc ,
45- ) from exc
32+ recording_items = read_plain_list_items (
33+ response_data ,
34+ expected_list_error = "Expected session recording response to be a list of objects" ,
35+ read_list_error = "Failed to iterate session recording response list" ,
36+ )
4637 return parse_mapping_list_items (
4738 recording_items ,
4839 item_label = "session recording" ,
0 commit comments