mirror of
https://github.com/PyCQA/flake8.git
synced 2026-04-14 16:34:46 +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
|
import setuptools
|
||||||
|
|
||||||
from flake8.engine import get_parser, get_style_guide
|
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'):
|
if sys.platform.startswith('win'):
|
||||||
DEFAULT_CONFIG = os.path.expanduser(r'~\.flake8')
|
DEFAULT_CONFIG = os.path.expanduser(r'~\.flake8')
|
||||||
|
|
@ -104,8 +104,7 @@ class Flake8Command(setuptools.Command):
|
||||||
value = getattr(self, option_name)
|
value = getattr(self, option_name)
|
||||||
if value is None:
|
if value is None:
|
||||||
continue
|
continue
|
||||||
if is_flag(value):
|
value = option_normalizer(value)
|
||||||
value = flag_on(value)
|
|
||||||
# Check if there's any values that need to be fixed.
|
# Check if there's any values that need to be fixed.
|
||||||
if option_name == "include" and isinstance(value, str):
|
if option_name == "include" and isinstance(value, str):
|
||||||
value = re.findall('[^,;\s]+', value)
|
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)
|
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():
|
def is_windows():
|
||||||
"""Determine if the system is Windows."""
|
"""Determine if the system is Windows."""
|
||||||
return os.name == 'nt'
|
return os.name == 'nt'
|
||||||
|
|
@ -63,6 +57,13 @@ def force_disable_jobs(styleguide):
|
||||||
return is_windows() or is_using_stdin(styleguide.paths)
|
return is_windows() or is_using_stdin(styleguide.paths)
|
||||||
|
|
||||||
|
|
||||||
def flag_on(val):
|
def option_normalizer(value):
|
||||||
"""Return true if flag is on"""
|
if str(value).upper() in ('1', 'T', 'TRUE', 'ON'):
|
||||||
return str(val).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