src/triage/component/postmodeling/contrast/model_group_evaluator.py

Summary

Maintainability
F
4 days
Test Coverage

File model_group_evaluator.py has 1025 lines of code (exceeds 400 allowed). Consider refactoring.
Open

"""
Model Evaluator

This script contain a set of elements to help the postmodeling evaluation
of audited models by triage.Audition. This will be a continuing list of
Severity: Major
Found in src/triage/component/postmodeling/contrast/model_group_evaluator.py - About 2 days to fix

    ModelGroupEvaluator has 26 functions (exceeds 20 allowed). Consider refactoring.
    Open

    class ModelGroupEvaluator:
        '''
        ModelGroup class calls the model group metadata from the database
        and hold metadata features on each of the class attibutes.
        This class will contain any information about the model_group, and
    Severity: Minor
    Found in src/triage/component/postmodeling/contrast/model_group_evaluator.py - About 3 hrs to fix

      Function plot_jaccard_preds has a Cognitive Complexity of 16 (exceeds 5 allowed). Consider refactoring.
      Open

          def plot_jaccard_preds(self,
                                 param_type=None,
                                 param=None,
                                 model_subset=None,
                                 temporal_comparison=False,
      Severity: Minor
      Found in src/triage/component/postmodeling/contrast/model_group_evaluator.py - About 2 hrs to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Function plot_jaccard_features has a Cognitive Complexity of 14 (exceeds 5 allowed). Consider refactoring.
      Open

          def plot_jaccard_features(self,
                                    top_n_features=10,
                                    model_subset=None,
                                    temporal_comparison=False,
                                    figsize=(30, 10),
      Severity: Minor
      Found in src/triage/component/postmodeling/contrast/model_group_evaluator.py - About 1 hr to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Function plot_ranked_correlation_preds has a Cognitive Complexity of 13 (exceeds 5 allowed). Consider refactoring.
      Open

          def plot_ranked_correlation_preds(self,
                                             model_subset=None,
                                             temporal_comparison=False,
                                             figsize=(24, 10),
                                             fontsize=12,
      Severity: Minor
      Found in src/triage/component/postmodeling/contrast/model_group_evaluator.py - About 1 hr to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Function feature_loi_loo has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
      Open

          def feature_loi_loo(self,
                              model_subset=None,
                              param_type=None,
                              param=None,
                              metric=None,
      Severity: Minor
      Found in src/triage/component/postmodeling/contrast/model_group_evaluator.py - About 1 hr to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Function plot_ranked_correlation_features has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring.
      Open

          def plot_ranked_correlation_features(self,
                                               model_subset=None,
                                               temporal_comparison=False,
                                               figsize=(12, 16),
                                               fontsize=20,
      Severity: Minor
      Found in src/triage/component/postmodeling/contrast/model_group_evaluator.py - About 1 hr to fix

      Cognitive Complexity

      Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

      A method's cognitive complexity is based on a few simple rules:

      • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
      • Code is considered more complex for each "break in the linear flow of the code"
      • Code is considered more complex when "flow breaking structures are nested"

      Further reading

      Function feature_loi_loo has 9 arguments (exceeds 5 allowed). Consider refactoring.
      Open

          def feature_loi_loo(self,
      Severity: Major
      Found in src/triage/component/postmodeling/contrast/model_group_evaluator.py - About 1 hr to fix

        Function plot_preds_comparison has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
        Open

            def plot_preds_comparison(self,
                                      param_type=None,
                                      param=None,
                                      model_subset=None,
                                      figsize=(28, 16),
        Severity: Minor
        Found in src/triage/component/postmodeling/contrast/model_group_evaluator.py - About 55 mins to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        Function plot_prec_across_time has a Cognitive Complexity of 9 (exceeds 5 allowed). Consider refactoring.
        Open

            def plot_prec_across_time(self,
                                      param_type=None,
                                      param=None,
                                      metric=None,
                                      baseline=False,
        Severity: Minor
        Found in src/triage/component/postmodeling/contrast/model_group_evaluator.py - About 55 mins to fix

        Cognitive Complexity

        Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.

        A method's cognitive complexity is based on a few simple rules:

        • Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
        • Code is considered more complex for each "break in the linear flow of the code"
        • Code is considered more complex when "flow breaking structures are nested"

        Further reading

        Function plot_prec_across_time has 8 arguments (exceeds 5 allowed). Consider refactoring.
        Open

            def plot_prec_across_time(self,
        Severity: Major
        Found in src/triage/component/postmodeling/contrast/model_group_evaluator.py - About 50 mins to fix

          Function plot_jaccard_preds has 6 arguments (exceeds 5 allowed). Consider refactoring.
          Open

              def plot_jaccard_preds(self,
          Severity: Minor
          Found in src/triage/component/postmodeling/contrast/model_group_evaluator.py - About 35 mins to fix

            Function _plot_preds_compare_rank has 6 arguments (exceeds 5 allowed). Consider refactoring.
            Open

                def _plot_preds_compare_rank(self,
            Severity: Minor
            Found in src/triage/component/postmodeling/contrast/model_group_evaluator.py - About 35 mins to fix

              Continuation line over-indented for visual indent
              Open

                              filter(['model_group_id', 'model_id', 'as_of_date_year',

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Line too long (100 > 88 characters)
              Open

                                             "Please run catwalk.Predictor for each desired model and test matrix"

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Line too long (91 > 88 characters)
              Open

                          baseline_metrics['param'] = baseline_metrics['param'].astype(str).astype(float)

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Continuation line under-indented for visual indent
              Open

                                         borderaxespad=0.,

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line over-indented for visual indent
              Open

                              model_metrics['parameter'].str.split('_', 1, expand=True)

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Line too long (118 > 88 characters)
              Open

                      model_metrics['param_type'] = model_metrics['param_type'].apply(lambda x: f'rank_{x}' if x is not None else x)

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              The backslash is redundant between brackets
              Open

                              plt.title(str(metric).capitalize() +\

              Avoid explicit line join between brackets.

              The preferred way of wrapping long lines is by using Python's
              implied line continuation inside parentheses, brackets and braces.
              Long lines can be broken over multiple lines by wrapping expressions
              in parentheses.  These should be used in preference to using a
              backslash for line continuation.
              
              E502: aaa = [123, \\n       123]
              E502: aaa = ("bbb " \\n       "ccc")
              
              Okay: aaa = [123,\n       123]
              Okay: aaa = ("bbb "\n       "ccc")
              Okay: aaa = "bbb " \\n    "ccc"
              Okay: aaa = 123  # \\

              Continuation line under-indented for visual indent
              Open

                                         fontsize=fontsize)

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line missing indentation or outdented
              Open

                          model_metrics_filter.append(baseline_metrics_filter, sort=True)

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Comparison to true should be 'if cond is true:' or 'if cond:'
              Open

                      if df == True:

              Comparison to singletons should use "is" or "is not".

              Comparisons to singletons like None should always be done
              with "is" or "is not", never the equality operators.
              
              Okay: if arg is not None:
              E711: if arg != None:
              E711: if None == arg:
              E712: if arg == True:
              E712: if False == arg:
              
              Also, beware of writing if x when you really mean if x is not None
              -- e.g. when testing whether a variable or argument that defaults to
              None was set to some other value.  The other value might have a type
              (such as a container) that could be false in a boolean context!

              Continuation line under-indented for visual indent
              Open

                                         title='Model Group',

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line under-indented for visual indent
              Open

                                                    (model_metrics['param'] == param) &

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Missing whitespace after ','
              Open

                              plt.yticks(np.arange(0,1,0.1))

              Each comma, semicolon or colon should be followed by whitespace.

              Okay: [a, b]
              Okay: (3,)
              Okay: a[1:4]
              Okay: a[:4]
              Okay: a[1:]
              Okay: a[1:4:2]
              E231: ['a','b']
              E231: foo(bar,baz)
              E231: [{'a':'b'}]

              Line too long (95 > 88 characters)
              Open

                          unnest(regexp_split_to_array(substring(features, '\[(.*?)\]'), ',')) AS group_array

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Multiple spaces after operator
              Open

                      model_metrics['param'] =  model_metrics['param'].replace('',np.nan).astype('float')

              Avoid extraneous whitespace around an operator.

              Okay: a = 12 + 3
              E221: a = 4  + 5
              E222: a = 4 +  5
              E223: a = 4\t+ 5
              E224: a = 4 +\t5

              Invalid escape sequence '['
              Open

                          unnest(regexp_split_to_array(substring(features, '\[(.*?)\]'), ',')) AS group_array

              Invalid escape sequences are deprecated in Python 3.6.

              Okay: regex = r'\.png$'
              W605: regex = '\.png$'

              Invalid escape sequence ']'
              Open

                          unnest(regexp_split_to_array(substring(features, '\[(.*?)\]'), ',')) AS group_array

              Invalid escape sequences are deprecated in Python 3.6.

              Okay: regex = r'\.png$'
              W605: regex = '\.png$'

              Line too long (91 > 88 characters)
              Open

                      model_metrics['param'] =  model_metrics['param'].replace('',np.nan).astype('float')

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Continuation line over-indented for visual indent
              Open

                              model_metrics_filter.as_of_date_year.astype('int')

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Line too long (89 > 88 characters)
              Open

                          WHEN  number_feature_groups = (first_value(number_feature_groups) OVER w) - 1

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Continuation line over-indented for visual indent
              Open

                                  baseline_metrics['parameter'].str.split('_', 1, expand=True)

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Multiple spaces after operator
              Open

                          baseline_metrics_filter =  baseline_metrics.\

              Avoid extraneous whitespace around an operator.

              Okay: a = 12 + 3
              E221: a = 4  + 5
              E222: a = 4 +  5
              E223: a = 4\t+ 5
              E224: a = 4 +\t5

              Continuation line over-indented for visual indent
              Open

                                  baseline_metrics_filter.model_group_id.\

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Line too long (94 > 88 characters)
              Open

                                             "Some functionality will not be available without predictions."

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Missing whitespace after ','
              Open

                      model_metrics['param'] =  model_metrics['param'].replace('',np.nan).astype('float')

              Each comma, semicolon or colon should be followed by whitespace.

              Okay: [a, b]
              Okay: (3,)
              Okay: a[1:4]
              Okay: a[:4]
              Okay: a[1:]
              Okay: a[1:4:2]
              E231: ['a','b']
              E231: foo(bar,baz)
              E231: [{'a':'b'}]

              Comparison to true should be 'if cond is true:' or 'if cond:'
              Open

                      if baseline == True:

              Comparison to singletons should use "is" or "is not".

              Comparisons to singletons like None should always be done
              with "is" or "is not", never the equality operators.
              
              Okay: if arg is not None:
              E711: if arg != None:
              E711: if None == arg:
              E712: if arg == True:
              E712: if False == arg:
              
              Also, beware of writing if x when you really mean if x is not None
              -- e.g. when testing whether a variable or argument that defaults to
              None was set to some other value.  The other value might have a type
              (such as a container) that could be false in a boolean context!

              Continuation line over-indented for visual indent
              Open

                                  apply(lambda x: 'rank_'+x)

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line over-indented for visual indent
              Open

                                  filter(['model_group_id', 'model_id', 'as_of_date_year', 'value'])

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Missing whitespace after ','
              Open

                              plt.yticks(np.arange(0,1,0.1))

              Each comma, semicolon or colon should be followed by whitespace.

              Okay: [a, b]
              Okay: (3,)
              Okay: a[1:4]
              Okay: a[:4]
              Okay: a[1:]
              Okay: a[1:4:2]
              E231: ['a','b']
              E231: foo(bar,baz)
              E231: [{'a':'b'}]

              Continuation line under-indented for visual indent
              Open

                                         loc=2,

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line over-indented for visual indent
              Open

                                  apply(lambda x: 'baseline_' + str(x))

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Over-indented
              Open

                                  print(f'''

              Use indent_size (PEP8 says 4) spaces per indentation level.

              For really old code that you don't want to mess up, you can continue
              to use 8-space tabs.
              
              Okay: a = 1
              Okay: if a == 0:\n    a = 1
              E111:   a = 1
              E114:   # a = 1
              
              Okay: for item in items:\n    pass
              E112: for item in items:\npass
              E115: for item in items:\n# Hi\n    pass
              
              Okay: a = 1\nb = 2
              E113: a = 1\n    b = 2
              E116: a = 1\n    # b = 2

              Continuation line under-indented for visual indent
              Open

                                                                how='inner',

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              The backslash is redundant between brackets
              Open

                                                 if row['experiment_type'] == 'LOO' \

              Avoid explicit line join between brackets.

              The preferred way of wrapping long lines is by using Python's
              implied line continuation inside parentheses, brackets and braces.
              Long lines can be broken over multiple lines by wrapping expressions
              in parentheses.  These should be used in preference to using a
              backslash for line continuation.
              
              E502: aaa = [123, \\n       123]
              E502: aaa = ("bbb " \\n       "ccc")
              
              Okay: aaa = [123,\n       123]
              Okay: aaa = ("bbb "\n       "ccc")
              Okay: aaa = "bbb " \\n    "ccc"
              Okay: aaa = 123  # \\

              Continuation line under-indented for visual indent
              Open

                                         title='Experiment Type',

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              The backslash is redundant between brackets
              Open

                          top_model_2 = model_2.sort_values('rank_abs', \

              Avoid explicit line join between brackets.

              The preferred way of wrapping long lines is by using Python's
              implied line continuation inside parentheses, brackets and braces.
              Long lines can be broken over multiple lines by wrapping expressions
              in parentheses.  These should be used in preference to using a
              backslash for line continuation.
              
              E502: aaa = [123, \\n       123]
              E502: aaa = ("bbb " \\n       "ccc")
              
              Okay: aaa = [123,\n       123]
              Okay: aaa = ("bbb "\n       "ccc")
              Okay: aaa = "bbb " \\n    "ccc"
              Okay: aaa = 123  # \\

              The backslash is redundant between brackets
              Open

                                                      top_n_features = kwargs \

              Avoid explicit line join between brackets.

              The preferred way of wrapping long lines is by using Python's
              implied line continuation inside parentheses, brackets and braces.
              Long lines can be broken over multiple lines by wrapping expressions
              in parentheses.  These should be used in preference to using a
              backslash for line continuation.
              
              E502: aaa = [123, \\n       123]
              E502: aaa = ("bbb " \\n       "ccc")
              
              Okay: aaa = [123,\n       123]
              Okay: aaa = ("bbb "\n       "ccc")
              Okay: aaa = "bbb " \\n    "ccc"
              Okay: aaa = 123  # \\

              Line too long (93 > 88 characters)
              Open

                                  ax = fig.add_subplot(np.ceil(self.same_time_models.shape[0]/4), 4, key+1)

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Over-indented (comment)
              Open

                              # Call predicitons

              Use indent_size (PEP8 says 4) spaces per indentation level.

              For really old code that you don't want to mess up, you can continue
              to use 8-space tabs.
              
              Okay: a = 1
              Okay: if a == 0:\n    a = 1
              E111:   a = 1
              E114:   # a = 1
              
              Okay: for item in items:\n    pass
              E112: for item in items:\npass
              E115: for item in items:\n# Hi\n    pass
              
              Okay: a = 1\nb = 2
              E113: a = 1\n    b = 2
              E116: a = 1\n    # b = 2

              Missing whitespace around operator
              Open

                      df_preds_m1 = df_preds_date[df_preds_date['model_id']==m1]

              Surround operators with a single space on either side.

              - Always surround these binary operators with a single space on
                either side: assignment (=), augmented assignment (+=, -= etc.),
                comparisons (==, <, >, !=, <=, >=, in, not in, is, is not),
                Booleans (and, or, not).
              
              - If operators with different priorities are used, consider adding
                whitespace around the operators with the lowest priorities.
              
              Okay: i = i + 1
              Okay: submitted += 1
              Okay: x = x * 2 - 1
              Okay: hypot2 = x * x + y * y
              Okay: c = (a + b) * (a - b)
              Okay: foo(bar, key='word', *args, **kwargs)
              Okay: alpha[:-i]
              
              E225: i=i+1
              E225: submitted +=1
              E225: x = x /2 - 1
              E225: z = x **y
              E225: z = 1and 1
              E226: c = (a+b) * (a-b)
              E226: hypot2 = x*x + y*y
              E227: c = a|b
              E228: msg = fmt%(errno, errmsg)

              Missing whitespace around operator
              Open

                              pd.merge(df_preds_m0, df_preds_m1[df_preds_m1.above_tresh==1][['entity_id', 'as_of_date']])

              Surround operators with a single space on either side.

              - Always surround these binary operators with a single space on
                either side: assignment (=), augmented assignment (+=, -= etc.),
                comparisons (==, <, >, !=, <=, >=, in, not in, is, is not),
                Booleans (and, or, not).
              
              - If operators with different priorities are used, consider adding
                whitespace around the operators with the lowest priorities.
              
              Okay: i = i + 1
              Okay: submitted += 1
              Okay: x = x * 2 - 1
              Okay: hypot2 = x * x + y * y
              Okay: c = (a + b) * (a - b)
              Okay: foo(bar, key='word', *args, **kwargs)
              Okay: alpha[:-i]
              
              E225: i=i+1
              E225: submitted +=1
              E225: x = x /2 - 1
              E225: z = x **y
              E225: z = 1and 1
              E226: c = (a+b) * (a-b)
              E226: hypot2 = x*x + y*y
              E227: c = a|b
              E228: msg = fmt%(errno, errmsg)

              Missing whitespace around operator
              Open

                              legend=plt.legend(bbox_to_anchor=(1.05, 1),

              Surround operators with a single space on either side.

              - Always surround these binary operators with a single space on
                either side: assignment (=), augmented assignment (+=, -= etc.),
                comparisons (==, <, >, !=, <=, >=, in, not in, is, is not),
                Booleans (and, or, not).
              
              - If operators with different priorities are used, consider adding
                whitespace around the operators with the lowest priorities.
              
              Okay: i = i + 1
              Okay: submitted += 1
              Okay: x = x * 2 - 1
              Okay: hypot2 = x * x + y * y
              Okay: c = (a + b) * (a - b)
              Okay: foo(bar, key='word', *args, **kwargs)
              Okay: alpha[:-i]
              
              E225: i=i+1
              E225: submitted +=1
              E225: x = x /2 - 1
              E225: z = x **y
              E225: z = 1and 1
              E226: c = (a+b) * (a-b)
              E226: hypot2 = x*x + y*y
              E227: c = a|b
              E228: msg = fmt%(errno, errmsg)

              Continuation line missing indentation or outdented
              Open

                      metrics_merge[metrics_merge['experiment_type'] != 'All features']

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Missing whitespace after ','
              Open

                              plt.yticks(np.arange(0,1,0.1))

              Each comma, semicolon or colon should be followed by whitespace.

              Okay: [a, b]
              Okay: (3,)
              Okay: a[1:4]
              Okay: a[:4]
              Okay: a[1:]
              Okay: a[1:4:2]
              E231: ['a','b']
              E231: foo(bar,baz)
              E231: [{'a':'b'}]

              Continuation line over-indented for visual indent
              Open

                                                     figsize=(24, 10),

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line with same indent as next logical line
              Open

                          self.same_time_models[['train_end_time', 'model_id_array']].iterrows():

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Closing bracket does not match visual indentation
              Open

                                                     ) for pair in combinations(model_subset, 2)]

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line over-indented for visual indent
              Open

                                          np.where(df_preds_date['rank_abs'] <= param, 1, 0)

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line over-indented for visual indent
              Open

                                          np.where(df_preds_date['rank_pct'] <= param, 1, 0)

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Blank line contains whitespace
              Open

                                  

              Trailing whitespace is superfluous.

              The warning returned varies on whether the line itself is blank,
              for easier filtering for those who want to indent their blank lines.
              
              Okay: spam(1)\n#
              W291: spam(1) \n#
              W293: class Foo(object):\n    \n    bang = 12

              Missing whitespace around operator
              Open

                      sns.distplot(df_preds_m0[df_preds_m0['above_tresh']==1]['score'],

              Surround operators with a single space on either side.

              - Always surround these binary operators with a single space on
                either side: assignment (=), augmented assignment (+=, -= etc.),
                comparisons (==, <, >, !=, <=, >=, in, not in, is, is not),
                Booleans (and, or, not).
              
              - If operators with different priorities are used, consider adding
                whitespace around the operators with the lowest priorities.
              
              Okay: i = i + 1
              Okay: submitted += 1
              Okay: x = x * 2 - 1
              Okay: hypot2 = x * x + y * y
              Okay: c = (a + b) * (a - b)
              Okay: foo(bar, key='word', *args, **kwargs)
              Okay: alpha[:-i]
              
              E225: i=i+1
              E225: submitted +=1
              E225: x = x /2 - 1
              E225: z = x **y
              E225: z = 1and 1
              E226: c = (a+b) * (a-b)
              E226: hypot2 = x*x + y*y
              E227: c = a|b
              E228: msg = fmt%(errno, errmsg)

              Missing whitespace around operator
              Open

                          sns.distplot(df_alt_model_rank[df_alt_model_rank['label_value']==0]['rank_pct'],

              Surround operators with a single space on either side.

              - Always surround these binary operators with a single space on
                either side: assignment (=), augmented assignment (+=, -= etc.),
                comparisons (==, <, >, !=, <=, >=, in, not in, is, is not),
                Booleans (and, or, not).
              
              - If operators with different priorities are used, consider adding
                whitespace around the operators with the lowest priorities.
              
              Okay: i = i + 1
              Okay: submitted += 1
              Okay: x = x * 2 - 1
              Okay: hypot2 = x * x + y * y
              Okay: c = (a + b) * (a - b)
              Okay: foo(bar, key='word', *args, **kwargs)
              Okay: alpha[:-i]
              
              E225: i=i+1
              E225: submitted +=1
              E225: x = x /2 - 1
              E225: z = x **y
              E225: z = 1and 1
              E226: c = (a+b) * (a-b)
              E226: hypot2 = x*x + y*y
              E227: c = a|b
              E228: msg = fmt%(errno, errmsg)

              Continuation line under-indented for visual indent
              Open

                                                                on='model_group_id')

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Line too long (91 > 88 characters)
              Open

                          baseline_metrics['param'] = baseline_metrics['param'].astype(str).astype(float)

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Continuation line over-indented for visual indent
              Open

                                                     model_subset=None,

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Block comment should start with '# '
              Open

                              #fig, ax = plt.subplots(figsize=figsize)

              Separate inline comments by at least two spaces.

              An inline comment is a comment on the same line as a statement.
              Inline comments should be separated by at least two spaces from the
              statement. They should start with a # and a single space.
              
              Each line of a block comment starts with a # and a single space
              (unless it is indented text inside the comment).
              
              Okay: x = x + 1  # Increment x
              Okay: x = x + 1    # Increment x
              Okay: # Block comment
              E261: x = x + 1 # Increment x
              E262: x = x + 1  #Increment x
              E262: x = x + 1  #  Increment x
              E265: #Block comment
              E266: ### Block comment

              Line too long (105 > 88 characters)
              Open

                                      df_preds_date['above_tresh'] = np.where(df_preds_date['rank_pct'] <= param, 1, 0)

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Continuation line missing indentation or outdented
              Open

                                  f_importance_filter_all_rank_top.pivot(index='feature',

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Line too long (89 > 88 characters)
              Open

                                  raise AttributeError('''Error! You have to define a parameter type to

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Line too long (107 > 88 characters)
              Open

                              pd.merge(df_preds_m0, df_preds_m1[df_preds_m1.above_tresh==1][['entity_id', 'as_of_date']])

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Continuation line under-indented for visual indent
              Open

                                                                     pair[0],

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line missing indentation or outdented
              Open

                      feature_groups[feature_groups['model_group_id'].isin(model_subset)]

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Line too long (106 > 88 characters)
              Open

                                                 list(all_features.difference(row['feature_group_array']))[0] + '_loo' \

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              The backslash is redundant between brackets
              Open

                                  self.feature_importances[self.feature_importances['model_id'] \

              Avoid explicit line join between brackets.

              The preferred way of wrapping long lines is by using Python's
              implied line continuation inside parentheses, brackets and braces.
              Long lines can be broken over multiple lines by wrapping expressions
              in parentheses.  These should be used in preference to using a
              backslash for line continuation.
              
              E502: aaa = [123, \\n       123]
              E502: aaa = ("bbb " \\n       "ccc")
              
              Okay: aaa = [123,\n       123]
              Okay: aaa = ("bbb "\n       "ccc")
              Okay: aaa = "bbb " \\n    "ccc"
              Okay: aaa = 123  # \\

              Too many blank lines (2)
              Open

                  def plot_ranked_correlation_features(self,

              Separate top-level function and class definitions with two blank lines.

              Method definitions inside a class are separated by a single blank
              line.
              
              Extra blank lines may be used (sparingly) to separate groups of
              related functions.  Blank lines may be omitted between a bunch of
              related one-liners (e.g. a set of dummy implementations).
              
              Use blank lines in functions, sparingly, to indicate logical
              sections.
              
              Okay: def a():\n    pass\n\n\ndef b():\n    pass
              Okay: def a():\n    pass\n\n\nasync def b():\n    pass
              Okay: def a():\n    pass\n\n\n# Foo\n# Bar\n\ndef b():\n    pass
              Okay: default = 1\nfoo = 1
              Okay: classify = 1\nfoo = 1
              
              E301: class Foo:\n    b = 0\n    def bar():\n        pass
              E302: def a():\n    pass\n\ndef b(n):\n    pass
              E302: def a():\n    pass\n\nasync def b(n):\n    pass
              E303: def a():\n    pass\n\n\n\ndef b(n):\n    pass
              E303: def a():\n\n\n\n    pass
              E304: @decorator\n\ndef a():\n    pass
              E305: def a():\n    pass\na()
              E306: def a():\n    def b():\n        pass\n    def c():\n        pass

              Comparison to true should be 'if cond is true:' or 'if cond:'
              Open

                      if  temporal_comparison == True:

              Comparison to singletons should use "is" or "is not".

              Comparisons to singletons like None should always be done
              with "is" or "is not", never the equality operators.
              
              Okay: if arg is not None:
              E711: if arg != None:
              E711: if None == arg:
              E712: if arg == True:
              E712: if False == arg:
              
              Also, beware of writing if x when you really mean if x is not None
              -- e.g. when testing whether a variable or argument that defaults to
              None was set to some other value.  The other value might have a type
              (such as a container) that could be false in a boolean context!

              Continuation line missing indentation or outdented
              Open

                              self.same_time_models[['train_end_time', 'model_id_array']].iterrows():

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line missing indentation or outdented
              Open

                              self.same_time_models[['train_end_time', 'model_id_array']].iterrows():

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Line too long (97 > 88 characters)
              Open

                                          f_importance_filter_all_rank[f_importance_filter_all_rank['rank_abs']

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Continuation line under-indented for visual indent
              Open

                                                                      <= top_n_features]

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Too many blank lines (2)
              Open

                  def _plot_preds_compare_score_dist(self,

              Separate top-level function and class definitions with two blank lines.

              Method definitions inside a class are separated by a single blank
              line.
              
              Extra blank lines may be used (sparingly) to separate groups of
              related functions.  Blank lines may be omitted between a bunch of
              related one-liners (e.g. a set of dummy implementations).
              
              Use blank lines in functions, sparingly, to indicate logical
              sections.
              
              Okay: def a():\n    pass\n\n\ndef b():\n    pass
              Okay: def a():\n    pass\n\n\nasync def b():\n    pass
              Okay: def a():\n    pass\n\n\n# Foo\n# Bar\n\ndef b():\n    pass
              Okay: default = 1\nfoo = 1
              Okay: classify = 1\nfoo = 1
              
              E301: class Foo:\n    b = 0\n    def bar():\n        pass
              E302: def a():\n    pass\n\ndef b(n):\n    pass
              E302: def a():\n    pass\n\nasync def b(n):\n    pass
              E303: def a():\n    pass\n\n\n\ndef b(n):\n    pass
              E303: def a():\n\n\n\n    pass
              E304: @decorator\n\ndef a():\n    pass
              E305: def a():\n    pass\na()
              E306: def a():\n    def b():\n        pass\n    def c():\n        pass

              Continuation line over-indented for visual indent
              Open

                              model_metrics['parameter'].str.split('_', 1, expand=True)

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Line too long (105 > 88 characters)
              Open

                                                                      (baseline_metrics['param_type'] == param_type)].\

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Continuation line over-indented for visual indent
              Open

                                  metrics_merge_experimental.append(baseline_metrics_filter,

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line over-indented for visual indent
              Open

                                                    x='as_of_date_year',

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Missing whitespace after ','
              Open

                              plt.yticks(np.arange(0,1,0.1))

              Each comma, semicolon or colon should be followed by whitespace.

              Okay: [a, b]
              Okay: (3,)
              Okay: a[1:4]
              Okay: a[:4]
              Okay: a[1:]
              Okay: a[1:4:2]
              E231: ['a','b']
              E231: foo(bar,baz)
              E231: [{'a':'b'}]

              Continuation line under-indented for visual indent
              Open

                                         loc=2,

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Unexpected spaces around keyword / parameter equals
              Open

                                                      top_n_features = kwargs \

              Don't use spaces around the '=' sign in function arguments.

              Don't use spaces around the '=' sign when used to indicate a
              keyword argument or a default parameter value, except when
              using a type annotation.
              
              Okay: def complex(real, imag=0.0):
              Okay: return magic(r=real, i=imag)
              Okay: boolean(a == b)
              Okay: boolean(a != b)
              Okay: boolean(a <= b)
              Okay: boolean(a >= b)
              Okay: def foo(arg: int = 42):
              Okay: async def foo(arg: int = 42):
              
              E251: def complex(real, imag = 0.0):
              E251: return magic(r = real, i = imag)
              E252: def complex(real, image: float=0.0):

              Continuation line under-indented for visual indent
              Open

                                                    columns=preds_filter_group.model_id.unique())

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Line too long (93 > 88 characters)
              Open

                                      raise AttributeError('''Error! You have to define a top_n features to

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Continuation line over-indented for visual indent
              Open

                              pd.merge(df_preds_m0, df_preds_m1[df_preds_m1.above_tresh==1][['entity_id', 'as_of_date']])

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Line too long (92 > 88 characters)
              Open

                          sns.distplot(df_alt_model_rank[df_alt_model_rank['label_value']==1]['rank_pct'],

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Continuation line under-indented for visual indent
              Open

                                                                     df_preds_date,

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Multiple spaces after operator
              Open

                      model_metrics['param'] =  model_metrics['param'].astype(str).astype(float)

              Avoid extraneous whitespace around an operator.

              Okay: a = 12 + 3
              E221: a = 4  + 5
              E222: a = 4 +  5
              E223: a = 4\t+ 5
              E224: a = 4 +\t5

              Continuation line over-indented for visual indent
              Open

                              filter(['model_group_id', 'model_id', 'as_of_date_year',

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Whitespace before '['
              Open

                      all_features = set(metrics_merge.loc[metrics_merge['experiment_type'] == 'All features'] \

              Avoid extraneous whitespace.

              Avoid extraneous whitespace in the following situations:
              - before the open parenthesis that starts the argument list of a
                function call.
              - before the open parenthesis that starts an indexing or slicing.
              
              Okay: spam(1)
              E211: spam (1)
              
              Okay: dict['key'] = list[index]
              E211: dict ['key'] = list[index]
              E211: dict['key'] = list [index]

              The backslash is redundant between brackets
              Open

                                                 list(all_features.difference(row['feature_group_array']))[0] + '_loo' \

              Avoid explicit line join between brackets.

              The preferred way of wrapping long lines is by using Python's
              implied line continuation inside parentheses, brackets and braces.
              Long lines can be broken over multiple lines by wrapping expressions
              in parentheses.  These should be used in preference to using a
              backslash for line continuation.
              
              E502: aaa = [123, \\n       123]
              E502: aaa = ("bbb " \\n       "ccc")
              
              Okay: aaa = [123,\n       123]
              Okay: aaa = ("bbb "\n       "ccc")
              Okay: aaa = "bbb " \\n    "ccc"
              Okay: aaa = 123  # \\

              Continuation line over-indented for visual indent
              Open

                                                    y='value',

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Unexpected indentation (comment)
              Open

                                          # Calculate Jaccard Similarity for the selected models

              Use indent_size (PEP8 says 4) spaces per indentation level.

              For really old code that you don't want to mess up, you can continue
              to use 8-space tabs.
              
              Okay: a = 1
              Okay: if a == 0:\n    a = 1
              E111:   a = 1
              E114:   # a = 1
              
              Okay: for item in items:\n    pass
              E112: for item in items:\npass
              E115: for item in items:\n# Hi\n    pass
              
              Okay: a = 1\nb = 2
              E113: a = 1\n    b = 2
              E116: a = 1\n    # b = 2

              Line too long (89 > 88 characters)
              Open

                                  raise AttributeError('''Error! You have to define a parameter type to

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Comparison to true should be 'if cond is true:' or 'if cond:'
              Open

                      if temporal_comparison == True:

              Comparison to singletons should use "is" or "is not".

              Comparisons to singletons like None should always be done
              with "is" or "is not", never the equality operators.
              
              Okay: if arg is not None:
              E711: if arg != None:
              E711: if None == arg:
              E712: if arg == True:
              E712: if False == arg:
              
              Also, beware of writing if x when you really mean if x is not None
              -- e.g. when testing whether a variable or argument that defaults to
              None was set to some other value.  The other value might have a type
              (such as a container) that could be false in a boolean context!

              Continuation line under-indented for visual indent
              Open

                                                    index=values[1],

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Missing whitespace after ','
              Open

                                                     bins=np.arange(0,1.01,0.01)):

              Each comma, semicolon or colon should be followed by whitespace.

              Okay: [a, b]
              Okay: (3,)
              Okay: a[1:4]
              Okay: a[:4]
              Okay: a[1:]
              Okay: a[1:4:2]
              E231: ['a','b']
              E231: foo(bar,baz)
              E231: [{'a':'b'}]

              Line too long (89 > 88 characters)
              Open

                                  raise AttributeError('''Error! You have to define a parameter type to

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Missing whitespace after ':'
              Open

                              sns.set_context("poster", font_scale=1.25, rc={"lines.linewidth": 2.25,"lines.markersize":12})

              Each comma, semicolon or colon should be followed by whitespace.

              Okay: [a, b]
              Okay: (3,)
              Okay: a[1:4]
              Okay: a[:4]
              Okay: a[1:]
              Okay: a[1:4:2]
              E231: ['a','b']
              E231: foo(bar,baz)
              E231: [{'a':'b'}]

              Continuation line over-indented for visual indent
              Open

                              metrics_merge_experimental.apply(lambda row: \

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line over-indented for visual indent
              Open

                                  baseline_metrics['parameter'].str.split('_', 1, expand=True)

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line under-indented for visual indent
              Open

                                                                   sort=True)

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line over-indented for visual indent
              Open

                                                    label=feature)

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line over-indented for visual indent
              Open

                                      groupby(['experiment_type']). \

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line over-indented for visual indent
              Open

                                                     **kwargs):

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Whitespace before '['
              Open

                                                      top_n_features = kwargs \

              Avoid extraneous whitespace.

              Avoid extraneous whitespace in the following situations:
              - before the open parenthesis that starts the argument list of a
                function call.
              - before the open parenthesis that starts an indexing or slicing.
              
              Okay: spam(1)
              E211: spam (1)
              
              Okay: dict['key'] = list[index]
              E211: dict ['key'] = list[index]
              E211: dict['key'] = list [index]

              Too many blank lines (2)
              Open

                  def plot_jaccard_features(self,

              Separate top-level function and class definitions with two blank lines.

              Method definitions inside a class are separated by a single blank
              line.
              
              Extra blank lines may be used (sparingly) to separate groups of
              related functions.  Blank lines may be omitted between a bunch of
              related one-liners (e.g. a set of dummy implementations).
              
              Use blank lines in functions, sparingly, to indicate logical
              sections.
              
              Okay: def a():\n    pass\n\n\ndef b():\n    pass
              Okay: def a():\n    pass\n\n\nasync def b():\n    pass
              Okay: def a():\n    pass\n\n\n# Foo\n# Bar\n\ndef b():\n    pass
              Okay: default = 1\nfoo = 1
              Okay: classify = 1\nfoo = 1
              
              E301: class Foo:\n    b = 0\n    def bar():\n        pass
              E302: def a():\n    pass\n\ndef b(n):\n    pass
              E302: def a():\n    pass\n\nasync def b(n):\n    pass
              E303: def a():\n    pass\n\n\n\ndef b(n):\n    pass
              E303: def a():\n\n\n\n    pass
              E304: @decorator\n\ndef a():\n    pass
              E305: def a():\n    pass\na()
              E306: def a():\n    def b():\n        pass\n    def c():\n        pass

              Continuation line under-indented for visual indent
              Open

                                                               <= top_n_features]

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line over-indented for visual indent
              Open

                                          f_importance_filter_all_rank[f_importance_filter_all_rank['rank_abs']

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line over-indented for visual indent
              Open

                              pd.merge(df_preds_m0, df_preds_m1[df_preds_m1.above_tresh==1][['entity_id', 'as_of_date']])

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line missing indentation or outdented
              Open

                      metrics_merge_experimental.filter(['feature_experiment',

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Missing whitespace around operator
              Open

                              legend=plt.legend(bbox_to_anchor=(1.05, 1),

              Surround operators with a single space on either side.

              - Always surround these binary operators with a single space on
                either side: assignment (=), augmented assignment (+=, -= etc.),
                comparisons (==, <, >, !=, <=, >=, in, not in, is, is not),
                Booleans (and, or, not).
              
              - If operators with different priorities are used, consider adding
                whitespace around the operators with the lowest priorities.
              
              Okay: i = i + 1
              Okay: submitted += 1
              Okay: x = x * 2 - 1
              Okay: hypot2 = x * x + y * y
              Okay: c = (a + b) * (a - b)
              Okay: foo(bar, key='word', *args, **kwargs)
              Okay: alpha[:-i]
              
              E225: i=i+1
              E225: submitted +=1
              E225: x = x /2 - 1
              E225: z = x **y
              E225: z = 1and 1
              E226: c = (a+b) * (a-b)
              E226: hypot2 = x*x + y*y
              E227: c = a|b
              E228: msg = fmt%(errno, errmsg)

              Line too long (89 > 88 characters)
              Open

                              ax = fig.add_subplot(np.ceil(self.same_time_models.shape[0]/4), 4, key+1)

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Multiple spaces after keyword
              Open

                      if  temporal_comparison == True:

              Avoid extraneous whitespace around keywords.

              Okay: True and False
              E271: True and  False
              E272: True  and False
              E273: True and\tFalse
              E274: True\tand False

              Line too long (90 > 88 characters)
              Open

                                  f_importances_filter[f_importances_filter['model_id'].isin(values[1])]

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Continuation line over-indented for visual indent
              Open

                                              f_imp_date_filter[f_imp_date_filter['rank_abs']

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Missing whitespace after ','
              Open

                                               bins = np.arange(0,110,10)):

              Each comma, semicolon or colon should be followed by whitespace.

              Okay: [a, b]
              Okay: (3,)
              Okay: a[1:4]
              Okay: a[:4]
              Okay: a[1:]
              Okay: a[1:4:2]
              E231: ['a','b']
              E231: foo(bar,baz)
              E231: [{'a':'b'}]

              Multiple spaces after operator
              Open

                          baseline_metrics_filter =  baseline_metrics[(baseline_metrics['metric'] == metric) &

              Avoid extraneous whitespace around an operator.

              Okay: a = 12 + 3
              E221: a = 4  + 5
              E222: a = 4 +  5
              E223: a = 4\t+ 5
              E224: a = 4 +\t5

              The backslash is redundant between brackets
              Open

                                  baseline_metrics_filter.model_group_id.apply(lambda x: \

              Avoid explicit line join between brackets.

              The preferred way of wrapping long lines is by using Python's
              implied line continuation inside parentheses, brackets and braces.
              Long lines can be broken over multiple lines by wrapping expressions
              in parentheses.  These should be used in preference to using a
              backslash for line continuation.
              
              E502: aaa = [123, \\n       123]
              E502: aaa = ("bbb " \\n       "ccc")
              
              Okay: aaa = [123,\n       123]
              Okay: aaa = ("bbb "\n       "ccc")
              Okay: aaa = "bbb " \\n    "ccc"
              Okay: aaa = 123  # \\

              Continuation line over-indented for visual indent
              Open

                                      plot(ax=ax,

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line under-indented for visual indent
              Open

                                         borderaxespad=0.,

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line with same indent as next logical line
              Open

                              self.same_time_models[['train_end_time', 'model_id_array']].iterrows():

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Too many blank lines (2)
              Open

                  def plot_jaccard_preds(self,

              Separate top-level function and class definitions with two blank lines.

              Method definitions inside a class are separated by a single blank
              line.
              
              Extra blank lines may be used (sparingly) to separate groups of
              related functions.  Blank lines may be omitted between a bunch of
              related one-liners (e.g. a set of dummy implementations).
              
              Use blank lines in functions, sparingly, to indicate logical
              sections.
              
              Okay: def a():\n    pass\n\n\ndef b():\n    pass
              Okay: def a():\n    pass\n\n\nasync def b():\n    pass
              Okay: def a():\n    pass\n\n\n# Foo\n# Bar\n\ndef b():\n    pass
              Okay: default = 1\nfoo = 1
              Okay: classify = 1\nfoo = 1
              
              E301: class Foo:\n    b = 0\n    def bar():\n        pass
              E302: def a():\n    pass\n\ndef b(n):\n    pass
              E302: def a():\n    pass\n\nasync def b(n):\n    pass
              E303: def a():\n    pass\n\n\n\ndef b(n):\n    pass
              E303: def a():\n\n\n\n    pass
              E304: @decorator\n\ndef a():\n    pass
              E305: def a():\n    pass\na()
              E306: def a():\n    def b():\n        pass\n    def c():\n        pass

              Continuation line over-indented for visual indent
              Open

                                              np.where(df_preds_date['rank_abs'] <= param, 1, 0)

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Over-indented (comment)
              Open

                              # Call predicitons

              Use indent_size (PEP8 says 4) spaces per indentation level.

              For really old code that you don't want to mess up, you can continue
              to use 8-space tabs.
              
              Okay: a = 1
              Okay: if a == 0:\n    a = 1
              E111:   a = 1
              E114:   # a = 1
              
              Okay: for item in items:\n    pass
              E112: for item in items:\npass
              E115: for item in items:\n# Hi\n    pass
              
              Okay: a = 1\nb = 2
              E113: a = 1\n    b = 2
              E116: a = 1\n    # b = 2

              Continuation line under-indented for visual indent
              Open

                                                                     colors=[colors[m0], colors[m1]])

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Missing whitespace after ','
              Open

                                      figsize=(16,12),

              Each comma, semicolon or colon should be followed by whitespace.

              Okay: [a, b]
              Okay: (3,)
              Okay: a[1:4]
              Okay: a[:4]
              Okay: a[1:]
              Okay: a[1:4:2]
              E231: ['a','b']
              E231: foo(bar,baz)
              E231: [{'a':'b'}]

              Continuation line under-indented for visual indent
              Open

                                                 list(all_features.difference(row['feature_group_array']))[0] + '_loo' \

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Line too long (102 > 88 characters)
              Open

                          baseline_metrics['param_type'] = baseline_metrics['param_type'].apply(lambda x: 'rank_'+x)

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              The backslash is redundant between brackets
              Open

                                                                               'baseline_' + \

              Avoid explicit line join between brackets.

              The preferred way of wrapping long lines is by using Python's
              implied line continuation inside parentheses, brackets and braces.
              Long lines can be broken over multiple lines by wrapping expressions
              in parentheses.  These should be used in preference to using a
              backslash for line continuation.
              
              E502: aaa = [123, \\n       123]
              E502: aaa = ("bbb " \\n       "ccc")
              
              Okay: aaa = [123,\n       123]
              Okay: aaa = ("bbb "\n       "ccc")
              Okay: aaa = "bbb " \\n    "ccc"
              Okay: aaa = 123  # \\

              Line too long (91 > 88 characters)
              Open

                                                            axis=0)[:top_n_features].set_index('feature')

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Comparison to true should be 'if cond is true:' or 'if cond:'
              Open

                      if temporal_comparison == True:

              Comparison to singletons should use "is" or "is not".

              Comparisons to singletons like None should always be done
              with "is" or "is not", never the equality operators.
              
              Okay: if arg is not None:
              E711: if arg != None:
              E711: if None == arg:
              E712: if arg == True:
              E712: if False == arg:
              
              Also, beware of writing if x when you really mean if x is not None
              -- e.g. when testing whether a variable or argument that defaults to
              None was set to some other value.  The other value might have a type
              (such as a container) that could be false in a boolean context!

              Continuation line missing indentation or outdented
              Open

                                  preds_filter[preds_filter['model_id'].isin(values[1])]

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Line too long (93 > 88 characters)
              Open

                                  ax = fig.add_subplot(np.ceil(self.same_time_models.shape[0]/4), 4, key+1)

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Missing whitespace around operator
              Open

                      sns.distplot(df_preds_m0[df_preds_m0['above_tresh']==0]['score'],

              Surround operators with a single space on either side.

              - Always surround these binary operators with a single space on
                either side: assignment (=), augmented assignment (+=, -= etc.),
                comparisons (==, <, >, !=, <=, >=, in, not in, is, is not),
                Booleans (and, or, not).
              
              - If operators with different priorities are used, consider adding
                whitespace around the operators with the lowest priorities.
              
              Okay: i = i + 1
              Okay: submitted += 1
              Okay: x = x * 2 - 1
              Okay: hypot2 = x * x + y * y
              Okay: c = (a + b) * (a - b)
              Okay: foo(bar, key='word', *args, **kwargs)
              Okay: alpha[:-i]
              
              E225: i=i+1
              E225: submitted +=1
              E225: x = x /2 - 1
              E225: z = x **y
              E225: z = 1and 1
              E226: c = (a+b) * (a-b)
              E226: hypot2 = x*x + y*y
              E227: c = a|b
              E228: msg = fmt%(errno, errmsg)

              Line too long (107 > 88 characters)
              Open

                              pd.merge(df_preds_m0, df_preds_m1[df_preds_m1.above_tresh==1][['entity_id', 'as_of_date']])

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Line too long (110 > 88 characters)
              Open

                              sns.set_context("poster", font_scale=1.25, rc={"lines.linewidth": 2.25,"lines.markersize":12})

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Missing whitespace after ','
              Open

                              sns.set_context("poster", font_scale=1.25, rc={"lines.linewidth": 2.25,"lines.markersize":12})

              Each comma, semicolon or colon should be followed by whitespace.

              Okay: [a, b]
              Okay: (3,)
              Okay: a[1:4]
              Okay: a[:4]
              Okay: a[1:]
              Okay: a[1:4:2]
              E231: ['a','b']
              E231: foo(bar,baz)
              E231: [{'a':'b'}]

              Continuation line under-indented for visual indent
              Open

                                                                     df_preds_date,

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Line too long (91 > 88 characters)
              Open

                                                           (model_metrics['param_type'] == param_type)].\

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              The backslash is redundant between brackets
              Open

                              metrics_merge_experimental.apply(lambda row: \

              Avoid explicit line join between brackets.

              The preferred way of wrapping long lines is by using Python's
              implied line continuation inside parentheses, brackets and braces.
              Long lines can be broken over multiple lines by wrapping expressions
              in parentheses.  These should be used in preference to using a
              backslash for line continuation.
              
              E502: aaa = [123, \\n       123]
              E502: aaa = ("bbb " \\n       "ccc")
              
              Okay: aaa = [123,\n       123]
              Okay: aaa = ("bbb "\n       "ccc")
              Okay: aaa = "bbb " \\n    "ccc"
              Okay: aaa = 123  # \\

              Line too long (94 > 88 characters)
              Open

                                                                      (baseline_metrics['param'] == param) &

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Continuation line over-indented for visual indent
              Open

                                  baseline_metrics_filter.model_group_id.apply(lambda x: \

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Line too long (93 > 88 characters)
              Open

                                      raise AttributeError('''Error! You have to define a parameter type to

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Continuation line missing indentation or outdented
              Open

                      f_importances[f_importances['model_id'].isin(model_subset)]

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Comparison to true should be 'if cond is true:' or 'if cond:'
              Open

                      if df == True:

              Comparison to singletons should use "is" or "is not".

              Comparisons to singletons like None should always be done
              with "is" or "is not", never the equality operators.
              
              Okay: if arg is not None:
              E711: if arg != None:
              E711: if None == arg:
              E712: if arg == True:
              E712: if False == arg:
              
              Also, beware of writing if x when you really mean if x is not None
              -- e.g. when testing whether a variable or argument that defaults to
              None was set to some other value.  The other value might have a type
              (such as a container) that could be false in a boolean context!

              The backslash is redundant between brackets
              Open

                              plt.title(str(metric).capitalize() +\

              Avoid explicit line join between brackets.

              The preferred way of wrapping long lines is by using Python's
              implied line continuation inside parentheses, brackets and braces.
              Long lines can be broken over multiple lines by wrapping expressions
              in parentheses.  These should be used in preference to using a
              backslash for line continuation.
              
              E502: aaa = [123, \\n       123]
              E502: aaa = ("bbb " \\n       "ccc")
              
              Okay: aaa = [123,\n       123]
              Okay: aaa = ("bbb "\n       "ccc")
              Okay: aaa = "bbb " \\n    "ccc"
              Okay: aaa = 123  # \\

              Over-indented
              Open

                                  print(f'''

              Use indent_size (PEP8 says 4) spaces per indentation level.

              For really old code that you don't want to mess up, you can continue
              to use 8-space tabs.
              
              Okay: a = 1
              Okay: if a == 0:\n    a = 1
              E111:   a = 1
              E114:   # a = 1
              
              Okay: for item in items:\n    pass
              E112: for item in items:\npass
              E115: for item in items:\n# Hi\n    pass
              
              Okay: a = 1\nb = 2
              E113: a = 1\n    b = 2
              E116: a = 1\n    # b = 2

              Continuation line with same indent as next logical line
              Open

                          self.same_time_models[['train_end_time', 'model_id_array']].iterrows():

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Unexpected spaces around keyword / parameter equals
              Open

                                                      top_n_features = kwargs \

              Don't use spaces around the '=' sign in function arguments.

              Don't use spaces around the '=' sign when used to indicate a
              keyword argument or a default parameter value, except when
              using a type annotation.
              
              Okay: def complex(real, imag=0.0):
              Okay: return magic(r=real, i=imag)
              Okay: boolean(a == b)
              Okay: boolean(a != b)
              Okay: boolean(a <= b)
              Okay: boolean(a >= b)
              Okay: def foo(arg: int = 42):
              Okay: async def foo(arg: int = 42):
              
              E251: def complex(real, imag = 0.0):
              E251: return magic(r = real, i = imag)
              E252: def complex(real, image: float=0.0):

              Continuation line under-indented for visual indent
              Open

                                                    index=preds_filter_group.model_id.unique(),

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Over-indented
              Open

                              if param_type == 'rank_abs':

              Use indent_size (PEP8 says 4) spaces per indentation level.

              For really old code that you don't want to mess up, you can continue
              to use 8-space tabs.
              
              Okay: a = 1
              Okay: if a == 0:\n    a = 1
              E111:   a = 1
              E114:   # a = 1
              
              Okay: for item in items:\n    pass
              E112: for item in items:\npass
              E115: for item in items:\n# Hi\n    pass
              
              Okay: a = 1\nb = 2
              E113: a = 1\n    b = 2
              E116: a = 1\n    # b = 2

              Missing whitespace around operator
              Open

                              pd.merge(df_preds_m0, df_preds_m1[df_preds_m1.above_tresh==1][['entity_id', 'as_of_date']])

              Surround operators with a single space on either side.

              - Always surround these binary operators with a single space on
                either side: assignment (=), augmented assignment (+=, -= etc.),
                comparisons (==, <, >, !=, <=, >=, in, not in, is, is not),
                Booleans (and, or, not).
              
              - If operators with different priorities are used, consider adding
                whitespace around the operators with the lowest priorities.
              
              Okay: i = i + 1
              Okay: submitted += 1
              Okay: x = x * 2 - 1
              Okay: hypot2 = x * x + y * y
              Okay: c = (a + b) * (a - b)
              Okay: foo(bar, key='word', *args, **kwargs)
              Okay: alpha[:-i]
              
              E225: i=i+1
              E225: submitted +=1
              E225: x = x /2 - 1
              E225: z = x **y
              E225: z = 1and 1
              E226: c = (a+b) * (a-b)
              E226: hypot2 = x*x + y*y
              E227: c = a|b
              E228: msg = fmt%(errno, errmsg)

              Line too long (92 > 88 characters)
              Open

                      model_metrics['param_type'] = model_metrics['param_type'].apply(lambda x: 'rank_'+x)

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              The backslash is redundant between brackets
              Open

                      all_features = set(metrics_merge.loc[metrics_merge['experiment_type'] == 'All features'] \

              Avoid explicit line join between brackets.

              The preferred way of wrapping long lines is by using Python's
              implied line continuation inside parentheses, brackets and braces.
              Long lines can be broken over multiple lines by wrapping expressions
              in parentheses.  These should be used in preference to using a
              backslash for line continuation.
              
              E502: aaa = [123, \\n       123]
              E502: aaa = ("bbb " \\n       "ccc")
              
              Okay: aaa = [123,\n       123]
              Okay: aaa = ("bbb "\n       "ccc")
              Okay: aaa = "bbb " \\n    "ccc"
              Okay: aaa = 123  # \\

              The backslash is redundant between brackets
              Open

                                  self.feature_importances[self.feature_importances['model_id'] \

              Avoid explicit line join between brackets.

              The preferred way of wrapping long lines is by using Python's
              implied line continuation inside parentheses, brackets and braces.
              Long lines can be broken over multiple lines by wrapping expressions
              in parentheses.  These should be used in preference to using a
              backslash for line continuation.
              
              E502: aaa = [123, \\n       123]
              E502: aaa = ("bbb " \\n       "ccc")
              
              Okay: aaa = [123,\n       123]
              Okay: aaa = ("bbb "\n       "ccc")
              Okay: aaa = "bbb " \\n    "ccc"
              Okay: aaa = 123  # \\

              Continuation line over-indented for visual indent
              Open

                                                     temporal_comparison=False,

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Line too long (143 > 88 characters)
              Open

                                      df_preds_date['new_entity_id'] = df_preds_date['entity_id'].astype(str) + ":" + df_preds_date['as_of_date'].astype(str)

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Line too long (139 > 88 characters)
              Open

                                  df_preds_date['new_entity_id'] = df_preds_date['entity_id'].astype(str) + ":" + df_preds_date['as_of_date'].astype(str)

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Continuation line over-indented for visual indent
              Open

                                              f_imp_filter_group.sort_values('rank_abs')

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line under-indented for visual indent
              Open

                                                    columns=values[1])

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Unexpected spaces around keyword / parameter equals
              Open

                                               bins = np.arange(0,110,10)):

              Don't use spaces around the '=' sign in function arguments.

              Don't use spaces around the '=' sign when used to indicate a
              keyword argument or a default parameter value, except when
              using a type annotation.
              
              Okay: def complex(real, imag=0.0):
              Okay: return magic(r=real, i=imag)
              Okay: boolean(a == b)
              Okay: boolean(a != b)
              Okay: boolean(a <= b)
              Okay: boolean(a >= b)
              Okay: def foo(arg: int = 42):
              Okay: async def foo(arg: int = 42):
              
              E251: def complex(real, imag = 0.0):
              E251: return magic(r = real, i = imag)
              E252: def complex(real, image: float=0.0):

              Comparison to true should be 'if cond is true:' or 'if cond:'
              Open

                      if baseline == True:

              Comparison to singletons should use "is" or "is not".

              Comparisons to singletons like None should always be done
              with "is" or "is not", never the equality operators.
              
              Okay: if arg is not None:
              E711: if arg != None:
              E711: if None == arg:
              E712: if arg == True:
              E712: if False == arg:
              
              Also, beware of writing if x when you really mean if x is not None
              -- e.g. when testing whether a variable or argument that defaults to
              None was set to some other value.  The other value might have a type
              (such as a container) that could be false in a boolean context!

              Line too long (96 > 88 characters)
              Open

                          baseline_metrics_filter =  baseline_metrics[(baseline_metrics['metric'] == metric) &

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Continuation line under-indented for visual indent
              Open

                                         fontsize=fontsize)

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line over-indented for visual indent
              Open

                                  self.feature_importances[self.feature_importances['model_id'] \

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Comparison to true should be 'if cond is true:' or 'if cond:'
              Open

                      if temporal_comparison == True:

              Comparison to singletons should use "is" or "is not".

              Comparisons to singletons like None should always be done
              with "is" or "is not", never the equality operators.
              
              Okay: if arg is not None:
              E711: if arg != None:
              E711: if None == arg:
              E712: if arg == True:
              E712: if False == arg:
              
              Also, beware of writing if x when you really mean if x is not None
              -- e.g. when testing whether a variable or argument that defaults to
              None was set to some other value.  The other value might have a type
              (such as a container) that could be false in a boolean context!

              Continuation line over-indented for visual indent
              Open

                                          f_importances_filter_all.sort_values('rank_abs')

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Missing whitespace after ','
              Open

                                                     bins=np.arange(0,1.01,0.01)):

              Each comma, semicolon or colon should be followed by whitespace.

              Okay: [a, b]
              Okay: (3,)
              Okay: a[1:4]
              Okay: a[:4]
              Okay: a[1:]
              Okay: a[1:4:2]
              E231: ['a','b']
              E231: foo(bar,baz)
              E231: [{'a':'b'}]

              Unexpected spaces around keyword / parameter equals
              Open

                                               bins = np.arange(0,110,10)):

              Don't use spaces around the '=' sign in function arguments.

              Don't use spaces around the '=' sign when used to indicate a
              keyword argument or a default parameter value, except when
              using a type annotation.
              
              Okay: def complex(real, imag=0.0):
              Okay: return magic(r=real, i=imag)
              Okay: boolean(a == b)
              Okay: boolean(a != b)
              Okay: boolean(a <= b)
              Okay: boolean(a >= b)
              Okay: def foo(arg: int = 42):
              Okay: async def foo(arg: int = 42):
              
              E251: def complex(real, imag = 0.0):
              E251: return magic(r = real, i = imag)
              E252: def complex(real, image: float=0.0):

              Missing whitespace around operator
              Open

                      df_preds_m0 = df_preds_date[df_preds_date['model_id']==m0]

              Surround operators with a single space on either side.

              - Always surround these binary operators with a single space on
                either side: assignment (=), augmented assignment (+=, -= etc.),
                comparisons (==, <, >, !=, <=, >=, in, not in, is, is not),
                Booleans (and, or, not).
              
              - If operators with different priorities are used, consider adding
                whitespace around the operators with the lowest priorities.
              
              Okay: i = i + 1
              Okay: submitted += 1
              Okay: x = x * 2 - 1
              Okay: hypot2 = x * x + y * y
              Okay: c = (a + b) * (a - b)
              Okay: foo(bar, key='word', *args, **kwargs)
              Okay: alpha[:-i]
              
              E225: i=i+1
              E225: submitted +=1
              E225: x = x /2 - 1
              E225: z = x **y
              E225: z = 1and 1
              E226: c = (a+b) * (a-b)
              E226: hypot2 = x*x + y*y
              E227: c = a|b
              E228: msg = fmt%(errno, errmsg)

              Missing whitespace around operator
              Open

                      df_preds_m1 = df_preds_date[df_preds_date['model_id']==m1]

              Surround operators with a single space on either side.

              - Always surround these binary operators with a single space on
                either side: assignment (=), augmented assignment (+=, -= etc.),
                comparisons (==, <, >, !=, <=, >=, in, not in, is, is not),
                Booleans (and, or, not).
              
              - If operators with different priorities are used, consider adding
                whitespace around the operators with the lowest priorities.
              
              Okay: i = i + 1
              Okay: submitted += 1
              Okay: x = x * 2 - 1
              Okay: hypot2 = x * x + y * y
              Okay: c = (a + b) * (a - b)
              Okay: foo(bar, key='word', *args, **kwargs)
              Okay: alpha[:-i]
              
              E225: i=i+1
              E225: submitted +=1
              E225: x = x /2 - 1
              E225: z = x **y
              E225: z = 1and 1
              E226: c = (a+b) * (a-b)
              E226: hypot2 = x*x + y*y
              E227: c = a|b
              E228: msg = fmt%(errno, errmsg)

              Line too long (92 > 88 characters)
              Open

                          sns.distplot(df_alt_model_rank[df_alt_model_rank['label_value']==0]['rank_pct'],

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Continuation line with same indent as next logical line
              Open

                              self.same_time_models[['train_end_time', 'model_id_array']].iterrows():

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line under-indented for visual indent
              Open

                                                               show_tp_fp=True,

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Line too long (98 > 88 characters)
              Open

                      all_features = set(metrics_merge.loc[metrics_merge['experiment_type'] == 'All features'] \

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              The backslash is redundant between brackets
              Open

                          top_model_1 = model_1.sort_values('rank_abs', \

              Avoid explicit line join between brackets.

              The preferred way of wrapping long lines is by using Python's
              implied line continuation inside parentheses, brackets and braces.
              Long lines can be broken over multiple lines by wrapping expressions
              in parentheses.  These should be used in preference to using a
              backslash for line continuation.
              
              E502: aaa = [123, \\n       123]
              E502: aaa = ("bbb " \\n       "ccc")
              
              Okay: aaa = [123,\n       123]
              Okay: aaa = ("bbb "\n       "ccc")
              Okay: aaa = "bbb " \\n    "ccc"
              Okay: aaa = 123  # \\

              Continuation line over-indented for visual indent
              Open

                                                     fontsize=12,

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Over-indented
              Open

                              if top_n_features is not None:

              Use indent_size (PEP8 says 4) spaces per indentation level.

              For really old code that you don't want to mess up, you can continue
              to use 8-space tabs.
              
              Okay: a = 1
              Okay: if a == 0:\n    a = 1
              E111:   a = 1
              E114:   # a = 1
              
              Okay: for item in items:\n    pass
              E112: for item in items:\npass
              E115: for item in items:\n# Hi\n    pass
              
              Okay: a = 1\nb = 2
              E113: a = 1\n    b = 2
              E116: a = 1\n    # b = 2

              Missing whitespace around operator
              Open

                      df_preds_m0 = df_preds_date[df_preds_date['model_id']==m0]

              Surround operators with a single space on either side.

              - Always surround these binary operators with a single space on
                either side: assignment (=), augmented assignment (+=, -= etc.),
                comparisons (==, <, >, !=, <=, >=, in, not in, is, is not),
                Booleans (and, or, not).
              
              - If operators with different priorities are used, consider adding
                whitespace around the operators with the lowest priorities.
              
              Okay: i = i + 1
              Okay: submitted += 1
              Okay: x = x * 2 - 1
              Okay: hypot2 = x * x + y * y
              Okay: c = (a + b) * (a - b)
              Okay: foo(bar, key='word', *args, **kwargs)
              Okay: alpha[:-i]
              
              E225: i=i+1
              E225: submitted +=1
              E225: x = x /2 - 1
              E225: z = x **y
              E225: z = 1and 1
              E226: c = (a+b) * (a-b)
              E226: hypot2 = x*x + y*y
              E227: c = a|b
              E228: msg = fmt%(errno, errmsg)

              Missing whitespace after ','
              Open

                                               bins = np.arange(0,110,10)):

              Each comma, semicolon or colon should be followed by whitespace.

              Okay: [a, b]
              Okay: (3,)
              Okay: a[1:4]
              Okay: a[:4]
              Okay: a[1:]
              Okay: a[1:4:2]
              E231: ['a','b']
              E231: foo(bar,baz)
              E231: [{'a':'b'}]

              Missing whitespace around operator
              Open

                          sns.distplot(df_alt_model_rank[df_alt_model_rank['label_value']==1]['rank_pct'],

              Surround operators with a single space on either side.

              - Always surround these binary operators with a single space on
                either side: assignment (=), augmented assignment (+=, -= etc.),
                comparisons (==, <, >, !=, <=, >=, in, not in, is, is not),
                Booleans (and, or, not).
              
              - If operators with different priorities are used, consider adding
                whitespace around the operators with the lowest priorities.
              
              Okay: i = i + 1
              Okay: submitted += 1
              Okay: x = x * 2 - 1
              Okay: hypot2 = x * x + y * y
              Okay: c = (a + b) * (a - b)
              Okay: foo(bar, key='word', *args, **kwargs)
              Okay: alpha[:-i]
              
              E225: i=i+1
              E225: submitted +=1
              E225: x = x /2 - 1
              E225: z = x **y
              E225: z = 1and 1
              E226: c = (a+b) * (a-b)
              E226: hypot2 = x*x + y*y
              E227: c = a|b
              E228: msg = fmt%(errno, errmsg)

              Line too long (91 > 88 characters)
              Open

                                                   preds_filter[preds_filter['model_id'].isin(values[1])]

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Continuation line under-indented for visual indent
              Open

                                                               colors=[colors[m0]])

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line under-indented for visual indent
              Open

                                                               show_tp_fp=True,

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line under-indented for visual indent
              Open

                                                               pair[0],

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line under-indented for visual indent
              Open

                                                                     colors=[colors[m1], colors[m0]])

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line under-indented for visual indent
              Open

                                                               df_preds_date,

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line under-indented for visual indent
              Open

                                                               df_preds_date,

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line under-indented for visual indent
              Open

                                                               colors=[colors[m1]])

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line under-indented for visual indent
              Open

                                                               colors=['khaki', 'darkorange'])

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line under-indented for visual indent
              Open

                                                               df_preds_date,

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line under-indented for visual indent
              Open

                                                               colors=['lightblue', 'darkblue'])

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line under-indented for visual indent
              Open

                                                               pair[1],

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line under-indented for visual indent
              Open

                                                               pair[0],

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line under-indented for visual indent
              Open

                                                               pair[1],

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Continuation line under-indented for visual indent
              Open

                                                               df_preds_date,

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              Line too long (94 > 88 characters)
              Open

                              for feature, df in metrics_merge_experimental.groupby(['feature_experiment']):

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Line too long (91 > 88 characters)
              Open

                                                            axis=0)[:top_n_features].set_index('feature')

              Limit all lines to a maximum of 79 characters.

              There are still many devices around that are limited to 80 character
              lines; plus, limiting windows to 80 characters makes it possible to
              have several windows side-by-side.  The default wrapping on such
              devices looks ugly.  Therefore, please limit all lines to a maximum
              of 79 characters. For flowing long blocks of text (docstrings or
              comments), limiting the length to 72 characters is recommended.
              
              Reports error E501.

              Continuation line missing indentation or outdented
              Open

                                  f_importances_filter[f_importances_filter['model_id'].isin(values[1])]

              Continuation lines indentation.

              Continuation lines should align wrapped elements either vertically
              using Python's implicit line joining inside parentheses, brackets
              and braces, or using a hanging indent.
              
              When using a hanging indent these considerations should be applied:
              - there should be no arguments on the first line, and
              - further indentation should be used to clearly distinguish itself
                as a continuation line.
              
              Okay: a = (\n)
              E123: a = (\n    )
              
              Okay: a = (\n    42)
              E121: a = (\n   42)
              E122: a = (\n42)
              E123: a = (\n    42\n    )
              E124: a = (24,\n     42\n)
              E125: if (\n    b):\n    pass
              E126: a = (\n        42)
              E127: a = (24,\n      42)
              E128: a = (24,\n    42)
              E129: if (a or\n    b):\n    pass
              E131: a = (\n    42\n 24)

              There are no issues that match your filters.

              Category
              Status