Drop dependency on disutils (#1544)

* Drop dependency on distutils

While distutils is part of stdlib, it feels odd to use distutils in main application code.

I personally use a (lean)[https://hub.docker.com/r/haizaar/python-minimal/tags] Python distribution for running my applications that does not include distutils.

* Flake8 fixes

* "black" fixes

* strtobool should actually return bool
This commit is contained in:
Zaar Hai 2019-04-02 23:22:26 +10:00 committed by Stephen Sadowski
parent 3bedb223fc
commit 0b4769289a

View File

@ -1,8 +1,6 @@
import os import os
import types import types
from distutils.util import strtobool
from sanic.exceptions import PyFileError from sanic.exceptions import PyFileError
@ -127,6 +125,23 @@ class Config(dict):
self[config_key] = float(v) self[config_key] = float(v)
except ValueError: except ValueError:
try: try:
self[config_key] = bool(strtobool(v)) self[config_key] = strtobool(v)
except ValueError: except ValueError:
self[config_key] = v 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,))