diff --git a/sanic/config.py b/sanic/config.py index a7183d77..e6503ac5 100644 --- a/sanic/config.py +++ b/sanic/config.py @@ -1,8 +1,6 @@ import os import types -from distutils.util import strtobool - from sanic.exceptions import PyFileError @@ -127,6 +125,23 @@ class Config(dict): self[config_key] = float(v) except ValueError: try: - self[config_key] = bool(strtobool(v)) + self[config_key] = strtobool(v) except ValueError: self[config_key] = v + + +def strtobool(val): + """ + This function was borrowed from distutils.utils. While distutils + is part of stdlib, it feels odd to use distutils in main application code. + + The function was modified to walk its talk and actually return bool + and not int. + """ + val = val.lower() + if val in ("y", "yes", "t", "true", "on", "1"): + return True + elif val in ("n", "no", "f", "false", "off", "0"): + return False + else: + raise ValueError("invalid truth value %r" % (val,))