Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Set N818 to check error suffix on exception names. #157

Merged
merged 11 commits into from
Apr 18, 2021

Conversation

ecolell
Copy link
Contributor

@ecolell ecolell commented Sep 15, 2020

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
@sigmavirus24
Copy link
Member

I'm mildly -0 on this. I think there's a fair amount of variation in the community on this and if we add this, we'd want it to be ignored by default and only reported if someone extend-select = N818 in their Flake8 config

@ecolell
Copy link
Contributor Author

ecolell commented Sep 18, 2020

I'm mildly -0 on this. I think there's a fair amount of variation in the community on this and if we add this, we'd want it to be ignored by default and only reported if someone extend-select = N818 in their Flake8 config

I agree with you, there is a fair amount of variation, but also true that none current tool is being able to enforce this convention to normalize those exception names.

If you think extend-select is the path to better reception, lets do it in that way.

@ecolell
Copy link
Contributor Author

ecolell commented Sep 22, 2020

@sigmavirus24
Copy link
Member

@sigmavirus24 Should I create a PR to add N818 into https://gitlab.com/pycqa/flake8/-/blob/master/src/flake8/defaults.py#L15?

Nope. That's only for the 3 core tools Flake8 supports out of the box, not for plugins like this one

@ecolell
Copy link
Contributor Author

ecolell commented Sep 22, 2020

@sigmavirus24 ok, let me know how to follow with this PR or if is something else I could help.

@jparise
Copy link
Member

jparise commented Nov 19, 2020

I ran this over a subset of Pinterest's (large) Python code base, and it flagged hundreds of cases. I see a lot of exception classes named with an "Exception" suffix. That's probably due to Java, etc. influences.

I offer this as real-world anecdata rather than an endorsement or disapproval for inclusion in pep8-naming. If this was merged, we would probably not enable this rule by default because I think it's unlikely we'd go through a mass-renaming exercise for something like this; the perceived value of naming exception classes consistently isn't incredibly high.

Copy link
Member

@jparise jparise left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your patience on this, @ecolell!

Here's one more round of code review feedback, and then we should make a final decision on whether this is something we want to include. I think if it was purely opt-in, we'd be good to go, but most folks will probably have it automatically enabled when they upgrade, so we should think through that.

@ecolell
Copy link
Contributor Author

ecolell commented Jan 5, 2021

Here's one more round of code review feedback, and then we should make a final decision on whether this is something we want to include. I think if it was purely opt-in, we'd be good to go, but most folks will probably have it automatically enabled when they upgrade, so we should think through that.

Let's do it opt-in, and if at some point gets mainstream we update it 👍.

@jparise
Copy link
Member

jparise commented Jan 7, 2021

@sigmavirus24, do you have a suggestion on the best way to achieve this?

we'd want it to be ignored by default and only reported if someone extend-select = N818 in their Flake8 config

I'm not yet familiar enough with that aspect of flake8's internal API to suggest an implementation.

@sigmavirus24
Copy link
Member

I'm pretty sure I documented this, but you can use these methods in the plugin when registering options for the plugin (do we call add_option anywhere)? That would allow you to extend the default ignore. You don't need to worry about removing it from there or extending the default select by default

@jparise
Copy link
Member

jparise commented Jan 11, 2021

@ecolell could you take a crack at configuring this error code to be opt-in?

@sigmavirus24
Copy link
Member

@classmethod
def add_options(cls, parser):
options.register(parser, '--ignore-names',
default=_default_ignore_names,
action='store',
type='string',
parse_from_config=True,
comma_separated_list=True,
help='List of names or glob patterns the pep8-naming '
'plugin should ignore. (Defaults to %default)')
options.register(parser, '--classmethod-decorators',
default=_default_classmethod_decorators,
action='store',
type='string',
parse_from_config=True,
comma_separated_list=True,
help='List of method decorators pep8-naming plugin '
'should consider classmethods (Defaults to '
'%default)')
options.register(parser, '--staticmethod-decorators',
default=_default_staticmethod_decorators,
action='store',
type='string',
parse_from_config=True,
comma_separated_list=True,
help='List of method decorators pep8-naming plugin '
'should consider staticmethods (Defaults to '
'%default)')
is where we'll want to add the call to extend_default_ignore

@ecolell
Copy link
Contributor Author

ecolell commented Feb 14, 2021

@jparise @sigmavirus24 Sorry the lag, I've updated the PR. I'm new on this, so please verify I did it right.

@jparise
Copy link
Member

jparise commented Feb 17, 2021

Maybe I'm missing something, but when we use parser.extend_default_ignore(['N818']) to add this code to the default-ignore set, I'm not able to select it using flake8 --select=N818. engine.decision_for('N818') always reports Decision.Ignored.

@jparise
Copy link
Member

jparise commented Mar 18, 2021

@sigmavirus24 do you have any insight into why --select=N818 wouldn't work (as I would expect, at least)?

@sigmavirus24
Copy link
Member

I don't off the top of my head. I'd have to look into this

@sigmavirus24
Copy link
Member

Do you have logs with flake8 -vv because they log information around these decisions and could help shine a light on this.

@ecolell
Copy link
Contributor Author

ecolell commented Apr 14, 2021

Maybe I'm missing something, but when we use parser.extend_default_ignore(['N818']) to add this code to the default-ignore set, I'm not able to select it using flake8 --select=N818. engine.decision_for('N818') always reports Decision.Ignored.

I don't know how to do it to make it work. Neither how to setup flake8 to use extension from the local folder (please point me the docs if are available). I would like to try to reproduce it and get more details as @sigmavirus24 required.

@sigmavirus24
Copy link
Member

I don't know how to do it to make it work. Neither how to setup flake8 to use extension from the local folder (please point me the docs if are available). I would like to try to reproduce it and get more details as @sigmavirus24 required.

You could create a virtualenv and then run pip install -e . in this directory to get the local copy installed

@ecolell
Copy link
Contributor Author

ecolell commented Apr 14, 2021

@sigmavirus24 I've did flake8 -vv --enable-extensions pep8-naming --select N818 tests.py over a file that should raise the N818, the -vv was:

flake8                    MainProcess     56 DEBUG    Added a None logging handler to logger root at flake8
flake8.options.config     MainProcess     56 DEBUG    Found local configuration files: ['/home/eloy/version/git/pep8-naming/setup.cfg', '/home/eloy/version/git/pep8-naming/tox.ini']
flake8.plugins.manager    MainProcess     56 INFO     Loading entry-points for "flake8.extension".
flake8.plugins.manager    MainProcess     66 DEBUG    Loaded Plugin(name="C90", entry_point="mccabe:McCabeChecker") for plugin "C90".
flake8.plugins.manager    MainProcess     66 DEBUG    Loaded Plugin(name="F", entry_point="flake8.plugins.pyflakes:FlakesChecker") for plugin "F".
flake8.plugins.manager    MainProcess     66 DEBUG    Loaded Plugin(name="N8", entry_point="pep8ext_naming:NamingChecker") for plugin "N8".
flake8.plugins.manager    MainProcess     66 DEBUG    Loaded Plugin(name="pycodestyle.ambiguous_identifier", entry_point="pycodestyle:ambiguous_identifier") for plugin "pycodestyle.ambiguous_identifier".
flake8.plugins.manager    MainProcess     66 DEBUG    Loaded Plugin(name="pycodestyle.bare_except", entry_point="pycodestyle:bare_except") for plugin "pycodestyle.bare_except".
flake8.plugins.manager    MainProcess     66 DEBUG    Loaded Plugin(name="pycodestyle.blank_lines", entry_point="pycodestyle:blank_lines") for plugin "pycodestyle.blank_lines".
flake8.plugins.manager    MainProcess     66 DEBUG    Loaded Plugin(name="pycodestyle.break_after_binary_operator", entry_point="pycodestyle:break_after_binary_operator") for plugin "pycodestyle.break_after_binary_operator".
flake8.plugins.manager    MainProcess     66 DEBUG    Loaded Plugin(name="pycodestyle.break_before_binary_operator", entry_point="pycodestyle:break_before_binary_operator") for plugin "pycodestyle.break_before_binary_operator".
flake8.plugins.manager    MainProcess     66 DEBUG    Loaded Plugin(name="pycodestyle.comparison_negative", entry_point="pycodestyle:comparison_negative") for plugin "pycodestyle.comparison_negative".
flake8.plugins.manager    MainProcess     66 DEBUG    Loaded Plugin(name="pycodestyle.comparison_to_singleton", entry_point="pycodestyle:comparison_to_singleton") for plugin "pycodestyle.comparison_to_singleton".
flake8.plugins.manager    MainProcess     67 DEBUG    Loaded Plugin(name="pycodestyle.comparison_type", entry_point="pycodestyle:comparison_type") for plugin "pycodestyle.comparison_type".
flake8.plugins.manager    MainProcess     67 DEBUG    Loaded Plugin(name="pycodestyle.compound_statements", entry_point="pycodestyle:compound_statements") for plugin "pycodestyle.compound_statements".
flake8.plugins.manager    MainProcess     67 DEBUG    Loaded Plugin(name="pycodestyle.continued_indentation", entry_point="pycodestyle:continued_indentation") for plugin "pycodestyle.continued_indentation".
flake8.plugins.manager    MainProcess     67 DEBUG    Loaded Plugin(name="pycodestyle.explicit_line_join", entry_point="pycodestyle:explicit_line_join") for plugin "pycodestyle.explicit_line_join".
flake8.plugins.manager    MainProcess     67 DEBUG    Loaded Plugin(name="pycodestyle.extraneous_whitespace", entry_point="pycodestyle:extraneous_whitespace") for plugin "pycodestyle.extraneous_whitespace".
flake8.plugins.manager    MainProcess     67 DEBUG    Loaded Plugin(name="pycodestyle.imports_on_separate_lines", entry_point="pycodestyle:imports_on_separate_lines") for plugin "pycodestyle.imports_on_separate_lines".
flake8.plugins.manager    MainProcess     67 DEBUG    Loaded Plugin(name="pycodestyle.indentation", entry_point="pycodestyle:indentation") for plugin "pycodestyle.indentation".
flake8.plugins.manager    MainProcess     67 DEBUG    Loaded Plugin(name="pycodestyle.maximum_doc_length", entry_point="pycodestyle:maximum_doc_length") for plugin "pycodestyle.maximum_doc_length".
flake8.plugins.manager    MainProcess     67 DEBUG    Loaded Plugin(name="pycodestyle.maximum_line_length", entry_point="pycodestyle:maximum_line_length") for plugin "pycodestyle.maximum_line_length".
flake8.plugins.manager    MainProcess     67 DEBUG    Loaded Plugin(name="pycodestyle.missing_whitespace", entry_point="pycodestyle:missing_whitespace") for plugin "pycodestyle.missing_whitespace".
flake8.plugins.manager    MainProcess     67 DEBUG    Loaded Plugin(name="pycodestyle.missing_whitespace_after_import_keyword", entry_point="pycodestyle:missing_whitespace_after_import_keyword") for plugin "pycodestyle.missing_whitespace_after_import_keyword".
flake8.plugins.manager    MainProcess     67 DEBUG    Loaded Plugin(name="pycodestyle.missing_whitespace_around_operator", entry_point="pycodestyle:missing_whitespace_around_operator") for plugin "pycodestyle.missing_whitespace_around_operator".
flake8.plugins.manager    MainProcess     67 DEBUG    Loaded Plugin(name="pycodestyle.module_imports_on_top_of_file", entry_point="pycodestyle:module_imports_on_top_of_file") for plugin "pycodestyle.module_imports_on_top_of_file".
flake8.plugins.manager    MainProcess     67 DEBUG    Loaded Plugin(name="pycodestyle.python_3000_async_await_keywords", entry_point="pycodestyle:python_3000_async_await_keywords") for plugin "pycodestyle.python_3000_async_await_keywords".
flake8.plugins.manager    MainProcess     67 DEBUG    Loaded Plugin(name="pycodestyle.python_3000_backticks", entry_point="pycodestyle:python_3000_backticks") for plugin "pycodestyle.python_3000_backticks".
flake8.plugins.manager    MainProcess     67 DEBUG    Loaded Plugin(name="pycodestyle.python_3000_has_key", entry_point="pycodestyle:python_3000_has_key") for plugin "pycodestyle.python_3000_has_key".
flake8.plugins.manager    MainProcess     67 DEBUG    Loaded Plugin(name="pycodestyle.python_3000_invalid_escape_sequence", entry_point="pycodestyle:python_3000_invalid_escape_sequence") for plugin "pycodestyle.python_3000_invalid_escape_sequence".
flake8.plugins.manager    MainProcess     67 DEBUG    Loaded Plugin(name="pycodestyle.python_3000_not_equal", entry_point="pycodestyle:python_3000_not_equal") for plugin "pycodestyle.python_3000_not_equal".
flake8.plugins.manager    MainProcess     67 DEBUG    Loaded Plugin(name="pycodestyle.python_3000_raise_comma", entry_point="pycodestyle:python_3000_raise_comma") for plugin "pycodestyle.python_3000_raise_comma".
flake8.plugins.manager    MainProcess     67 DEBUG    Loaded Plugin(name="pycodestyle.tabs_obsolete", entry_point="pycodestyle:tabs_obsolete") for plugin "pycodestyle.tabs_obsolete".
flake8.plugins.manager    MainProcess     67 DEBUG    Loaded Plugin(name="pycodestyle.tabs_or_spaces", entry_point="pycodestyle:tabs_or_spaces") for plugin "pycodestyle.tabs_or_spaces".
flake8.plugins.manager    MainProcess     67 DEBUG    Loaded Plugin(name="pycodestyle.trailing_blank_lines", entry_point="pycodestyle:trailing_blank_lines") for plugin "pycodestyle.trailing_blank_lines".
flake8.plugins.manager    MainProcess     67 DEBUG    Loaded Plugin(name="pycodestyle.trailing_whitespace", entry_point="pycodestyle:trailing_whitespace") for plugin "pycodestyle.trailing_whitespace".
flake8.plugins.manager    MainProcess     68 DEBUG    Loaded Plugin(name="pycodestyle.whitespace_around_comma", entry_point="pycodestyle:whitespace_around_comma") for plugin "pycodestyle.whitespace_around_comma".
flake8.plugins.manager    MainProcess     68 DEBUG    Loaded Plugin(name="pycodestyle.whitespace_around_keywords", entry_point="pycodestyle:whitespace_around_keywords") for plugin "pycodestyle.whitespace_around_keywords".
flake8.plugins.manager    MainProcess     68 DEBUG    Loaded Plugin(name="pycodestyle.whitespace_around_named_parameter_equals", entry_point="pycodestyle:whitespace_around_named_parameter_equals") for plugin "pycodestyle.whitespace_around_named_parameter_equals".
flake8.plugins.manager    MainProcess     68 DEBUG    Loaded Plugin(name="pycodestyle.whitespace_around_operator", entry_point="pycodestyle:whitespace_around_operator") for plugin "pycodestyle.whitespace_around_operator".
flake8.plugins.manager    MainProcess     68 DEBUG    Loaded Plugin(name="pycodestyle.whitespace_before_comment", entry_point="pycodestyle:whitespace_before_comment") for plugin "pycodestyle.whitespace_before_comment".
flake8.plugins.manager    MainProcess     68 DEBUG    Loaded Plugin(name="pycodestyle.whitespace_before_parameters", entry_point="pycodestyle:whitespace_before_parameters") for plugin "pycodestyle.whitespace_before_parameters".
flake8.plugins.manager    MainProcess     68 INFO     Loading entry-points for "flake8.report".
flake8.plugins.manager    MainProcess     77 DEBUG    Loaded Plugin(name="default", entry_point="flake8.formatting.default:Default") for plugin "default".
flake8.plugins.manager    MainProcess     77 DEBUG    Loaded Plugin(name="pylint", entry_point="flake8.formatting.default:Pylint") for plugin "pylint".
flake8.plugins.manager    MainProcess     77 DEBUG    Loaded Plugin(name="quiet-filename", entry_point="flake8.formatting.default:FilenameOnly") for plugin "quiet-filename".
flake8.plugins.manager    MainProcess     77 DEBUG    Loaded Plugin(name="quiet-nothing", entry_point="flake8.formatting.default:Nothing") for plugin "quiet-nothing".
flake8.plugins.manager    MainProcess     77 INFO     Loading plugin "C90" from entry-point.
flake8.plugins.manager    MainProcess     81 INFO     Loading plugin "F" from entry-point.
flake8.plugins.manager    MainProcess    111 INFO     Loading plugin "N8" from entry-point.
flake8.plugins.manager    MainProcess    112 INFO     Loading plugin "pycodestyle.ambiguous_identifier" from entry-point.
flake8.plugins.manager    MainProcess    119 INFO     Loading plugin "pycodestyle.bare_except" from entry-point.
flake8.plugins.manager    MainProcess    119 INFO     Loading plugin "pycodestyle.blank_lines" from entry-point.
flake8.plugins.manager    MainProcess    119 INFO     Loading plugin "pycodestyle.break_after_binary_operator" from entry-point.
flake8.plugins.manager    MainProcess    119 INFO     Loading plugin "pycodestyle.break_before_binary_operator" from entry-point.
flake8.plugins.manager    MainProcess    119 INFO     Loading plugin "pycodestyle.comparison_negative" from entry-point.
flake8.plugins.manager    MainProcess    120 INFO     Loading plugin "pycodestyle.comparison_to_singleton" from entry-point.
flake8.plugins.manager    MainProcess    120 INFO     Loading plugin "pycodestyle.comparison_type" from entry-point.
flake8.plugins.manager    MainProcess    120 INFO     Loading plugin "pycodestyle.compound_statements" from entry-point.
flake8.plugins.manager    MainProcess    120 INFO     Loading plugin "pycodestyle.continued_indentation" from entry-point.
flake8.plugins.manager    MainProcess    120 INFO     Loading plugin "pycodestyle.explicit_line_join" from entry-point.
flake8.plugins.manager    MainProcess    120 INFO     Loading plugin "pycodestyle.extraneous_whitespace" from entry-point.
flake8.plugins.manager    MainProcess    120 INFO     Loading plugin "pycodestyle.imports_on_separate_lines" from entry-point.
flake8.plugins.manager    MainProcess    120 INFO     Loading plugin "pycodestyle.indentation" from entry-point.
flake8.plugins.manager    MainProcess    120 INFO     Loading plugin "pycodestyle.maximum_doc_length" from entry-point.
flake8.plugins.manager    MainProcess    120 INFO     Loading plugin "pycodestyle.maximum_line_length" from entry-point.
flake8.plugins.manager    MainProcess    120 INFO     Loading plugin "pycodestyle.missing_whitespace" from entry-point.
flake8.plugins.manager    MainProcess    120 INFO     Loading plugin "pycodestyle.missing_whitespace_after_import_keyword" from entry-point.
flake8.plugins.manager    MainProcess    120 INFO     Loading plugin "pycodestyle.missing_whitespace_around_operator" from entry-point.
flake8.plugins.manager    MainProcess    120 INFO     Loading plugin "pycodestyle.module_imports_on_top_of_file" from entry-point.
flake8.plugins.manager    MainProcess    120 INFO     Loading plugin "pycodestyle.python_3000_async_await_keywords" from entry-point.
flake8.plugins.manager    MainProcess    121 INFO     Loading plugin "pycodestyle.python_3000_backticks" from entry-point.
flake8.plugins.manager    MainProcess    121 INFO     Loading plugin "pycodestyle.python_3000_has_key" from entry-point.
flake8.plugins.manager    MainProcess    121 INFO     Loading plugin "pycodestyle.python_3000_invalid_escape_sequence" from entry-point.
flake8.plugins.manager    MainProcess    121 INFO     Loading plugin "pycodestyle.python_3000_not_equal" from entry-point.
flake8.plugins.manager    MainProcess    121 INFO     Loading plugin "pycodestyle.python_3000_raise_comma" from entry-point.
flake8.plugins.manager    MainProcess    121 INFO     Loading plugin "pycodestyle.tabs_obsolete" from entry-point.
flake8.plugins.manager    MainProcess    121 INFO     Loading plugin "pycodestyle.tabs_or_spaces" from entry-point.
flake8.plugins.manager    MainProcess    121 INFO     Loading plugin "pycodestyle.trailing_blank_lines" from entry-point.
flake8.plugins.manager    MainProcess    121 INFO     Loading plugin "pycodestyle.trailing_whitespace" from entry-point.
flake8.plugins.manager    MainProcess    121 INFO     Loading plugin "pycodestyle.whitespace_around_comma" from entry-point.
flake8.plugins.manager    MainProcess    121 INFO     Loading plugin "pycodestyle.whitespace_around_keywords" from entry-point.
flake8.plugins.manager    MainProcess    121 INFO     Loading plugin "pycodestyle.whitespace_around_named_parameter_equals" from entry-point.
flake8.plugins.manager    MainProcess    121 INFO     Loading plugin "pycodestyle.whitespace_around_operator" from entry-point.
flake8.plugins.manager    MainProcess    121 INFO     Loading plugin "pycodestyle.whitespace_before_comment" from entry-point.
flake8.plugins.manager    MainProcess    121 INFO     Loading plugin "pycodestyle.whitespace_before_parameters" from entry-point.
flake8.plugins.manager    MainProcess    122 INFO     Loading plugin "default" from entry-point.
flake8.plugins.manager    MainProcess    122 INFO     Loading plugin "pylint" from entry-point.
flake8.plugins.manager    MainProcess    122 INFO     Loading plugin "quiet-filename" from entry-point.
flake8.plugins.manager    MainProcess    122 INFO     Loading plugin "quiet-nothing" from entry-point.
flake8.plugins.manager    MainProcess    122 DEBUG    Registering options from plugin "C90" on OptionManager <flake8.options.manager.OptionManager object at 0x7fced4805670>
flake8.options.manager    MainProcess    122 WARNING  option --max-complexity: please update from optparse string `type=` to argparse callable `type=` -- this will be an error in the future
flake8.options.manager    MainProcess    122 DEBUG    Registered option "Option(--max-complexity, action='store', default=-1, type=<class 'int'>, help='McCabe complexity threshold')".
flake8.options.manager    MainProcess    122 DEBUG    Removing ['C90'] from the default ignore list
flake8.options.manager    MainProcess    123 DEBUG    Attempted to remove C90 from default ignore but it was not a member of the list.
flake8.options.manager    MainProcess    123 DEBUG    Extending default select list with ['C90']
flake8.plugins.manager    MainProcess    123 DEBUG    Registering options from plugin "F" on OptionManager <flake8.options.manager.OptionManager object at 0x7fced4805670>
flake8.options.manager    MainProcess    123 DEBUG    Registered option "Option(--builtins, type=functools.partial(<function _flake8_normalize at 0x7fced47f3dc0>, comma_separated_list=True, normalize_paths=False), help='define more built-ins, comma separated')".
flake8.options.manager    MainProcess    123 DEBUG    Registered option "Option(--doctests, action='store_true', default=False, help='also check syntax of the doctests')".
flake8.options.manager    MainProcess    123 DEBUG    Registered option "Option(--include-in-doctest, default='', type=functools.partial(<function _flake8_normalize at 0x7fced47f3dc0>, comma_separated_list=True, normalize_paths=True), dest='include_in_doctest', help='Run doctests only on these files')".
flake8.options.manager    MainProcess    123 DEBUG    Registered option "Option(--exclude-from-doctest, default='', type=functools.partial(<function _flake8_normalize at 0x7fced47f3dc0>, comma_separated_list=True, normalize_paths=True), dest='exclude_from_doctest', help='Skip these files when running doctests')".
flake8.options.manager    MainProcess    123 DEBUG    Removing ['F'] from the default ignore list
flake8.options.manager    MainProcess    123 DEBUG    Attempted to remove F from default ignore but it was not a member of the list.
flake8.options.manager    MainProcess    123 DEBUG    Extending default select list with ['F']
flake8.plugins.manager    MainProcess    123 DEBUG    Registering options from plugin "N8" on OptionManager <flake8.options.manager.OptionManager object at 0x7fced4805670>
flake8.options.manager    MainProcess    123 WARNING  option --ignore-names: please update `help=` text to use %(default)s instead of %default -- this will be an error in the future
flake8.options.manager    MainProcess    123 WARNING  option --ignore-names: please update from optparse string `type=` to argparse callable `type=` -- this will be an error in the future
flake8.options.manager    MainProcess    123 DEBUG    Registered option "Option(--ignore-names, action='store', default=['setUp', 'tearDown', 'setUpClass', 'tearDownClass', 'setUpTestData', 'failureException', 'longMessage', 'maxDiff'], type=functools.partial(<function _flake8_normalize at 0x7fced47f3dc0>, comma_separated_list=True, normalize_paths=False), help='List of names or glob patterns the pep8-naming plugin should ignore. (Defaults to %(default)s)')".
flake8.options.manager    MainProcess    123 WARNING  option --classmethod-decorators: please update `help=` text to use %(default)s instead of %default -- this will be an error in the future
flake8.options.manager    MainProcess    123 WARNING  option --classmethod-decorators: please update from optparse string `type=` to argparse callable `type=` -- this will be an error in the future
flake8.options.manager    MainProcess    124 DEBUG    Registered option "Option(--classmethod-decorators, action='store', default=['classmethod'], type=functools.partial(<function _flake8_normalize at 0x7fced47f3dc0>, comma_separated_list=True, normalize_paths=False), help='List of method decorators pep8-naming plugin should consider classmethods (Defaults to %(default)s)')".
flake8.options.manager    MainProcess    124 WARNING  option --staticmethod-decorators: please update `help=` text to use %(default)s instead of %default -- this will be an error in the future
flake8.options.manager    MainProcess    124 WARNING  option --staticmethod-decorators: please update from optparse string `type=` to argparse callable `type=` -- this will be an error in the future
flake8.options.manager    MainProcess    124 DEBUG    Registered option "Option(--staticmethod-decorators, action='store', default=['staticmethod'], type=functools.partial(<function _flake8_normalize at 0x7fced47f3dc0>, comma_separated_list=True, normalize_paths=False), help='List of method decorators pep8-naming plugin should consider staticmethods (Defaults to %(default)s)')".
flake8.options.manager    MainProcess    124 DEBUG    Extending default ignore list with ['N818']
flake8.options.manager    MainProcess    124 DEBUG    Removing ['N8'] from the default ignore list
flake8.options.manager    MainProcess    124 DEBUG    Attempted to remove N8 from default ignore but it was not a member of the list.
flake8.options.manager    MainProcess    124 DEBUG    Extending default select list with ['N8']
flake8.options.config     MainProcess    128 DEBUG    User configuration files have no flake8 section
flake8.options.config     MainProcess    129 DEBUG    Found local configuration files: ['/home/eloy/version/git/pep8-naming/setup.cfg', '/home/eloy/version/git/pep8-naming/tox.ini']
flake8.options.config     MainProcess    129 DEBUG    Local configuration files have no flake8 section
flake8.options.aggregator MainProcess    129 DEBUG    Extended default ignore list: ['N818']
flake8.options.aggregator MainProcess    129 DEBUG    Merged default ignore list: ['W503', 'E704', 'E126', 'E24', 'E226', 'W504', 'E123', 'N818', 'E121']
flake8.options.aggregator MainProcess    129 DEBUG    Extended default select list: ['C90', 'F', 'N8']
flake8.plugins.manager    MainProcess    129 DEBUG    Providing options to plugin "C90".
flake8.plugins.manager    MainProcess    129 DEBUG    Providing options to plugin "F".
flake8.plugins.manager    MainProcess    129 DEBUG    Providing options to plugin "N8".
flake8.style_guide        MainProcess    130 DEBUG    Deciding if "N801" should be reported
flake8.style_guide        MainProcess    130 DEBUG    The user configured "N801" to be "Ignored.Implicitly", "Selected.Implicitly"
flake8.style_guide        MainProcess    130 DEBUG    "N801" will be "Decision.Ignored"
flake8.style_guide        MainProcess    130 DEBUG    Deciding if "N818" should be reported
flake8.style_guide        MainProcess    130 DEBUG    The user configured "N818" to be "Selected.Explicitly", "Ignored.Explicitly"
flake8.style_guide        MainProcess    130 DEBUG    "N818" will be "Decision.Ignored"
flake8.style_guide        MainProcess    130 DEBUG    Deciding if "N802" should be reported
flake8.style_guide        MainProcess    130 DEBUG    The user configured "N802" to be "Ignored.Implicitly", "Selected.Implicitly"
flake8.style_guide        MainProcess    130 DEBUG    "N802" will be "Decision.Ignored"
flake8.style_guide        MainProcess    130 DEBUG    Deciding if "N807" should be reported
flake8.style_guide        MainProcess    130 DEBUG    The user configured "N807" to be "Ignored.Implicitly", "Selected.Implicitly"
flake8.style_guide        MainProcess    130 DEBUG    "N807" will be "Decision.Ignored"
flake8.style_guide        MainProcess    130 DEBUG    Deciding if "N803" should be reported
flake8.style_guide        MainProcess    130 DEBUG    The user configured "N803" to be "Ignored.Implicitly", "Selected.Implicitly"
flake8.style_guide        MainProcess    130 DEBUG    "N803" will be "Decision.Ignored"
flake8.style_guide        MainProcess    130 DEBUG    Deciding if "N804" should be reported
flake8.style_guide        MainProcess    130 DEBUG    The user configured "N804" to be "Ignored.Implicitly", "Selected.Implicitly"
flake8.style_guide        MainProcess    130 DEBUG    "N804" will be "Decision.Ignored"
flake8.style_guide        MainProcess    130 DEBUG    Deciding if "N805" should be reported
flake8.style_guide        MainProcess    130 DEBUG    The user configured "N805" to be "Ignored.Implicitly", "Selected.Implicitly"
flake8.style_guide        MainProcess    130 DEBUG    "N805" will be "Decision.Ignored"
flake8.style_guide        MainProcess    130 DEBUG    Deciding if "N811" should be reported
flake8.style_guide        MainProcess    130 DEBUG    The user configured "N811" to be "Ignored.Implicitly", "Selected.Implicitly"
flake8.style_guide        MainProcess    130 DEBUG    "N811" will be "Decision.Ignored"
flake8.style_guide        MainProcess    131 DEBUG    Deciding if "N812" should be reported
flake8.style_guide        MainProcess    131 DEBUG    The user configured "N812" to be "Ignored.Implicitly", "Selected.Implicitly"
flake8.style_guide        MainProcess    131 DEBUG    "N812" will be "Decision.Ignored"
flake8.style_guide        MainProcess    131 DEBUG    Deciding if "N813" should be reported
flake8.style_guide        MainProcess    131 DEBUG    The user configured "N813" to be "Ignored.Implicitly", "Selected.Implicitly"
flake8.style_guide        MainProcess    131 DEBUG    "N813" will be "Decision.Ignored"
flake8.style_guide        MainProcess    131 DEBUG    Deciding if "N814" should be reported
flake8.style_guide        MainProcess    131 DEBUG    The user configured "N814" to be "Ignored.Implicitly", "Selected.Implicitly"
flake8.style_guide        MainProcess    131 DEBUG    "N814" will be "Decision.Ignored"
flake8.style_guide        MainProcess    131 DEBUG    Deciding if "N817" should be reported
flake8.style_guide        MainProcess    131 DEBUG    The user configured "N817" to be "Ignored.Implicitly", "Selected.Implicitly"
flake8.style_guide        MainProcess    131 DEBUG    "N817" will be "Decision.Ignored"
flake8.style_guide        MainProcess    131 DEBUG    Deciding if "N806" should be reported
flake8.style_guide        MainProcess    131 DEBUG    The user configured "N806" to be "Ignored.Implicitly", "Selected.Implicitly"
flake8.style_guide        MainProcess    131 DEBUG    "N806" will be "Decision.Ignored"
flake8.style_guide        MainProcess    131 DEBUG    Deciding if "N815" should be reported
flake8.style_guide        MainProcess    131 DEBUG    The user configured "N815" to be "Ignored.Implicitly", "Selected.Implicitly"
flake8.style_guide        MainProcess    131 DEBUG    "N815" will be "Decision.Ignored"
flake8.style_guide        MainProcess    131 DEBUG    Deciding if "N816" should be reported
flake8.style_guide        MainProcess    131 DEBUG    The user configured "N816" to be "Ignored.Implicitly", "Selected.Implicitly"
flake8.style_guide        MainProcess    131 DEBUG    "N816" will be "Decision.Ignored"
flake8.plugins.manager    MainProcess    132 DEBUG    Retrieving plugin for "default".
flake8.plugins.manager    MainProcess    132 DEBUG    Checking for "default" in plugin type manager.
flake8.plugins.manager    MainProcess    132 DEBUG    Retrieving plugin for "default".
flake8.checker            MainProcess    132 INFO     Making checkers
flake8.checker            MainProcess    135 DEBUG    "/home/eloy/version/git/pep8-naming/tests.py" has not been excluded
flake8.checker            MainProcess    135 INFO     Checking 1 files
flake8.checker            MainProcess    142 DEBUG    Running {'name': 'pycodestyle.maximum_line_length', 'parameters': OrderedDict([('physical_line', True), ('max_line_length', True), ('multiline', True), ('line_number', True), ('noqa', True)]), 'parameter_names': ['physical_line', 'max_line_length', 'multiline', 'line_number', 'noqa'], 'plugin': <function maximum_line_length at 0x7fced4160af0>, 'plugin_name': 'pycodestyle'} with {'physical_line': 'class Something(Exception):\n'}
flake8.checker            MainProcess    143 DEBUG    Running {'name': 'pycodestyle.tabs_obsolete', 'parameters': OrderedDict([('physical_line', True)]), 'parameter_names': ['physical_line'], 'plugin': <function tabs_obsolete at 0x7fced4160940>, 'plugin_name': 'pycodestyle'} with {'physical_line': 'class Something(Exception):\n'}
flake8.checker            MainProcess    143 DEBUG    Running {'name': 'pycodestyle.tabs_or_spaces', 'parameters': OrderedDict([('physical_line', True), ('indent_char', True)]), 'parameter_names': ['physical_line', 'indent_char'], 'plugin': <function tabs_or_spaces at 0x7fced41608b0>, 'plugin_name': 'pycodestyle'} with {'physical_line': 'class Something(Exception):\n'}
flake8.checker            MainProcess    143 DEBUG    Running {'name': 'pycodestyle.trailing_blank_lines', 'parameters': OrderedDict([('physical_line', True), ('lines', True), ('line_number', True), ('total_lines', True)]), 'parameter_names': ['physical_line', 'lines', 'line_number', 'total_lines'], 'plugin': <function trailing_blank_lines at 0x7fced4160a60>, 'plugin_name': 'pycodestyle'} with {'physical_line': 'class Something(Exception):\n'}
flake8.checker            MainProcess    143 DEBUG    Running {'name': 'pycodestyle.trailing_whitespace', 'parameters': OrderedDict([('physical_line', True)]), 'parameter_names': ['physical_line'], 'plugin': <function trailing_whitespace at 0x7fced41609d0>, 'plugin_name': 'pycodestyle'} with {'physical_line': 'class Something(Exception):\n'}
flake8.checker            MainProcess    143 DEBUG    Logical line: "class Something(Exception):"
flake8.checker            MainProcess    143 DEBUG    Running {'name': 'pycodestyle.ambiguous_identifier', 'parameters': OrderedDict([('logical_line', True), ('tokens', True)]), 'parameter_names': ['logical_line', 'tokens'], 'plugin': <function ambiguous_identifier at 0x7fced40f6a60>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    143 DEBUG    Running {'name': 'pycodestyle.bare_except', 'parameters': OrderedDict([('logical_line', True), ('noqa', True)]), 'parameter_names': ['logical_line', 'noqa'], 'plugin': <function bare_except at 0x7fced40f69d0>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    143 DEBUG    Running {'name': 'pycodestyle.blank_lines', 'parameters': OrderedDict([('logical_line', True), ('blank_lines', True), ('indent_level', True), ('line_number', True), ('blank_before', True), ('previous_logical', True), ('previous_unindented_logical_line', True), ('previous_indent_level', True), ('lines', True)]), 'parameter_names': ['logical_line', 'blank_lines', 'indent_level', 'line_number', 'blank_before', 'previous_logical', 'previous_unindented_logical_line', 'previous_indent_level', 'lines'], 'plugin': <function blank_lines at 0x7fced4160c10>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    143 DEBUG    Running {'name': 'pycodestyle.break_after_binary_operator', 'parameters': OrderedDict([('logical_line', True), ('tokens', True)]), 'parameter_names': ['logical_line', 'tokens'], 'plugin': <function break_after_binary_operator at 0x7fced40f6790>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    143 DEBUG    Running {'name': 'pycodestyle.break_before_binary_operator', 'parameters': OrderedDict([('logical_line', True), ('tokens', True)]), 'parameter_names': ['logical_line', 'tokens'], 'plugin': <function break_before_binary_operator at 0x7fced40f6700>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    143 DEBUG    Running {'name': 'pycodestyle.comparison_negative', 'parameters': OrderedDict([('logical_line', True)]), 'parameter_names': ['logical_line'], 'plugin': <function comparison_negative at 0x7fced40f68b0>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    143 DEBUG    Running {'name': 'pycodestyle.comparison_to_singleton', 'parameters': OrderedDict([('logical_line', True), ('noqa', True)]), 'parameter_names': ['logical_line', 'noqa'], 'plugin': <function comparison_to_singleton at 0x7fced40f6820>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    144 DEBUG    Running {'name': 'pycodestyle.comparison_type', 'parameters': OrderedDict([('logical_line', True), ('noqa', True)]), 'parameter_names': ['logical_line', 'noqa'], 'plugin': <function comparison_type at 0x7fced40f6940>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    144 DEBUG    Running {'name': 'pycodestyle.compound_statements', 'parameters': OrderedDict([('logical_line', True)]), 'parameter_names': ['logical_line'], 'plugin': <function compound_statements at 0x7fced40f64c0>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    144 DEBUG    Running {'name': 'pycodestyle.continued_indentation', 'parameters': OrderedDict([('logical_line', True), ('tokens', True), ('indent_level', True), ('hang_closing', True), ('indent_char', True), ('indent_size', True), ('indent_size_str', True), ('noqa', True), ('verbose', True)]), 'parameter_names': ['logical_line', 'tokens', 'indent_level', 'hang_closing', 'indent_char', 'indent_size', 'indent_size_str', 'noqa', 'verbose'], 'plugin': <function continued_indentation at 0x7fced4160f70>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    144 DEBUG    Running {'name': 'pycodestyle.explicit_line_join', 'parameters': OrderedDict([('logical_line', True), ('tokens', True)]), 'parameter_names': ['logical_line', 'tokens'], 'plugin': <function explicit_line_join at 0x7fced40f6550>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    144 DEBUG    Running {'name': 'pycodestyle.extraneous_whitespace', 'parameters': OrderedDict([('logical_line', True)]), 'parameter_names': ['logical_line'], 'plugin': <function extraneous_whitespace at 0x7fced4160ca0>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    144 DEBUG    Running {'name': 'pycodestyle.imports_on_separate_lines', 'parameters': OrderedDict([('logical_line', True)]), 'parameter_names': ['logical_line'], 'plugin': <function imports_on_separate_lines at 0x7fced40f63a0>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    144 DEBUG    Running {'name': 'pycodestyle.indentation', 'parameters': OrderedDict([('logical_line', True), ('previous_logical', True), ('indent_char', True), ('indent_level', True), ('previous_indent_level', True), ('indent_size', True), ('indent_size_str', True)]), 'parameter_names': ['logical_line', 'previous_logical', 'indent_char', 'indent_level', 'previous_indent_level', 'indent_size', 'indent_size_str'], 'plugin': <function indentation at 0x7fced4160ee0>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    144 DEBUG    Running {'name': 'pycodestyle.maximum_doc_length', 'parameters': OrderedDict([('logical_line', True), ('max_doc_length', True), ('noqa', True), ('tokens', True)]), 'parameter_names': ['logical_line', 'max_doc_length', 'noqa', 'tokens'], 'plugin': <function maximum_doc_length at 0x7fced40f6e50>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    144 DEBUG    Running {'name': 'pycodestyle.missing_whitespace', 'parameters': OrderedDict([('logical_line', True)]), 'parameter_names': ['logical_line'], 'plugin': <function missing_whitespace at 0x7fced4160e50>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    144 DEBUG    Running {'name': 'pycodestyle.missing_whitespace_after_import_keyword', 'parameters': OrderedDict([('logical_line', True)]), 'parameter_names': ['logical_line'], 'plugin': <function missing_whitespace_after_import_keyword at 0x7fced4160dc0>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    144 DEBUG    Running {'name': 'pycodestyle.missing_whitespace_around_operator', 'parameters': OrderedDict([('logical_line', True), ('tokens', True)]), 'parameter_names': ['logical_line', 'tokens'], 'plugin': <function missing_whitespace_around_operator at 0x7fced40f6160>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    144 DEBUG    Running {'name': 'pycodestyle.module_imports_on_top_of_file', 'parameters': OrderedDict([('logical_line', True), ('indent_level', True), ('checker_state', True), ('noqa', True)]), 'parameter_names': ['logical_line', 'indent_level', 'checker_state', 'noqa'], 'plugin': <function module_imports_on_top_of_file at 0x7fced40f6430>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    144 DEBUG    Running {'name': 'pycodestyle.python_3000_async_await_keywords', 'parameters': OrderedDict([('logical_line', True), ('tokens', True)]), 'parameter_names': ['logical_line', 'tokens'], 'plugin': <function python_3000_async_await_keywords at 0x7fced40f6dc0>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    144 DEBUG    Running {'name': 'pycodestyle.python_3000_backticks', 'parameters': OrderedDict([('logical_line', True)]), 'parameter_names': ['logical_line'], 'plugin': <function python_3000_backticks at 0x7fced40f6ca0>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    145 DEBUG    Running {'name': 'pycodestyle.python_3000_has_key', 'parameters': OrderedDict([('logical_line', True), ('noqa', True)]), 'parameter_names': ['logical_line', 'noqa'], 'plugin': <function python_3000_has_key at 0x7fced40f6af0>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    145 DEBUG    Running {'name': 'pycodestyle.python_3000_invalid_escape_sequence', 'parameters': OrderedDict([('logical_line', True), ('tokens', True), ('noqa', True)]), 'parameter_names': ['logical_line', 'tokens', 'noqa'], 'plugin': <function python_3000_invalid_escape_sequence at 0x7fced40f6d30>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    145 DEBUG    Running {'name': 'pycodestyle.python_3000_not_equal', 'parameters': OrderedDict([('logical_line', True)]), 'parameter_names': ['logical_line'], 'plugin': <function python_3000_not_equal at 0x7fced40f6c10>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    145 DEBUG    Running {'name': 'pycodestyle.python_3000_raise_comma', 'parameters': OrderedDict([('logical_line', True)]), 'parameter_names': ['logical_line'], 'plugin': <function python_3000_raise_comma at 0x7fced40f6b80>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    145 DEBUG    Running {'name': 'pycodestyle.whitespace_around_comma', 'parameters': OrderedDict([('logical_line', True)]), 'parameter_names': ['logical_line'], 'plugin': <function whitespace_around_comma at 0x7fced40f61f0>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    145 DEBUG    Running {'name': 'pycodestyle.whitespace_around_keywords', 'parameters': OrderedDict([('logical_line', True)]), 'parameter_names': ['logical_line'], 'plugin': <function whitespace_around_keywords at 0x7fced4160d30>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    145 DEBUG    Running {'name': 'pycodestyle.whitespace_around_named_parameter_equals', 'parameters': OrderedDict([('logical_line', True), ('tokens', True)]), 'parameter_names': ['logical_line', 'tokens'], 'plugin': <function whitespace_around_named_parameter_equals at 0x7fced40f6280>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    145 DEBUG    Running {'name': 'pycodestyle.whitespace_around_operator', 'parameters': OrderedDict([('logical_line', True)]), 'parameter_names': ['logical_line'], 'plugin': <function whitespace_around_operator at 0x7fced40f60d0>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    145 DEBUG    Running {'name': 'pycodestyle.whitespace_before_comment', 'parameters': OrderedDict([('logical_line', True), ('tokens', True)]), 'parameter_names': ['logical_line', 'tokens'], 'plugin': <function whitespace_before_comment at 0x7fced40f6310>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    145 DEBUG    Running {'name': 'pycodestyle.whitespace_before_parameters', 'parameters': OrderedDict([('logical_line', True), ('tokens', True)]), 'parameter_names': ['logical_line', 'tokens'], 'plugin': <function whitespace_before_parameters at 0x7fced40f6040>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'class Something(Exception):'}
flake8.checker            MainProcess    145 DEBUG    Running {'name': 'pycodestyle.maximum_line_length', 'parameters': OrderedDict([('physical_line', True), ('max_line_length', True), ('multiline', True), ('line_number', True), ('noqa', True)]), 'parameter_names': ['physical_line', 'max_line_length', 'multiline', 'line_number', 'noqa'], 'plugin': <function maximum_line_length at 0x7fced4160af0>, 'plugin_name': 'pycodestyle'} with {'physical_line': '    pass\n'}
flake8.checker            MainProcess    145 DEBUG    Running {'name': 'pycodestyle.tabs_obsolete', 'parameters': OrderedDict([('physical_line', True)]), 'parameter_names': ['physical_line'], 'plugin': <function tabs_obsolete at 0x7fced4160940>, 'plugin_name': 'pycodestyle'} with {'physical_line': '    pass\n'}
flake8.checker            MainProcess    145 DEBUG    Running {'name': 'pycodestyle.tabs_or_spaces', 'parameters': OrderedDict([('physical_line', True), ('indent_char', True)]), 'parameter_names': ['physical_line', 'indent_char'], 'plugin': <function tabs_or_spaces at 0x7fced41608b0>, 'plugin_name': 'pycodestyle'} with {'physical_line': '    pass\n'}
flake8.checker            MainProcess    145 DEBUG    Running {'name': 'pycodestyle.trailing_blank_lines', 'parameters': OrderedDict([('physical_line', True), ('lines', True), ('line_number', True), ('total_lines', True)]), 'parameter_names': ['physical_line', 'lines', 'line_number', 'total_lines'], 'plugin': <function trailing_blank_lines at 0x7fced4160a60>, 'plugin_name': 'pycodestyle'} with {'physical_line': '    pass\n'}
flake8.checker            MainProcess    146 DEBUG    Running {'name': 'pycodestyle.trailing_whitespace', 'parameters': OrderedDict([('physical_line', True)]), 'parameter_names': ['physical_line'], 'plugin': <function trailing_whitespace at 0x7fced41609d0>, 'plugin_name': 'pycodestyle'} with {'physical_line': '    pass\n'}
flake8.checker            MainProcess    146 DEBUG    Logical line: "pass"
flake8.checker            MainProcess    146 DEBUG    Running {'name': 'pycodestyle.ambiguous_identifier', 'parameters': OrderedDict([('logical_line', True), ('tokens', True)]), 'parameter_names': ['logical_line', 'tokens'], 'plugin': <function ambiguous_identifier at 0x7fced40f6a60>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    146 DEBUG    Running {'name': 'pycodestyle.bare_except', 'parameters': OrderedDict([('logical_line', True), ('noqa', True)]), 'parameter_names': ['logical_line', 'noqa'], 'plugin': <function bare_except at 0x7fced40f69d0>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    146 DEBUG    Running {'name': 'pycodestyle.blank_lines', 'parameters': OrderedDict([('logical_line', True), ('blank_lines', True), ('indent_level', True), ('line_number', True), ('blank_before', True), ('previous_logical', True), ('previous_unindented_logical_line', True), ('previous_indent_level', True), ('lines', True)]), 'parameter_names': ['logical_line', 'blank_lines', 'indent_level', 'line_number', 'blank_before', 'previous_logical', 'previous_unindented_logical_line', 'previous_indent_level', 'lines'], 'plugin': <function blank_lines at 0x7fced4160c10>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    146 DEBUG    Running {'name': 'pycodestyle.break_after_binary_operator', 'parameters': OrderedDict([('logical_line', True), ('tokens', True)]), 'parameter_names': ['logical_line', 'tokens'], 'plugin': <function break_after_binary_operator at 0x7fced40f6790>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    146 DEBUG    Running {'name': 'pycodestyle.break_before_binary_operator', 'parameters': OrderedDict([('logical_line', True), ('tokens', True)]), 'parameter_names': ['logical_line', 'tokens'], 'plugin': <function break_before_binary_operator at 0x7fced40f6700>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    146 DEBUG    Running {'name': 'pycodestyle.comparison_negative', 'parameters': OrderedDict([('logical_line', True)]), 'parameter_names': ['logical_line'], 'plugin': <function comparison_negative at 0x7fced40f68b0>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    146 DEBUG    Running {'name': 'pycodestyle.comparison_to_singleton', 'parameters': OrderedDict([('logical_line', True), ('noqa', True)]), 'parameter_names': ['logical_line', 'noqa'], 'plugin': <function comparison_to_singleton at 0x7fced40f6820>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    146 DEBUG    Running {'name': 'pycodestyle.comparison_type', 'parameters': OrderedDict([('logical_line', True), ('noqa', True)]), 'parameter_names': ['logical_line', 'noqa'], 'plugin': <function comparison_type at 0x7fced40f6940>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    146 DEBUG    Running {'name': 'pycodestyle.compound_statements', 'parameters': OrderedDict([('logical_line', True)]), 'parameter_names': ['logical_line'], 'plugin': <function compound_statements at 0x7fced40f64c0>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    146 DEBUG    Running {'name': 'pycodestyle.continued_indentation', 'parameters': OrderedDict([('logical_line', True), ('tokens', True), ('indent_level', True), ('hang_closing', True), ('indent_char', True), ('indent_size', True), ('indent_size_str', True), ('noqa', True), ('verbose', True)]), 'parameter_names': ['logical_line', 'tokens', 'indent_level', 'hang_closing', 'indent_char', 'indent_size', 'indent_size_str', 'noqa', 'verbose'], 'plugin': <function continued_indentation at 0x7fced4160f70>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    146 DEBUG    Running {'name': 'pycodestyle.explicit_line_join', 'parameters': OrderedDict([('logical_line', True), ('tokens', True)]), 'parameter_names': ['logical_line', 'tokens'], 'plugin': <function explicit_line_join at 0x7fced40f6550>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    146 DEBUG    Running {'name': 'pycodestyle.extraneous_whitespace', 'parameters': OrderedDict([('logical_line', True)]), 'parameter_names': ['logical_line'], 'plugin': <function extraneous_whitespace at 0x7fced4160ca0>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    146 DEBUG    Running {'name': 'pycodestyle.imports_on_separate_lines', 'parameters': OrderedDict([('logical_line', True)]), 'parameter_names': ['logical_line'], 'plugin': <function imports_on_separate_lines at 0x7fced40f63a0>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    146 DEBUG    Running {'name': 'pycodestyle.indentation', 'parameters': OrderedDict([('logical_line', True), ('previous_logical', True), ('indent_char', True), ('indent_level', True), ('previous_indent_level', True), ('indent_size', True), ('indent_size_str', True)]), 'parameter_names': ['logical_line', 'previous_logical', 'indent_char', 'indent_level', 'previous_indent_level', 'indent_size', 'indent_size_str'], 'plugin': <function indentation at 0x7fced4160ee0>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    147 DEBUG    Running {'name': 'pycodestyle.maximum_doc_length', 'parameters': OrderedDict([('logical_line', True), ('max_doc_length', True), ('noqa', True), ('tokens', True)]), 'parameter_names': ['logical_line', 'max_doc_length', 'noqa', 'tokens'], 'plugin': <function maximum_doc_length at 0x7fced40f6e50>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    147 DEBUG    Running {'name': 'pycodestyle.missing_whitespace', 'parameters': OrderedDict([('logical_line', True)]), 'parameter_names': ['logical_line'], 'plugin': <function missing_whitespace at 0x7fced4160e50>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    147 DEBUG    Running {'name': 'pycodestyle.missing_whitespace_after_import_keyword', 'parameters': OrderedDict([('logical_line', True)]), 'parameter_names': ['logical_line'], 'plugin': <function missing_whitespace_after_import_keyword at 0x7fced4160dc0>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    147 DEBUG    Running {'name': 'pycodestyle.missing_whitespace_around_operator', 'parameters': OrderedDict([('logical_line', True), ('tokens', True)]), 'parameter_names': ['logical_line', 'tokens'], 'plugin': <function missing_whitespace_around_operator at 0x7fced40f6160>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    147 DEBUG    Running {'name': 'pycodestyle.module_imports_on_top_of_file', 'parameters': OrderedDict([('logical_line', True), ('indent_level', True), ('checker_state', True), ('noqa', True)]), 'parameter_names': ['logical_line', 'indent_level', 'checker_state', 'noqa'], 'plugin': <function module_imports_on_top_of_file at 0x7fced40f6430>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    147 DEBUG    Running {'name': 'pycodestyle.python_3000_async_await_keywords', 'parameters': OrderedDict([('logical_line', True), ('tokens', True)]), 'parameter_names': ['logical_line', 'tokens'], 'plugin': <function python_3000_async_await_keywords at 0x7fced40f6dc0>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    147 DEBUG    Running {'name': 'pycodestyle.python_3000_backticks', 'parameters': OrderedDict([('logical_line', True)]), 'parameter_names': ['logical_line'], 'plugin': <function python_3000_backticks at 0x7fced40f6ca0>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    147 DEBUG    Running {'name': 'pycodestyle.python_3000_has_key', 'parameters': OrderedDict([('logical_line', True), ('noqa', True)]), 'parameter_names': ['logical_line', 'noqa'], 'plugin': <function python_3000_has_key at 0x7fced40f6af0>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    147 DEBUG    Running {'name': 'pycodestyle.python_3000_invalid_escape_sequence', 'parameters': OrderedDict([('logical_line', True), ('tokens', True), ('noqa', True)]), 'parameter_names': ['logical_line', 'tokens', 'noqa'], 'plugin': <function python_3000_invalid_escape_sequence at 0x7fced40f6d30>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    147 DEBUG    Running {'name': 'pycodestyle.python_3000_not_equal', 'parameters': OrderedDict([('logical_line', True)]), 'parameter_names': ['logical_line'], 'plugin': <function python_3000_not_equal at 0x7fced40f6c10>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    147 DEBUG    Running {'name': 'pycodestyle.python_3000_raise_comma', 'parameters': OrderedDict([('logical_line', True)]), 'parameter_names': ['logical_line'], 'plugin': <function python_3000_raise_comma at 0x7fced40f6b80>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    147 DEBUG    Running {'name': 'pycodestyle.whitespace_around_comma', 'parameters': OrderedDict([('logical_line', True)]), 'parameter_names': ['logical_line'], 'plugin': <function whitespace_around_comma at 0x7fced40f61f0>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    147 DEBUG    Running {'name': 'pycodestyle.whitespace_around_keywords', 'parameters': OrderedDict([('logical_line', True)]), 'parameter_names': ['logical_line'], 'plugin': <function whitespace_around_keywords at 0x7fced4160d30>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    147 DEBUG    Running {'name': 'pycodestyle.whitespace_around_named_parameter_equals', 'parameters': OrderedDict([('logical_line', True), ('tokens', True)]), 'parameter_names': ['logical_line', 'tokens'], 'plugin': <function whitespace_around_named_parameter_equals at 0x7fced40f6280>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    147 DEBUG    Running {'name': 'pycodestyle.whitespace_around_operator', 'parameters': OrderedDict([('logical_line', True)]), 'parameter_names': ['logical_line'], 'plugin': <function whitespace_around_operator at 0x7fced40f60d0>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    147 DEBUG    Running {'name': 'pycodestyle.whitespace_before_comment', 'parameters': OrderedDict([('logical_line', True), ('tokens', True)]), 'parameter_names': ['logical_line', 'tokens'], 'plugin': <function whitespace_before_comment at 0x7fced40f6310>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    147 DEBUG    Running {'name': 'pycodestyle.whitespace_before_parameters', 'parameters': OrderedDict([('logical_line', True), ('tokens', True)]), 'parameter_names': ['logical_line', 'tokens'], 'plugin': <function whitespace_before_parameters at 0x7fced40f6040>, 'plugin_name': 'pycodestyle'} with {'logical_line': 'pass'}
flake8.checker            MainProcess    147 DEBUG    Running {'name': 'C90', 'parameters': OrderedDict([('tree', True), ('filename', True)]), 'parameter_names': ['tree', 'filename'], 'plugin': <class 'mccabe.McCabeChecker'>, 'plugin_name': 'mccabe'} with {'tree': <_ast.Module object at 0x7fced4106940>}
flake8.checker            MainProcess    148 DEBUG    Running {'name': 'F', 'parameters': OrderedDict([('tree', True), ('file_tokens', True), ('filename', True)]), 'parameter_names': ['tree', 'file_tokens', 'filename'], 'plugin': <class 'flake8.plugins.pyflakes.FlakesChecker'>, 'plugin_name': 'pyflakes'} with {'tree': <_ast.Module object at 0x7fced4106940>}
flake8.checker            MainProcess    148 DEBUG    Running {'name': 'N8', 'parameters': OrderedDict([('tree', True), ('filename', True)]), 'parameter_names': ['tree', 'filename'], 'plugin': <class 'pep8ext_naming.NamingChecker'>, 'plugin_name': 'naming'} with {'tree': <_ast.Module object at 0x7fced4106940>}
flake8.main.application   MainProcess    148 INFO     Finished running
flake8.main.application   MainProcess    149 INFO     Reporting errors
flake8.main.application   MainProcess    149 INFO     Found a total of 0 violations and reported 0

@sigmavirus24
Copy link
Member

Oh I think I know what's happening. We have our own DEFAULT_IGNORE list and when we extend default ignore here we're not extending that constant and we need extra logic there because we compare to have some logic that makes the decision logic easier to run through. I'll send a patch to Flake8. Thanks y'all

sigmavirus24 added a commit to PyCQA/flake8 that referenced this pull request Apr 15, 2021
Since Flake8 3.0 we've had the ability for plugins to use
`extend_default_ignore` to register codes they want disabled by default.
This, however, was a permanent disabling unfortunately. Our code didn't
have a way of understanding that this new set of `ignore` codes was
actually the 'default' set for that run. Much like the
extended_select_list, we now attach extended_ignore_list to be able to
confidently determine if the ignore we get in the DecisionEngine is
actually the Default Ignore list and what plugins what us to ignore by
default.

Refs PyCQA/pep8-naming#157
@sigmavirus24
Copy link
Member

PyCQA/flake8#1317 should fix this up for us. We might want to declare a minimum Flake8 version as a result.

sigmavirus24 added a commit to PyCQA/flake8 that referenced this pull request Apr 15, 2021
Since Flake8 3.0 we've had the ability for plugins to use
`extend_default_ignore` to register codes they want disabled by default.
This, however, was a permanent disabling unfortunately. Our code didn't
have a way of understanding that this new set of `ignore` codes was
actually the 'default' set for that run. Much like the
extended_select_list, we now attach extended_ignore_list to be able to
confidently determine if the ignore we get in the DecisionEngine is
actually the Default Ignore list and what plugins what us to ignore by
default.

Refs PyCQA/pep8-naming#157
sigmavirus24 added a commit to PyCQA/flake8 that referenced this pull request Apr 15, 2021
Since Flake8 3.0 we've had the ability for plugins to use
`extend_default_ignore` to register codes they want disabled by default.
This, however, was a permanent disabling unfortunately. Our code didn't
have a way of understanding that this new set of `ignore` codes was
actually the 'default' set for that run. Much like the
extended_select_list, we now attach extended_ignore_list to be able to
confidently determine if the ignore we get in the DecisionEngine is
actually the Default Ignore list and what plugins what us to ignore by
default.

Refs PyCQA/pep8-naming#157
asottile pushed a commit to PyCQA/flake8 that referenced this pull request Apr 16, 2021
Since Flake8 3.0 we've had the ability for plugins to use
`extend_default_ignore` to register codes they want disabled by default.
This, however, was a permanent disabling unfortunately. Our code didn't
have a way of understanding that this new set of `ignore` codes was
actually the 'default' set for that run. Much like the
extended_select_list, we now attach extended_ignore_list to be able to
confidently determine if the ignore we get in the DecisionEngine is
actually the Default Ignore list and what plugins what us to ignore by
default.

Refs PyCQA/pep8-naming#157
@sigmavirus24
Copy link
Member

If 3.9.1 has this bug fix in it thanks to Anthony. If we put a >= 3.9.1 in our setup.cfg/setup.py we should be safe to release this as a new version with this code

@sigmavirus24 sigmavirus24 merged commit bee559c into PyCQA:master Apr 18, 2021
@ecolell
Copy link
Contributor Author

ecolell commented Apr 19, 2021

@sigmavirus24 @jparise @asottile Thank you all for the feedback and support 👍.

sampsyo added a commit to beetbox/beets that referenced this pull request Jul 15, 2021
The new error <PyCQA/pep8-naming#157> strikes me
as a little overzealous: while most exceptions are errors, there are
some Exception subclasses that are *not* properly considered errors
(e.g., when they're only a base class for other error classes).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants