2Validation-specific exceptions for PyHelios.
4Provides ValidationError that extends HeliosInvalidArgumentError with
5enhanced error messaging and context information.
10 Validation-specific error with standardized messaging.
12 Raised when parameter validation fails, with clear error messages that include:
13 - Parameter name and expected type/range
14 - Actual value provided and its type
15 - Actionable solution or correct usage example
17 Following PyHelios's fail-fast philosophy, validation errors are raised
18 immediately at API boundaries before reaching C++ code.
21 def __init__(self, message: str, param_name: str =
None, function_name: str =
None,
22 expected_type: str =
None, actual_value=
None):
24 Initialize validation error with enhanced context.
27 message: Primary error message
28 param_name: Name of the parameter that failed validation
29 function_name: Name of the function where validation failed
30 expected_type: Expected type or range description
31 actual_value: The actual value that failed validation
34 enhanced_message = message
37 enhanced_message = f
"{function_name}(): {enhanced_message}"
39 if param_name
and expected_type
and actual_value
is not None:
40 enhanced_message += f
" (Parameter '{param_name}' expected {expected_type}, got {actual_value} of type {type(actual_value).__name__})"
42 enhanced_message += f
" (Parameter: '{param_name}')"
54 function_name: str =
None, expected_type: str =
None,
55 actual_value=
None, suggestion: str =
None) -> ValidationError:
57 Factory function for creating ValidationError with consistent formatting.
60 message: Core error message
61 param_name: Parameter name that failed
62 function_name: Function where validation failed
63 expected_type: Description of expected type/range
64 actual_value: Actual value provided
65 suggestion: Helpful suggestion for fixing the error
68 ValidationError with enhanced message
70 full_message = message
72 full_message += f
" {suggestion}"
76 param_name=param_name,
77 function_name=function_name,
78 expected_type=expected_type,
79 actual_value=actual_value
Validation-specific exceptions for PyHelios.
__init__(self, str message, str param_name=None, str function_name=None, str expected_type=None, actual_value=None)
Initialize validation error with enhanced context.
ValidationError create_validation_error(str message, str param_name=None, str function_name=None, str expected_type=None, actual_value=None, str suggestion=None)
Factory function for creating ValidationError with consistent formatting.