Skip to content

Instantly share code, notes, and snippets.

@hashar
Last active April 29, 2025 13:32
Show Gist options
  • Save hashar/8c08622dae4edfb8c07fb2c7d380f13f to your computer and use it in GitHub Desktop.
Save hashar/8c08622dae4edfb8c07fb2c7d380f13f to your computer and use it in GitHub Desktop.
distutils.strtobool
# distutils has been removed in Python 3.12
def strtobool (val):
"""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 ('y', 'yes', 't', 'true', 'on', '1'):
return 1
elif val in ('n', 'no', 'f', 'false', 'off', '0'):
return 0
else:
raise ValueError("invalid truth value %r" % (val,))
def test_strtobool(self):
yes = ('y', 'Y', 'yes', 'True', 't', 'true', 'True', 'On', 'on', '1')
no = ('n', 'no', 'f', 'false', 'off', '0', 'Off', 'No', 'N')
for y in yes:
self.assertTrue(strtobool(y))
for n in no:
self.assertFalse(strtobool(n))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment