@@ -29,6 +29,15 @@ class _NonRetryablePollingError(HyperbrowserError):
2929 pass
3030
3131
32+ def _coerce_operation_name_component (value : object , * , fallback : str ) -> str :
33+ if isinstance (value , str ):
34+ return value
35+ try :
36+ return str (value )
37+ except Exception :
38+ return fallback
39+
40+
3241def _normalize_non_negative_real (value : float , * , field_name : str ) -> float :
3342 is_supported_numeric_type = isinstance (value , Real ) or isinstance (value , Decimal )
3443 if isinstance (value , bool ) or not is_supported_numeric_type :
@@ -68,24 +77,31 @@ def _validate_operation_name(operation_name: str) -> None:
6877
6978
7079def build_operation_name (prefix : str , identifier : str ) -> str :
71- normalized_identifier = identifier .strip ()
80+ normalized_prefix = _coerce_operation_name_component (prefix , fallback = "" )
81+ raw_identifier = _coerce_operation_name_component (identifier , fallback = "unknown" )
82+ normalized_identifier = raw_identifier .strip ()
7283 if not normalized_identifier :
7384 normalized_identifier = "unknown"
7485 normalized_identifier = "" .join (
7586 "?" if ord (character ) < 32 or ord (character ) == 127 else character
7687 for character in normalized_identifier
7788 )
7889
79- operation_name = f"{ prefix } { normalized_identifier } "
90+ operation_name = f"{ normalized_prefix } { normalized_identifier } "
8091 if len (operation_name ) <= _MAX_OPERATION_NAME_LENGTH :
8192 return operation_name
8293 available_identifier_length = (
83- _MAX_OPERATION_NAME_LENGTH - len (prefix ) - len (_TRUNCATED_OPERATION_NAME_SUFFIX )
94+ _MAX_OPERATION_NAME_LENGTH
95+ - len (normalized_prefix )
96+ - len (_TRUNCATED_OPERATION_NAME_SUFFIX )
8497 )
8598 if available_identifier_length > 0 :
8699 truncated_identifier = normalized_identifier [:available_identifier_length ]
87- return f"{ prefix } { truncated_identifier } { _TRUNCATED_OPERATION_NAME_SUFFIX } "
88- return prefix [:_MAX_OPERATION_NAME_LENGTH ]
100+ return (
101+ f"{ normalized_prefix } { truncated_identifier } "
102+ f"{ _TRUNCATED_OPERATION_NAME_SUFFIX } "
103+ )
104+ return normalized_prefix [:_MAX_OPERATION_NAME_LENGTH ]
89105
90106
91107def build_fetch_operation_name (operation_name : str ) -> str :
0 commit comments