mirror of
https://github.com/PyCQA/flake8.git
synced 2026-03-31 11:16:54 +00:00
Merge branch 'GeonU/flake8-bug-setuptools-options'
This commit is contained in:
commit
ac87e2d71e
3 changed files with 98 additions and 12 deletions
|
|
@ -6,7 +6,7 @@ import sys
|
|||
import setuptools
|
||||
|
||||
from flake8.engine import get_parser, get_style_guide
|
||||
from flake8.util import is_flag, flag_on
|
||||
from flake8.util import option_normalizer
|
||||
|
||||
if sys.platform.startswith('win'):
|
||||
DEFAULT_CONFIG = os.path.expanduser(r'~\.flake8')
|
||||
|
|
@ -104,8 +104,7 @@ class Flake8Command(setuptools.Command):
|
|||
value = getattr(self, option_name)
|
||||
if value is None:
|
||||
continue
|
||||
if is_flag(value):
|
||||
value = flag_on(value)
|
||||
value = option_normalizer(value)
|
||||
# Check if there's any values that need to be fixed.
|
||||
if option_name == "include" and isinstance(value, str):
|
||||
value = re.findall('[^,;\s]+', value)
|
||||
|
|
|
|||
86
flake8/tests/test_util.py
Normal file
86
flake8/tests/test_util.py
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
import unittest
|
||||
|
||||
from flake8.util import option_normalizer
|
||||
|
||||
|
||||
class TestOptionSerializer(unittest.TestCase):
|
||||
|
||||
def test_1_is_true(self):
|
||||
option = option_normalizer('1')
|
||||
self.assertTrue(option)
|
||||
|
||||
def test_T_is_true(self):
|
||||
option = option_normalizer('T')
|
||||
self.assertTrue(option)
|
||||
|
||||
def test_TRUE_is_true(self):
|
||||
option = option_normalizer('TRUE')
|
||||
self.assertTrue(option, True)
|
||||
|
||||
def test_ON_is_true(self):
|
||||
option = option_normalizer('ON')
|
||||
self.assertTrue(option)
|
||||
|
||||
def test_t_is_true(self):
|
||||
option = option_normalizer('t')
|
||||
self.assertTrue(option)
|
||||
|
||||
def test_true_is_true(self):
|
||||
option = option_normalizer('true')
|
||||
self.assertTrue(option)
|
||||
|
||||
def test_on_is_true(self):
|
||||
option = option_normalizer('on')
|
||||
self.assertTrue(option)
|
||||
|
||||
def test_0_is_false(self):
|
||||
option = option_normalizer('0')
|
||||
self.assertFalse(option)
|
||||
|
||||
def test_F_is_false(self):
|
||||
option = option_normalizer('F')
|
||||
self.assertFalse(option)
|
||||
|
||||
def test_FALSE_is_false(self):
|
||||
option = option_normalizer('FALSE')
|
||||
self.assertFalse(option)
|
||||
|
||||
def test_OFF_is_false(self):
|
||||
option = option_normalizer('OFF')
|
||||
self.assertFalse(option)
|
||||
|
||||
def test_f_is_false(self):
|
||||
option = option_normalizer('f')
|
||||
self.assertFalse(option)
|
||||
|
||||
def test_false_is_false(self):
|
||||
option = option_normalizer('false')
|
||||
self.assertFalse(option)
|
||||
|
||||
def test_off_is_false(self):
|
||||
option = option_normalizer('off')
|
||||
self.assertFalse(option)
|
||||
|
||||
def test_parses_lists(self):
|
||||
answer = ['F401', 'F402', 'F403', 'F404']
|
||||
|
||||
option = option_normalizer('F401,F402,F403,F404')
|
||||
self.assertEqual(option, answer)
|
||||
|
||||
option = option_normalizer('F401 ,F402 ,F403 ,F404')
|
||||
self.assertEqual(option, answer)
|
||||
|
||||
option = option_normalizer('F401, F402, F403, F404')
|
||||
self.assertEqual(option, answer)
|
||||
|
||||
option = option_normalizer('''\
|
||||
F401,
|
||||
F402,
|
||||
F403,
|
||||
F404,
|
||||
''')
|
||||
self.assertEqual(option, answer)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
|
@ -38,12 +38,6 @@ class OrderedSet(list):
|
|||
self.append(value)
|
||||
|
||||
|
||||
def is_flag(val):
|
||||
"""Guess if the value could be an on/off toggle"""
|
||||
val = str(val)
|
||||
return val.upper() in ('1', '0', 'F', 'T', 'TRUE', 'FALSE', 'ON', 'OFF')
|
||||
|
||||
|
||||
def is_windows():
|
||||
"""Determine if the system is Windows."""
|
||||
return os.name == 'nt'
|
||||
|
|
@ -63,6 +57,13 @@ def force_disable_jobs(styleguide):
|
|||
return is_windows() or is_using_stdin(styleguide.paths)
|
||||
|
||||
|
||||
def flag_on(val):
|
||||
"""Return true if flag is on"""
|
||||
return str(val).upper() in ('1', 'T', 'TRUE', 'ON')
|
||||
def option_normalizer(value):
|
||||
if str(value).upper() in ('1', 'T', 'TRUE', 'ON'):
|
||||
value = True
|
||||
if str(value).upper() in ('0', 'F', 'FALSE', 'OFF'):
|
||||
value = False
|
||||
|
||||
if isinstance(value, str):
|
||||
value = [opt.strip() for opt in value.split(',') if opt.strip()]
|
||||
|
||||
return value
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue