Skip to content

Commit

Permalink
f8 (#741)
Browse files Browse the repository at this point in the history
[lint-vetting] Allow `hasattr` and others

This is for a linter that is being vetted not enforced
https://wemake-python-stylegui.de/en/0.9.1/pages/violations/best_practices.html?highlight=FUNCTIONS_BLACKLIST#wemake_python_styleguide.violations.best_practices.WrongFunctionCallViolation
forbids:
FUNCTIONS_BLACKLIST = frozenset({'__import__', 'compile', 'copyright', 'credits', 'delattr', 'dir', 'eval', 'exec', 'exit', 'globals', 'hasattr', 'help', 'input', 'locals', 'quit', 'staticmethod', 'vars'})

Some discussion about this happened here:
#624 (comment)

Reviewed-by: Sviatoslav Sydorenko <webknjaz+github/profile@redhat.com>
Reviewed-by: Sorin Sbarnea <sorin.sbarnea@gmail.com>
Reviewed-by: Rick Elrod <rick@elrod.me>
Reviewed-by: None <None>
  • Loading branch information
cidrblock authored Dec 16, 2021
1 parent 674e5ed commit 8fa494e
Showing 1 changed file with 13 additions and 12 deletions.
25 changes: 13 additions & 12 deletions .flake8
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ extend-ignore =
# by pylint via: useless-object-inheritance (R0205):
WPS306, # "Found class without a base class: *"
WPS326, # "Forbid implicit string concatenation."
WPS421, # "Forbids to call some built-in functions.", hasattr is good.
# https://wemake-python-stylegui.de/en/latest/pages/usage/formatter.html
#format = wemake

Expand All @@ -61,8 +62,8 @@ per-file-ignores =
docs/_ext/single_sourced_data.py: D400, D403, DAR101, DAR201, I001, I004, N817, P103, Q000, WPS110, WPS111, WPS201, WPS202, WPS210, WPS213, WPS221, WPS229, WPS231, WPS237, WPS305, WPS318, WPS323, WPS331, WPS336, WPS347, WPS407, WPS432, WPS440, WPS441, WPS453, WPS504
docs/_ext/spelling_stub_ext.py: DAR101, DAR201
setup.py: D210, D400, Q000, WPS111, WPS221
share/ansible_navigator/utils/catalog_collections.py: C812, D107, D200, D400, D401, D403, DAR101, DAR201, I001, I003, I004, I005, Q000, S404, S602, WPS110, WPS111, WPS121, WPS122, WPS201, WPS202, WPS210, WPS211, WPS220, WPS221, WPS226, WPS229, WPS231, WPS232, WPS237, WPS305, WPS306, WPS331, WPS336, WPS338, WPS349, WPS420, WPS421, WPS426, WPS432, WPS433, WPS437, WPS440, WPS458, WPS529, WPS602
share/ansible_navigator/utils/image_introspect.py: C812, D101, D102, D107, D205, D209, D400, D401, D403, DAR101, DAR201, I001, I004, I005, Q000, S404, S602, WPS110, WPS111, WPS121, WPS122, WPS202, WPS210, WPS220, WPS221, WPS226, WPS229, WPS231, WPS305, WPS306, WPS335, WPS338, WPS421, WPS440, WPS441, WPS510, WPS602
share/ansible_navigator/utils/catalog_collections.py: C812, D107, D200, D400, D401, D403, DAR101, DAR201, I001, I003, I004, I005, Q000, S404, S602, WPS110, WPS111, WPS121, WPS122, WPS201, WPS202, WPS210, WPS211, WPS220, WPS221, WPS226, WPS229, WPS231, WPS232, WPS237, WPS305, WPS306, WPS331, WPS336, WPS338, WPS349, WPS420, WPS426, WPS432, WPS433, WPS437, WPS440, WPS458, WPS529, WPS602
share/ansible_navigator/utils/image_introspect.py: C812, D101, D102, D107, D205, D209, D400, D401, D403, DAR101, DAR201, I001, I004, I005, Q000, S404, S602, WPS110, WPS111, WPS121, WPS122, WPS202, WPS210, WPS220, WPS221, WPS226, WPS229, WPS231, WPS305, WPS306, WPS335, WPS338, WPS440, WPS441, WPS510, WPS602
share/ansible_navigator/utils/key_value_store.py: D105, D107, D200, D400, D403, DAR101, DAR201, DAR301, DAR401, Q000, WPS110, WPS214, WPS526, WPS600, WPS603
src/ansible_navigator/action_runner.py: C812, D107, D200, D400, D403, DAR101, I001, I005, Q000, WPS231, WPS300, WPS437
src/ansible_navigator/actions/_actions.py: D210, D400, D401, DAR101, DAR201, I001, I004, I005, Q000, WPS111, WPS202, WPS221, WPS305, WPS407, WPS433, WPS440, WPS458
Expand All @@ -74,14 +75,14 @@ per-file-ignores =
src/ansible_navigator/actions/help_doc.py: C812, D107, D400, DAR101, DAR201, I001, I003, Q000, WPS115, WPS300, WPS360, WPS450
src/ansible_navigator/actions/images.py: C812, D107, D201, D400, D403, DAR101, DAR201, I001, I004, I005, Q000, WPS110, WPS111, WPS115, WPS121, WPS122, WPS201, WPS210, WPS212, WPS213, WPS214, WPS221, WPS223, WPS226, WPS229, WPS231, WPS237, WPS300, WPS305, WPS323, WPS331, WPS336, WPS338, WPS349, WPS450, WPS504, WPS510, WPS529
src/ansible_navigator/actions/__init__.py: C812, D400, I001, I004, I005, Q000, WPS300, WPS410, WPS412, WPS450
src/ansible_navigator/actions/inventory.py: C409, C812, D102, D107, D202, D205, D400, D403, DAR101, DAR201, I001, I004, I005, N806, Q000, WPS110, WPS111, WPS112, WPS115, WPS201, WPS210, WPS212, WPS213, WPS214, WPS220, WPS221, WPS226, WPS229, WPS231, WPS300, WPS305, WPS323, WPS324, WPS331, WPS336, WPS338, WPS421, WPS450, WPS510, WPS600
src/ansible_navigator/actions/inventory.py: C409, C812, D102, D107, D202, D205, D400, D403, DAR101, DAR201, I001, I004, I005, N806, Q000, WPS110, WPS111, WPS112, WPS115, WPS201, WPS210, WPS212, WPS213, WPS214, WPS220, WPS221, WPS226, WPS229, WPS231, WPS300, WPS305, WPS323, WPS324, WPS331, WPS336, WPS338, WPS450, WPS510, WPS600
src/ansible_navigator/actions/log.py: D107, D400, DAR101, DAR201, I001, Q000, WPS115, WPS231, WPS232, WPS300, WPS360, WPS450
src/ansible_navigator/actions/open_file.py: D105, D107, D400, DAR101, DAR201, I001, I004, I005, Q000, S605, WPS110, WPS111, WPS115, WPS201, WPS210, WPS221, WPS231, WPS300, WPS306, WPS323, WPS338, WPS436, WPS440, WPS450
src/ansible_navigator/actions/quit.py: D107, D200, D400, DAR101, DAR201, I001, I003, Q000, WPS115, WPS300, WPS306, WPS323, WPS360, WPS450
src/ansible_navigator/actions/refresh.py: D107, D400, DAR101, I001, I003, Q000, WPS115, WPS300, WPS306, WPS450
src/ansible_navigator/actions/replay.py: D200, D400, WPS115, WPS300, WPS450
src/ansible_navigator/actions/rerun.py: D107, D400, DAR101, I001, I003, I004, Q000, WPS115, WPS300, WPS306, WPS360, WPS450
src/ansible_navigator/actions/run.py: B014, C409, C812, D107, D200, D202, D205, D209, D400, D401, D403, DAR101, DAR201, DAR401, I001, I003, I004, I005, N806, Q000, WPS110, WPS111, WPS115, WPS201, WPS204, WPS210, WPS213, WPS214, WPS219, WPS220, WPS221, WPS226, WPS229, WPS231, WPS232, WPS237, WPS300, WPS305, WPS323, WPS328, WPS331, WPS336, WPS337, WPS338, WPS407, WPS420, WPS421, WPS440, WPS450, WPS504, WPS510
src/ansible_navigator/actions/run.py: B014, C409, C812, D107, D200, D202, D205, D209, D400, D401, D403, DAR101, DAR201, DAR401, I001, I003, I004, I005, N806, Q000, WPS110, WPS111, WPS115, WPS201, WPS204, WPS210, WPS213, WPS214, WPS219, WPS220, WPS221, WPS226, WPS229, WPS231, WPS232, WPS237, WPS300, WPS305, WPS323, WPS328, WPS331, WPS336, WPS337, WPS338, WPS407, WPS420, WPS440, WPS450, WPS504, WPS510
src/ansible_navigator/actions/sample_form.py: D107, D200, D400, DAR101, DAR201, I001, I005, Q000, WPS115, WPS300, WPS323, WPS360, WPS436, WPS450
src/ansible_navigator/actions/sample_notification.py: D107, D200, D400, DAR101, DAR201, I001, I005, Q000, WPS115, WPS300, WPS323, WPS360, WPS436, WPS450
src/ansible_navigator/actions/sample_working.py: D107, D200, D400, DAR101, I001, I003, I005, Q000, WPS115, WPS300, WPS360, WPS450
Expand All @@ -98,16 +99,16 @@ per-file-ignores =
src/ansible_navigator/cli.py: B010, D200, D400, D403, DAR101, DAR201, I001, I004, I005, Q000, WPS201, WPS210, WPS213, WPS221, WPS229, WPS237, WPS300, WPS305, WPS323, WPS331, WPS336, WPS440
src/ansible_navigator/command_runner/command_runner.py: C812, D107, D400, D403, DAR101, DAR201, I001, I004, I005, Q000, S404, S602, WPS110, WPS121, WPS122, WPS229, WPS306, WPS440, WPS602
src/ansible_navigator/command_runner/__init__.py: D210, D400, I001, I005, WPS300, WPS412
src/ansible_navigator/configuration_subsystem/configurator.py: B010, C812, D200, D202, D205, D400, D401, D403, DAR101, DAR201, I001, I003, I004, I005, N817, Q000, WPS110, WPS111, WPS201, WPS210, WPS211, WPS213, WPS214, WPS220, WPS221, WPS226, WPS229, WPS231, WPS232, WPS237, WPS300, WPS305, WPS306, WPS336, WPS337, WPS338, WPS347, WPS421, WPS436, WPS440, WPS510
src/ansible_navigator/configuration_subsystem/configurator.py: B010, C812, D200, D202, D205, D400, D401, D403, DAR101, DAR201, I001, I003, I004, I005, N817, Q000, WPS110, WPS111, WPS201, WPS210, WPS211, WPS213, WPS214, WPS220, WPS221, WPS226, WPS229, WPS231, WPS232, WPS237, WPS300, WPS305, WPS306, WPS336, WPS337, WPS338, WPS347, WPS436, WPS440, WPS510
src/ansible_navigator/configuration_subsystem/definitions.py: D200, D204, D400, D401, DAR101, DAR201, DAR401, I001, I004, I005, Q000, WPS110, WPS115, WPS221, WPS226, WPS237, WPS300, WPS305, WPS331, WPS338, WPS613
src/ansible_navigator/configuration_subsystem/__init__.py: D200, D400, I001, I005, WPS300, WPS412
src/ansible_navigator/configuration_subsystem/navigator_configuration.py: D200, D205, D400, DAR201, I001, I003, I004, I005, N812, N817, Q000, WPS111, WPS201, WPS204, WPS221, WPS226, WPS237, WPS300, WPS305, WPS347, WPS436
src/ansible_navigator/configuration_subsystem/navigator_post_processor.py: B009, B014, C812, D200, D400, DAR101, DAR201, I001, I003, I004, I005, N817, Q000, WPS111, WPS201, WPS204, WPS210, WPS213, WPS214, WPS220, WPS221, WPS226, WPS229, WPS231, WPS237, WPS300, WPS305, WPS306, WPS336, WPS337, WPS338, WPS347, WPS420, WPS421, WPS440, WPS441, WPS448, WPS510, WPS602
src/ansible_navigator/configuration_subsystem/navigator_post_processor.py: B009, B014, C812, D200, D400, DAR101, DAR201, I001, I003, I004, I005, N817, Q000, WPS111, WPS201, WPS204, WPS210, WPS213, WPS214, WPS220, WPS221, WPS226, WPS229, WPS231, WPS237, WPS300, WPS305, WPS306, WPS336, WPS337, WPS338, WPS347, WPS420, WPS440, WPS441, WPS448, WPS510, WPS602
src/ansible_navigator/configuration_subsystem/parser.py: C812, D107, D200, D400, DAR101, DAR201, I001, I004, I005, N817, Q000, WPS111, WPS221, WPS237, WPS300, WPS305, WPS306, WPS323, WPS336, WPS347, WPS436, WPS450, WPS504, WPS507, WPS602
src/ansible_navigator/image_manager/__init__.py: D210, D400, I001, WPS300, WPS412
src/ansible_navigator/image_manager/inspector.py: C812, D107, D400, D403, DAR101, DAR201, I001, I004, I005, Q000, WPS110, WPS114, WPS210, WPS221, WPS300, WPS305, WPS306, WPS602
src/ansible_navigator/image_manager/puller.py: D107, D400, D403, DAR201, DAR401, I001, I004, I005, Q000, S404, S603, WPS110, WPS111, WPS213, WPS214, WPS221, WPS226, WPS229, WPS231, WPS237, WPS300, WPS305, WPS306, WPS338, WPS421
src/ansible_navigator/initialization.py: C812, D202, D205, D400, D403, DAR101, DAR201, I001, I003, I004, I005, N812, N817, Q000, WPS110, WPS111, WPS201, WPS204, WPS210, WPS213, WPS221, WPS226, WPS237, WPS300, WPS301, WPS305, WPS336, WPS347, WPS421, WPS436, WPS504, WPS529, WPS609
src/ansible_navigator/image_manager/puller.py: D107, D400, D403, DAR201, DAR401, I001, I004, I005, Q000, S404, S603, WPS110, WPS111, WPS213, WPS214, WPS221, WPS226, WPS229, WPS231, WPS237, WPS300, WPS305, WPS306, WPS338
src/ansible_navigator/initialization.py: C812, D202, D205, D400, D403, DAR101, DAR201, I001, I003, I004, I005, N812, N817, Q000, WPS110, WPS111, WPS201, WPS204, WPS210, WPS213, WPS221, WPS226, WPS237, WPS300, WPS301, WPS305, WPS336, WPS347, WPS436, WPS504, WPS529, WPS609
src/ansible_navigator/__init__.py: D200, D400, WPS300, WPS412, WPS436
src/ansible_navigator/__main__.py: Q000, RST304, WPS300
src/ansible_navigator/runner/ansible_config.py: C812, C815, D205, D400, I001, I005, WPS300
Expand Down Expand Up @@ -144,7 +145,7 @@ per-file-ignores =
src/ansible_navigator/ui_framework/form_handler_options.py: D107, D200, D201, D400, D403, DAR101, DAR201, I001, I004, I005, Q000, WPS110, WPS210, WPS220, WPS223, WPS231, WPS232, WPS237, WPS300, WPS305, WPS336, WPS510, WPS525
src/ansible_navigator/ui_framework/form_handler_text.py: C409, D107, D200, D205, D300, D400, D403, DAR101, DAR201, I001, I004, Q000, Q002, WPS110, WPS223, WPS231, WPS232, WPS300, WPS338, WPS504, WPS510
src/ansible_navigator/ui_framework/form_handler_working.py: D107, D205, D400, D403, DAR101, DAR201, I001, I004, I005, Q000, WPS110, WPS300, WPS602
src/ansible_navigator/ui_framework/form_presenter.py: C409, C812, D107, D200, D400, D403, DAR201, I001, I003, I004, I005, Q000, WPS110, WPS111, WPS201, WPS210, WPS213, WPS214, WPS221, WPS231, WPS237, WPS300, WPS305, WPS331, WPS338, WPS421, WPS432, WPS440, WPS441, WPS510, WPS602
src/ansible_navigator/ui_framework/form_presenter.py: C409, C812, D107, D200, D400, D403, DAR201, I001, I003, I004, I005, Q000, WPS110, WPS111, WPS201, WPS210, WPS213, WPS214, WPS221, WPS231, WPS237, WPS300, WPS305, WPS331, WPS338, WPS432, WPS440, WPS441, WPS510, WPS602
src/ansible_navigator/ui_framework/form.py: C812, D200, D205, D400, D403, DAR101, DAR201, I001, I005, Q000, WPS221, WPS300, WPS306, WPS420, WPS601
src/ansible_navigator/ui_framework/form_utils.py: D200, D205, D400, D403, DAR101, DAR201, I001, I004, I005, Q000, WPS110, WPS201, WPS204, WPS210, WPS219, WPS226, WPS231, WPS232, WPS300, WPS432, WPS437, WPS440, WPS441, WPS510, WPS529
src/ansible_navigator/ui_framework/__init__.py: D200, D400, I001, I004, I005, WPS201, WPS300, WPS412
Expand All @@ -153,7 +154,7 @@ per-file-ignores =
src/ansible_navigator/ui_framework/ui.py: C401, C408, C409, C812, D200, D202, D205, D211, D400, D403, DAR101, DAR201, DAR401, I001, I003, I004, I005, Q000, WPS110, WPS111, WPS201, WPS210, WPS211, WPS213, WPS214, WPS220, WPS221, WPS223, WPS226, WPS231, WPS232, WPS237, WPS300, WPS305, WPS323, WPS331, WPS338, WPS349, WPS404, WPS407, WPS432, WPS436, WPS437, WPS440, WPS504, WPS510, WPS602
src/ansible_navigator/ui_framework/utils.py: D200, D205, D400, D403, DAR101, DAR201, I004, Q000, WPS100, WPS110, WPS111, WPS210, WPS221, WPS336, WPS349
src/ansible_navigator/ui_framework/validators.py: B006, C812, D200, D400, D401, D403, DAR101, DAR201, DAR401, I001, I004, I005, Q000, S311, WPS110, WPS111, WPS214, WPS221, WPS229, WPS237, WPS300, WPS305, WPS306, WPS334, WPS336, WPS337, WPS404, WPS420, WPS432, WPS504, WPS510, WPS602
src/ansible_navigator/utils.py: C408, C812, D105, D200, D202, D205, D400, D401, D403, DAR101, DAR201, DAR401, E302, I001, I003, I004, I005, Q000, RST304, WPS100, WPS110, WPS111, WPS115, WPS122, WPS201, WPS202, WPS204, WPS210, WPS212, WPS213, WPS221, WPS226, WPS229, WPS231, WPS237, WPS305, WPS323, WPS331, WPS336, WPS338, WPS421, WPS425, WPS430, WPS432, WPS440, WPS507, WPS510
src/ansible_navigator/utils.py: C408, C812, D105, D200, D202, D205, D400, D401, D403, DAR101, DAR201, DAR401, E302, I001, I003, I004, I005, Q000, RST304, WPS100, WPS110, WPS111, WPS115, WPS122, WPS201, WPS202, WPS204, WPS210, WPS212, WPS213, WPS221, WPS226, WPS229, WPS231, WPS237, WPS305, WPS323, WPS331, WPS336, WPS338, WPS425, WPS430, WPS432, WPS440, WPS507, WPS510
src/ansible_navigator/_version.py: D210, D400, D412, Q000, WPS410
src/ansible_navigator/_yaml.py: D210, D400, D401, DAR101, DAR201, I001, I004, I005, Q000, WPS110, WPS229, WPS433, WPS437, WPS440, WPS458
tests/conftest.py: D210, D400, D401, D403, DAR101, DAR201, DAR301, DAR401, PT003, Q000, S103, S404, S603, WPS300, WPS339, WPS432, WPS454
Expand All @@ -162,7 +163,7 @@ per-file-ignores =
tests/fixtures/common/collections/ansible_collections/testorg/coll_1/plugins/modules/mod_1.py: WPS114, WPS422
tests/fixtures/common/collections/ansible_collections/testorg/coll_2/plugins/lookup/lookup_2.py: WPS114, WPS422
tests/fixtures/common/collections/ansible_collections/testorg/coll_2/plugins/modules/mod_2.py: WPS114, WPS422
tests/integration/_action_run_test.py: C812, D107, D205, D400, D401, D403, DAR101, DAR201, DAR401, I001, I004, I005, N817, Q000, WPS110, WPS111, WPS201, WPS210, WPS211, WPS305, WPS306, WPS347, WPS421
tests/integration/_action_run_test.py: C812, D107, D205, D400, D401, D403, DAR101, DAR201, DAR401, I001, I004, I005, N817, Q000, WPS110, WPS111, WPS201, WPS210, WPS211, WPS305, WPS306, WPS347
tests/integration/actions/collections/base.py: C812, D200, D202, D400, D403, DAR101, DAR301, DAR401, I001, I004, I005, PT005, Q000, S101, WPS110, WPS115, WPS210, WPS211, WPS300, WPS305, WPS306, WPS336, WPS337, WPS338, WPS436, WPS602
tests/integration/actions/collections/test_direct_interactive_ee.py: D200, D400, I004, PT006, Q000, WPS115, WPS226, WPS300
tests/integration/actions/collections/test_direct_interactive_noee.py: D200, D400, PT006, Q000, WPS115, WPS226, WPS300
Expand Down Expand Up @@ -233,7 +234,7 @@ per-file-ignores =
tests/unit/configuration_subsystem/test_broken_settings.py: D200, D400, DAR101, Q000, S101
tests/unit/configuration_subsystem/test_configurator.py: D200, D205, D209, D400, DAR101, I001, I004, I005, N817, PT019, Q000, S101, WPS111, WPS118, WPS347, WPS458, WPS520
tests/unit/configuration_subsystem/test_container_engine_auto.py: D200, DAR101, Q000, S101, WPS430, WPS520
tests/unit/configuration_subsystem/test_entries_sanity.py: C812, D200, D400, DAR101, I001, I005, N817, Q000, S101, WPS110, WPS111, WPS202, WPS221, WPS226, WPS300, WPS347, WPS421
tests/unit/configuration_subsystem/test_entries_sanity.py: C812, D200, D400, DAR101, I001, I005, N817, Q000, S101, WPS110, WPS111, WPS202, WPS221, WPS226, WPS300, WPS347
tests/unit/configuration_subsystem/test_fixture_sanity.py: D205, D400, I001, I004, I005, Q000, S101, WPS110, WPS210, WPS300, WPS436
tests/unit/configuration_subsystem/test_invalid_params.py: D200, D202, D400, DAR101, I003, I004, PT006, PT019, Q000, S101, WPS110, WPS202, WPS204, WPS226, WPS300, WPS305, WPS420, WPS430, WPS510
tests/unit/configuration_subsystem/test_mode_subcommand_action.py: D205, D400, I001, I004, I005, Q000, S101, WPS226, WPS336, WPS437, WPS510
Expand Down

0 comments on commit 8fa494e

Please sign in to comment.