parameter_validation
Parameter validation decorators and utilities.
This module provides validation decorators and functions for checking function arguments and parameters.
Example
@validate_positive("half_life_days", "half_life_logs") def weighted_mean(self, half_life_days=7.0, half_life_logs=10): ...
Classes¶
Functions¶
require_in_range ¶
require_in_range(value: float | int, name: str, min_value: float | None = None, max_value: float | None = None) -> float | int
Validate that a value is within a range.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
float | int
|
The value to check (must not be None). |
required |
name
|
str
|
Parameter name for error messages. |
required |
min_value
|
float | None
|
Minimum allowed value (inclusive). |
None
|
max_value
|
float | None
|
Maximum allowed value (inclusive). |
None
|
Returns:
| Type | Description |
|---|---|
float | int
|
The value if valid. |
Raises:
| Type | Description |
|---|---|
InvalidParameterError
|
If value is None or outside the range. |
Source code in snakesee/parameter_validation.py
require_non_negative ¶
Validate that a value is non-negative.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
float | int
|
The value to check (must not be None). |
required |
name
|
str
|
Parameter name for error messages. |
required |
Returns:
| Type | Description |
|---|---|
float | int
|
The value if valid. |
Raises:
| Type | Description |
|---|---|
InvalidParameterError
|
If value is None or negative. |
Source code in snakesee/parameter_validation.py
require_not_empty ¶
Validate that a sequence is not empty.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
Sequence[Any]
|
The sequence to check (must not be None). |
required |
name
|
str
|
Parameter name for error messages. |
required |
Returns:
| Type | Description |
|---|---|
Sequence[Any]
|
The value if valid. |
Raises:
| Type | Description |
|---|---|
InvalidParameterError
|
If value is None or sequence is empty. |
Source code in snakesee/parameter_validation.py
require_positive ¶
Validate that a value is positive.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
float | int
|
The value to check (must not be None). |
required |
name
|
str
|
Parameter name for error messages. |
required |
Returns:
| Type | Description |
|---|---|
float | int
|
The value if valid. |
Raises:
| Type | Description |
|---|---|
InvalidParameterError
|
If value is None or not positive. |
Source code in snakesee/parameter_validation.py
validate_in_range ¶
validate_in_range(param_name: str, min_value: float | None = None, max_value: float | None = None) -> Callable[[Callable[P, R]], Callable[P, R]]
Decorator to validate that a parameter is within a specified range.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
param_name
|
str
|
Name of the parameter to validate. |
required |
min_value
|
float | None
|
Minimum allowed value (inclusive). None means no minimum. |
None
|
max_value
|
float | None
|
Maximum allowed value (inclusive). None means no maximum. |
None
|
Returns:
| Type | Description |
|---|---|
Callable[[Callable[P, R]], Callable[P, R]]
|
Decorator that validates the specified parameter. |
Raises:
| Type | Description |
|---|---|
InvalidParameterError
|
If the parameter is outside the range. |
Note
None values are allowed and bypass validation, making this suitable for optional parameters with None defaults.
Example
@validate_in_range("confidence", min_value=0.0, max_value=1.0) def set_confidence(self, confidence): ...
Source code in snakesee/parameter_validation.py
validate_non_negative ¶
Decorator to validate that specified parameters are non-negative.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
*param_names
|
str
|
Names of parameters that must be non-negative (>= 0). |
()
|
Returns:
| Type | Description |
|---|---|
Callable[[Callable[P, R]], Callable[P, R]]
|
Decorator that validates the specified parameters. |
Raises:
| Type | Description |
|---|---|
InvalidParameterError
|
If any specified parameter is negative. |
Note
None values are allowed and bypass validation, making this suitable for optional parameters with None defaults.
Example
@validate_non_negative("timeout") def wait_for_job(self, timeout=30.0): ...
Source code in snakesee/parameter_validation.py
validate_not_empty ¶
Decorator to validate that specified sequence parameters are not empty.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
*param_names
|
str
|
Names of parameters that must not be empty. |
()
|
Returns:
| Type | Description |
|---|---|
Callable[[Callable[P, R]], Callable[P, R]]
|
Decorator that validates the specified parameters. |
Raises:
| Type | Description |
|---|---|
InvalidParameterError
|
If any specified parameter is empty. |
Note
None values are allowed and bypass validation, making this suitable for optional parameters with None defaults.
Example
@validate_not_empty("durations") def calculate_stats(self, durations): ...
Source code in snakesee/parameter_validation.py
validate_positive ¶
Decorator to validate that specified parameters are positive.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
*param_names
|
str
|
Names of parameters that must be positive (> 0). |
()
|
Returns:
| Type | Description |
|---|---|
Callable[[Callable[P, R]], Callable[P, R]]
|
Decorator that validates the specified parameters. |
Raises:
| Type | Description |
|---|---|
InvalidParameterError
|
If any specified parameter is not positive. |
Note
None values are allowed and bypass validation, making this suitable for optional parameters with None defaults.
Example
@validate_positive("half_life_days", "half_life_logs") def weighted_mean(self, half_life_days=7.0, half_life_logs=10): ...