Primitives
provide.foundation.parsers.primitives
¶
TODO: Add module docstring.
Functions¶
parse_bool
¶
Parse a boolean value from string or other types.
Accepts: true/false, yes/no, 1/0, on/off (case-insensitive)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
Any
|
Value to parse as boolean |
required |
strict
|
bool
|
If True, only accept bool or string types (raise TypeError otherwise) |
False
|
Returns:
| Type | Description |
|---|---|
bool
|
Boolean value |
Raises:
| Type | Description |
|---|---|
TypeError
|
If strict=True and value is not bool or string, or if value is not bool/str |
ValueError
|
If value cannot be parsed as boolean |
Source code in provide/foundation/parsers/primitives.py
parse_bool_extended
¶
Parse boolean from string with lenient/forgiving interpretation.
This is the lenient boolean parser - designed for user-facing configuration where we want to be forgiving of various inputs. Any unrecognized string defaults to False rather than raising an error.
Use Cases: - Environment variables set by end users - Feature flags that should default to "off" if misconfigured - Optional telemetry settings where failure should not break the system
Recognized True Values: true, yes, 1, on (case-insensitive) Recognized False Values: false, no, 0, off (case-insensitive) Default Behavior: Any other string → False (no error)
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
str | bool
|
Boolean string representation or actual bool |
required |
Returns:
| Type | Description |
|---|---|
bool
|
Boolean value (defaults to False for unrecognized strings) |
Examples:
>>> parse_bool_extended("yes") # True
>>> parse_bool_extended("FALSE") # False
>>> parse_bool_extended("invalid") # False (no error)
>>> parse_bool_extended(True) # True
Source code in provide/foundation/parsers/primitives.py
parse_bool_strict
¶
Parse boolean from string with strict validation and clear error messages.
This is the strict boolean parser - designed for internal APIs and critical configuration where invalid values should cause immediate failure with helpful error messages.
Use Cases: - Internal API parameters where precision matters - Critical system configurations where misconfiguration is dangerous - Programmatic configuration where clear validation errors help developers
Recognized True Values: true, yes, 1, on, enabled (case-insensitive), 1.0 Recognized False Values: false, no, 0, off, disabled (case-insensitive), 0.0 Error Behavior: Raises ValueError with helpful message for invalid values
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
str | bool | int | float
|
Boolean value as string, bool, int, or float |
required |
Returns:
| Type | Description |
|---|---|
bool
|
Boolean value (never defaults - raises on invalid input) |
Raises:
| Type | Description |
|---|---|
TypeError
|
If value is not a string, bool, int, or float |
ValueError
|
If value cannot be parsed as boolean |
Examples:
>>> parse_bool_strict("yes") # True
>>> parse_bool_strict("FALSE") # False
>>> parse_bool_strict(1) # True
>>> parse_bool_strict(0.0) # False
>>> parse_bool_strict("invalid") # ValueError with helpful message
>>> parse_bool_strict(42) # ValueError - only 0/1 valid for numbers
Source code in provide/foundation/parsers/primitives.py
parse_float_with_validation
¶
parse_float_with_validation(
value: str,
min_val: float | None = None,
max_val: float | None = None,
) -> float
Parse float with optional range validation.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
str
|
String representation of float |
required |
min_val
|
float | None
|
Minimum allowed value (inclusive) |
None
|
max_val
|
float | None
|
Maximum allowed value (inclusive) |
None
|
Returns:
| Type | Description |
|---|---|
float
|
Parsed float value |
Raises:
| Type | Description |
|---|---|
ValueError
|
If value is not a valid float or out of range |
Source code in provide/foundation/parsers/primitives.py
parse_json_dict
¶
Parse JSON string into dictionary.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
str
|
JSON string |
required |
Returns:
| Type | Description |
|---|---|
dict[str, Any]
|
Parsed dictionary |
Raises:
| Type | Description |
|---|---|
ValueError
|
If JSON is invalid |
Source code in provide/foundation/parsers/primitives.py
parse_json_list
¶
Parse JSON string into list.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
str
|
JSON string |
required |
Returns:
| Type | Description |
|---|---|
list[Any]
|
Parsed list |
Raises:
| Type | Description |
|---|---|
ValueError
|
If JSON is invalid |
Source code in provide/foundation/parsers/primitives.py
parse_sample_rate
¶
Parse sampling rate (0.0 to 1.0).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
value
|
str
|
String representation of sampling rate |
required |
Returns:
| Type | Description |
|---|---|
float
|
Float between 0.0 and 1.0 |
Raises:
| Type | Description |
|---|---|
ValueError
|
If value is not valid or out of range |