Skip to content

Commit

Permalink
bug - Fix ignore pattern bug (#8)
Browse files Browse the repository at this point in the history
* 🐛 - Fix ignore pattern bug

* 🔖 - Bump up version to 1.0.1
  • Loading branch information
isac322 authored Oct 25, 2021
1 parent f654275 commit 51a589d
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 20 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
poetry install --remove-untracked
- name: Lint with flake8
run: |
poetry run flake8 . --kwargs-inspect-module-extend functools,itertools --kwargs-ignore-function-pattern-extend ^pytest.mark.parametrize$
poetry run flake8 .
- name: Type check with mypy
run: |
poetry run mypy -p flake8_force_keyword_arguments
Expand Down
25 changes: 8 additions & 17 deletions flake8_force_keyword_arguments/checker.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,9 @@
from re import Pattern

DEFAULT_MAX_POS_ARGS: Final[int] = 2
DEFAULT_IGNORE_PATTERNS: Final[Tuple[str, ...]] = (
r'^logger.(:?log|debug|info|warning|error|exception|critical)$',
r'__setattr__$',
r'__delattr__$',
r'__getattr__$',
)
DEFAULT_IGNORE_PATTERNS: Final[
str
] = r'(:?^logger.(:?log|debug|info|warning|error|exception|critical)$|__setattr__$|__delattr__$|__getattr__$)'
DEFAULT_INSPECT_MODULES: Final[Tuple[str, ...]] = ('builtins',)
DEFAULT_QUALIFIER_OPTION: Final[util.QualifierOption] = util.QualifierOption.BOTH

Expand Down Expand Up @@ -61,19 +58,17 @@ def add_options(cls, parser: OptionManager) -> None:
)
parser.add_option( # pragma: no cover
'--kwargs-ignore-function-pattern',
nargs='*',
type=str,
dest='ignore_function_pattern',
comma_separated_list=True,
default=DEFAULT_IGNORE_PATTERNS,
parse_from_config=True,
help='Ignore pattern list (default: %(default)s)',
)
parser.add_option( # pragma: no cover
'--kwargs-ignore-function-pattern-extend',
nargs='*',
type=str,
dest='ignore_function_pattern_extend',
comma_separated_list=True,
default=(),
default=None,
parse_from_config=True,
help='Extend ignore pattern list.',
)
Expand Down Expand Up @@ -116,12 +111,8 @@ def add_options(cls, parser: OptionManager) -> None:
def parse_options(cls, options: Namespace) -> None:
cls._max_pos_args = options.max_positional_arguments

ignore_pattern_extend = chain.from_iterable(options.ignore_function_pattern_extend)
if options.ignore_function_pattern == DEFAULT_IGNORE_PATTERNS:
ignore_function_patterns = options.ignore_function_pattern
else:
ignore_function_patterns = chain.from_iterable(options.ignore_function_pattern)
cls._ignore_patterns = tuple(map(re.compile, chain(ignore_function_patterns, ignore_pattern_extend)))
ignore_patterns = (options.ignore_function_pattern, options.ignore_function_pattern_extend)
cls._ignore_patterns = tuple(map(re.compile, filter(None, ignore_patterns)))

qualifier_option = options.inspect_qualifier_option

Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tool.poetry]
name = "flake8-force-keyword-arguments"
version = "1.0.0"
version = "1.0.1"
description = "A flake8 extension that is looking for function calls and forces to use keyword arguments if there are more than X arguments"
authors = ["Viktor Chaptsev <viktor@chaptsev.ru>", "Byeonghoon Yoo <bh322yoo@gmail.com>"]
maintainers = ["Byeonghoon Yoo <bh322yoo@gmail.com>"]
Expand Down
3 changes: 3 additions & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@ max-annotations-complexity = 4
pytest-parametrize-values-type = tuple
eradicate-whitelist = mypy:#noqa:
max-returns-amount = 6

kwargs-inspect-module-extend = functools,itertools
kwargs-ignore-function-pattern-extend = ^pytest.mark.parametrize$
2 changes: 1 addition & 1 deletion tests/test_checker.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,6 @@ def test_ignore_function_pattern_extended_multiple(flake8_path):
),
)
result = flake8_path.run_flake8(
['--kwargs-max-positional-arguments', '2', '--kwargs-ignore-function-pattern-extend', '^tt$,test_function$']
['--kwargs-max-positional-arguments', '2', '--kwargs-ignore-function-pattern-extend', '(:?^tt$|test_function$)']
)
assert result.out_lines == []

0 comments on commit 51a589d

Please sign in to comment.