forked from pytorch/pytorch
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstrtobool.py
More file actions
22 lines (16 loc) · 712 Bytes
/
strtobool.py
File metadata and controls
22 lines (16 loc) · 712 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
"""Local replacement for ``distutils.util.strtobool`` (removed in Python 3.12)."""
from __future__ import annotations
_TRUE_VALUES = frozenset({"y", "yes", "t", "true", "on", "1"})
_FALSE_VALUES = frozenset({"n", "no", "f", "false", "off", "0"})
def strtobool(val: str) -> bool:
"""Convert a string representation of truth to true (1) or false (0).
True values are "y", "yes", "t", "true", "on", and "1"; false values
are "n", "no", "f", "false", "off", and "0". Raises ValueError if
"val" is anything else.
"""
val = val.lower()
if val in _TRUE_VALUES:
return True
if val in _FALSE_VALUES:
return False
raise ValueError(f"invalid truth value {val!r}")