From fda18106157ede97aef4117099ff57c3db3b8bb7 Mon Sep 17 00:00:00 2001 From: Ben Darnell Date: Sun, 3 Jun 2018 14:24:02 -0400 Subject: [PATCH] options: Remove dead code, test and lint updates --- tornado/options.py | 29 +++++++++++-------------- tornado/test/options_test.py | 6 ++--- tornado/test/options_test_types_str.cfg | 2 +- 3 files changed, 17 insertions(+), 20 deletions(-) diff --git a/tornado/options.py b/tornado/options.py index ba4c86b44..a269d44eb 100644 --- a/tornado/options.py +++ b/tornado/options.py @@ -367,8 +367,9 @@ class OptionParser(object): if normalized in self._options: option = self._options[normalized] if option.multiple: - if not isinstance(config[name], list): - raise Error("Option %r is required to be a list of %s" % + if not isinstance(config[name], (list, str)): + raise Error("Option %r is required to be a list of %s " + "or a comma-separated string" % (option.name, option.type.__name__)) if type(config[name]) == str and option.type != str: @@ -376,7 +377,6 @@ class OptionParser(object): else: option.set(config[name]) - if final: self.run_parse_callbacks() @@ -500,19 +500,16 @@ class _Option(object): basestring_type: self._parse_string, }.get(self.type, self.type) if self.multiple: - if isinstance(value, list): - self._value = value - else: - self._value = [] - for part in value.split(","): - if issubclass(self.type, numbers.Integral): - # allow ranges of the form X:Y (inclusive at both ends) - lo, _, hi = part.partition(":") - lo = _parse(lo) - hi = _parse(hi) if hi else lo - self._value.extend(range(lo, hi + 1)) - else: - self._value.append(_parse(part)) + self._value = [] + for part in value.split(","): + if issubclass(self.type, numbers.Integral): + # allow ranges of the form X:Y (inclusive at both ends) + lo, _, hi = part.partition(":") + lo = _parse(lo) + hi = _parse(hi) if hi else lo + self._value.extend(range(lo, hi + 1)) + else: + self._value.append(_parse(part)) else: self._value = _parse(value) if self.callback is not None: diff --git a/tornado/test/options_test.py b/tornado/test/options_test.py index 6ada3c26d..9db64be30 100644 --- a/tornado/test/options_test.py +++ b/tornado/test/options_test.py @@ -25,14 +25,14 @@ except ImportError: class Email(object): - def __init__(self, value): + def __init__(self, value): if isinstance(value, str) and '@' in value: self._value = value else: raise ValueError() - @property - def value(self): + @property + def value(self): return self._value diff --git a/tornado/test/options_test_types_str.cfg b/tornado/test/options_test_types_str.cfg index f02873a43..25dfbc2bf 100644 --- a/tornado/test/options_test_types_str.cfg +++ b/tornado/test/options_test_types_str.cfg @@ -5,4 +5,4 @@ float = 1.5 datetime = '2013-04-28 05:16' timedelta = '45s' email = 'tornado@web.com' -list_of_int = [1, 2, 3] +list_of_int = '1,2,3' -- 2.47.2