utils.parse.parse_bool

utils.parse.parse_bool(value)

Parse case-insensitive boolean strings for CLI arguments.

Parameters

Name Type Description Default
value str String representation of a boolean value. required

Returns

Name Type Description
bool bool True for {‘true’, ‘t’, ‘yes’, ‘1’}, False for {‘false’, ‘f’, ‘no’, ‘0’}.

Raises

Name Type Description
argparse.ArgumentTypeError If value cannot be parsed as boolean.

Examples

import argparse

from spotforecast2_safe.utils.parse import parse_bool

# True values (case-insensitive, whitespace-tolerant)
assert parse_bool("true") is True
assert parse_bool("TRUE") is True
assert parse_bool("t") is True
assert parse_bool("yes") is True
assert parse_bool("1") is True
assert parse_bool("  true  ") is True

# False values
assert parse_bool("false") is False
assert parse_bool("FALSE") is False
assert parse_bool("f") is False
assert parse_bool("no") is False
assert parse_bool("0") is False
assert parse_bool("  false  ") is False

print("All true/false/whitespace cases pass.")
All true/false/whitespace cases pass.
import argparse

from spotforecast2_safe.utils.parse import parse_bool

# Invalid values raise ArgumentTypeError
try:
    parse_bool("invalid")
except argparse.ArgumentTypeError:
    print("ArgumentTypeError raised as expected.")

# Use as type= in an ArgumentParser
parser = argparse.ArgumentParser()
_ = parser.add_argument("--enable", type=parse_bool, default=True)
args = parser.parse_args(["--enable", "yes"])
assert args.enable is True
print(f"Parsed --enable yes → {args.enable}")
ArgumentTypeError raised as expected.
Parsed --enable yes → True