summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric N. Vander Weele <ericvw@gmail.com>2019-07-28 10:39:27 -0400
committerEric N. Vander Weele <ericvw@gmail.com>2019-07-28 10:43:02 -0400
commit9283f2f03f5c8e61eb5a6bca2f10afadb0d90317 (patch)
tree412c412c1601ffa141f49f5f3ebf472bed15e10e
parent9fbaf2d2ea49adb97cc45be83a966fb3c7f292f2 (diff)
downloadflake8-9283f2f03f5c8e61eb5a6bca2f10afadb0d90317.tar.gz
utils: Change `parse_comma_separated_list()` contract
This is the initial incision point to only accept `str` (or `None`) for parsing out comma/whitespace/regexp separated values.
-rw-r--r--docs/source/internal/utils.rst9
-rw-r--r--src/flake8/utils.py10
-rw-r--r--tests/unit/test_utils.py5
3 files changed, 6 insertions, 18 deletions
diff --git a/docs/source/internal/utils.rst b/docs/source/internal/utils.rst
index 31e0d39..2b2638e 100644
--- a/docs/source/internal/utils.rst
+++ b/docs/source/internal/utils.rst
@@ -25,13 +25,8 @@
"E121,W123,F904"
"E121,\nW123,\nF804"
- "E121,\n\tW123,\n\tF804"
-
-Or it will take a list of strings (potentially with whitespace) such as
-
-.. code-block:: python
-
- [" E121\n", "\t\nW123 ", "\n\tF904\n "]
+ " E121,\n\tW123,\n\tF804 "
+ " E121\n\tW123 \n\tF804"
And converts it to a list that looks as follows
diff --git a/src/flake8/utils.py b/src/flake8/utils.py
index cf88648..06a1db1 100644
--- a/src/flake8/utils.py
+++ b/src/flake8/utils.py
@@ -24,11 +24,11 @@ string_types = (str, type(u""))
def parse_comma_separated_list(value, regexp=COMMA_SEPARATED_LIST_RE):
- # type: (Union[Sequence[str], str], Pattern[str]) -> List[str]
+ # type: (Optional[str], Pattern[str]) -> List[str]
"""Parse a comma-separated list.
:param value:
- String or list of strings to be parsed and normalized.
+ String to be parsed and normalized.
:param regexp:
Compiled regular expression used to split the value when it is a
string.
@@ -46,10 +46,8 @@ def parse_comma_separated_list(value, regexp=COMMA_SEPARATED_LIST_RE):
if not value:
return []
- if isinstance(value, string_types):
- value = regexp.split(value)
-
- item_gen = (item.strip() for item in value)
+ separated = regexp.split(value)
+ item_gen = (item.strip() for item in separated)
return [item for item in item_gen if item]
diff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py
index 20c5fb9..b4bd1a1 100644
--- a/tests/unit/test_utils.py
+++ b/tests/unit/test_utils.py
@@ -22,11 +22,6 @@ RELATIVE_PATHS = ["flake8", "pep8", "pyflakes", "mccabe"]
("E123,W234,,E206,,", ["E123", "W234", "E206"]),
("E123, W234,, E206,,", ["E123", "W234", "E206"]),
("E123,,W234,,E206,,", ["E123", "W234", "E206"]),
- (["E123", "W234", "E206"], ["E123", "W234", "E206"]),
- (["E123", "\n\tW234", "\n E206"], ["E123", "W234", "E206"]),
- (["E123", "\n\tW234", "\n E206", "\n"], ["E123", "W234", "E206"]),
- (["E123", "\n\tW234", "", "\n E206", "\n"], ["E123", "W234", "E206"]),
- (["E123", "\n\tW234", "", "\n E206", ""], ["E123", "W234", "E206"]),
])
def test_parse_comma_separated_list(value, expected):
"""Verify that similar inputs produce identical outputs."""