Ensembl/ensembl-hive

View on GitHub
wrappers/python3/eHive/Params.py

Summary

Maintainability
C
1 day
Test Coverage

Cyclomatic complexity is too high in method param_substitute. (16)
Open

    def param_substitute(self, structure):
        """
        Take any structure and replace the pairs of hashes with the values of the parameters / expression they represent
        Compatible types: numbers, strings, lists, dictionaries (otherwise, ParamSubstitutionException is raised)
        """
Severity: Minor
Found in wrappers/python3/eHive/Params.py by radon

Cyclomatic Complexity

Cyclomatic Complexity corresponds to the number of decisions a block of code contains plus 1. This number (also called McCabe number) is equal to the number of linearly independent paths through the code. This number can be used as a guide when testing conditional logic in blocks.

Radon analyzes the AST tree of a Python program to compute Cyclomatic Complexity. Statements have the following effects on Cyclomatic Complexity:

Construct Effect on CC Reasoning
if +1 An if statement is a single decision.
elif +1 The elif statement adds another decision.
else +0 The else statement does not cause a new decision. The decision is at the if.
for +1 There is a decision at the start of the loop.
while +1 There is a decision at the while statement.
except +1 Each except branch adds a new conditional path of execution.
finally +0 The finally block is unconditionally executed.
with +1 The with statement roughly corresponds to a try/except block (see PEP 343 for details).
assert +1 The assert statement internally roughly equals a conditional statement.
Comprehension +1 A list/set/dict comprehension of generator expression is equivalent to a for loop.
Boolean Operator +1 Every boolean operator (and, or) adds a decision point.

Source: http://radon.readthedocs.org/en/latest/intro.html

Function subst_all_hashpairs has a Cognitive Complexity of 17 (exceeds 5 allowed). Consider refactoring.
Open

    def subst_all_hashpairs(self, structure, callback):
        """
        Parse "structure" and replace all the pairs of hashes by the result of calling callback() on the pair content
        #expr()expr# are treated differently by calling subst_one_hashpair()
        The result is a string (like structure)
Severity: Minor
Found in wrappers/python3/eHive/Params.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

Cyclomatic complexity is too high in method subst_all_hashpairs. (8)
Open

    def subst_all_hashpairs(self, structure, callback):
        """
        Parse "structure" and replace all the pairs of hashes by the result of calling callback() on the pair content
        #expr()expr# are treated differently by calling subst_one_hashpair()
        The result is a string (like structure)
Severity: Minor
Found in wrappers/python3/eHive/Params.py by radon

Cyclomatic Complexity

Cyclomatic Complexity corresponds to the number of decisions a block of code contains plus 1. This number (also called McCabe number) is equal to the number of linearly independent paths through the code. This number can be used as a guide when testing conditional logic in blocks.

Radon analyzes the AST tree of a Python program to compute Cyclomatic Complexity. Statements have the following effects on Cyclomatic Complexity:

Construct Effect on CC Reasoning
if +1 An if statement is a single decision.
elif +1 The elif statement adds another decision.
else +0 The else statement does not cause a new decision. The decision is at the if.
for +1 There is a decision at the start of the loop.
while +1 There is a decision at the while statement.
except +1 Each except branch adds a new conditional path of execution.
finally +0 The finally block is unconditionally executed.
with +1 The with statement roughly corresponds to a try/except block (see PEP 343 for details).
assert +1 The assert statement internally roughly equals a conditional statement.
Comprehension +1 A list/set/dict comprehension of generator expression is equivalent to a for loop.
Boolean Operator +1 Every boolean operator (and, or) adds a decision point.

Source: http://radon.readthedocs.org/en/latest/intro.html

Cyclomatic complexity is too high in function __main. (8)
Open

def __main():
    seed_params = [
        ('alpha' , 2),
        ('beta' , 5),
        ('delta' , '#expr( #alpha#*#beta# )expr#'),
Severity: Minor
Found in wrappers/python3/eHive/Params.py by radon

Cyclomatic Complexity

Cyclomatic Complexity corresponds to the number of decisions a block of code contains plus 1. This number (also called McCabe number) is equal to the number of linearly independent paths through the code. This number can be used as a guide when testing conditional logic in blocks.

Radon analyzes the AST tree of a Python program to compute Cyclomatic Complexity. Statements have the following effects on Cyclomatic Complexity:

Construct Effect on CC Reasoning
if +1 An if statement is a single decision.
elif +1 The elif statement adds another decision.
else +0 The else statement does not cause a new decision. The decision is at the if.
for +1 There is a decision at the start of the loop.
while +1 There is a decision at the while statement.
except +1 Each except branch adds a new conditional path of execution.
finally +0 The finally block is unconditionally executed.
with +1 The with statement roughly corresponds to a try/except block (see PEP 343 for details).
assert +1 The assert statement internally roughly equals a conditional statement.
Comprehension +1 A list/set/dict comprehension of generator expression is equivalent to a for loop.
Boolean Operator +1 Every boolean operator (and, or) adds a decision point.

Source: http://radon.readthedocs.org/en/latest/intro.html

Cyclomatic complexity is too high in method subst_one_hashpair. (7)
Open

    def subst_one_hashpair(self, inside_hashes, is_expr):
        """
        Run the parameter substitution for a single pair of hashes.
        Here, we only need to handle #expr()expr#, #func:params# and #param_name#
        as each condition has been parsed in the other methods
Severity: Minor
Found in wrappers/python3/eHive/Params.py by radon

Cyclomatic Complexity

Cyclomatic Complexity corresponds to the number of decisions a block of code contains plus 1. This number (also called McCabe number) is equal to the number of linearly independent paths through the code. This number can be used as a guide when testing conditional logic in blocks.

Radon analyzes the AST tree of a Python program to compute Cyclomatic Complexity. Statements have the following effects on Cyclomatic Complexity:

Construct Effect on CC Reasoning
if +1 An if statement is a single decision.
elif +1 The elif statement adds another decision.
else +0 The else statement does not cause a new decision. The decision is at the if.
for +1 There is a decision at the start of the loop.
while +1 There is a decision at the while statement.
except +1 Each except branch adds a new conditional path of execution.
finally +0 The finally block is unconditionally executed.
with +1 The with statement roughly corresponds to a try/except block (see PEP 343 for details).
assert +1 The assert statement internally roughly equals a conditional statement.
Comprehension +1 A list/set/dict comprehension of generator expression is equivalent to a for loop.
Boolean Operator +1 Every boolean operator (and, or) adds a decision point.

Source: http://radon.readthedocs.org/en/latest/intro.html

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

    def param_substitute(self, structure):
        """
        Take any structure and replace the pairs of hashes with the values of the parameters / expression they represent
        Compatible types: numbers, strings, lists, dictionaries (otherwise, ParamSubstitutionException is raised)
        """
Severity: Minor
Found in wrappers/python3/eHive/Params.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 subst_one_hashpair has a Cognitive Complexity of 13 (exceeds 5 allowed). Consider refactoring.
Open

    def subst_one_hashpair(self, inside_hashes, is_expr):
        """
        Run the parameter substitution for a single pair of hashes.
        Here, we only need to handle #expr()expr#, #func:params# and #param_name#
        as each condition has been parsed in the other methods
Severity: Minor
Found in wrappers/python3/eHive/Params.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 __main has 37 lines of code (exceeds 25 allowed). Consider refactoring.
Open

def __main():
    seed_params = [
        ('alpha' , 2),
        ('beta' , 5),
        ('delta' , '#expr( #alpha#*#beta# )expr#'),
Severity: Minor
Found in wrappers/python3/eHive/Params.py - About 1 hr to fix

    Function __main has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
    Open

    def __main():
        seed_params = [
            ('alpha' , 2),
            ('beta' , 5),
            ('delta' , '#expr( #alpha#*#beta# )expr#'),
    Severity: Minor
    Found in wrappers/python3/eHive/Params.py - About 35 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

    Avoid too many return statements within this function.
    Open

                return self.subst_all_hashpairs(structure, lambda middle_param: self.subst_one_hashpair(middle_param, False) )
    Severity: Major
    Found in wrappers/python3/eHive/Params.py - About 30 mins to fix

      Avoid too many return statements within this function.
      Open

                      return self.subst_one_hashpair(structure[1:-1], True)
      Severity: Major
      Found in wrappers/python3/eHive/Params.py - About 30 mins to fix

        Avoid too many return statements within this function.
        Open

                        return self.subst_one_hashpair(structure[1:-1], False)
        Severity: Major
        Found in wrappers/python3/eHive/Params.py - About 30 mins to fix

          Avoid too many return statements within this function.
          Open

                              return structure
          Severity: Major
          Found in wrappers/python3/eHive/Params.py - About 30 mins to fix

            Line too long (120 > 79 characters)
            Open

                    Take any structure and replace the pairs of hashes with the values of the parameters / expression they represent
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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

                    ('gamma' , [10,20,33,15]),
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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'}]

            Whitespace before ')'
            Open

                print_substitution( "min(gamma)", "#expr( min(#gamma#) )expr#" )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Whitespace after '('
            Open

                print_substitution( "max(gamma)", "#expr( max(#gamma#) )expr#" )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Line too long (113 > 79 characters)
            Open

                    Compatible types: numbers, strings, lists, dictionaries (otherwise, ParamSubstitutionException is raised)
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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 (133 > 79 characters)
            Open

                        # We handle the substitution differently if there is a single reference as we can avoid forcing the result to be a string
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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.

            Whitespace before ':'
            Open

                    ('age' , { 'Alice' : 17, 'Bob' : 20, 'Chloe' : 21}),
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Whitespace before ')'
            Open

                print_substitution( "complex fold of age_prime", '#expr( "\t".join(["{0} is {1} years old".format(p,a) for (p,a) in #age_prime#.items()]) )expr#' )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Expected 1 blank line, found 0
            Open

                def validate_parameter_name(self, param_name):
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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

            Line too long (97 > 79 characters)
            Open

                        if structure[0] == '#' and structure[-1] == '#' and structure.count('#', 1, -1) == 0:
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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 (122 > 79 characters)
            Open

                        return self.subst_all_hashpairs(structure, lambda middle_param: self.subst_one_hashpair(middle_param, False) )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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.

            Do not use bare 'except'
            Open

                        except:
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            When catching exceptions, mention specific exceptions when possible.

            Okay: except Exception:
            Okay: except BaseException:
            E722: except:

            Statement ends with a semicolon
            Open

                    print();
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Compound statements (on the same line) are generally discouraged.

            While sometimes it's okay to put an if/for/while with a small body
            on the same line, never do this for multi-clause statements.
            Also avoid folding such long lines!
            
            Always use a def statement instead of an assignment statement that
            binds a lambda expression directly to a name.
            
            Okay: if foo == 'blah':\n    do_blah_thing()
            Okay: do_one()
            Okay: do_two()
            Okay: do_three()
            
            E701: if foo == 'blah': do_blah_thing()
            E701: for x in lst: total += x
            E701: while t < 10: t = delay()
            E701: if foo == 'blah': do_blah_thing()
            E701: else: do_non_blah_thing()
            E701: try: something()
            E701: finally: cleanup()
            E701: if foo == 'blah': one(); two(); three()
            E702: do_one(); do_two(); do_three()
            E703: do_four();  # useless semicolon
            E704: def f(x): return 2*x
            E731: f = lambda x: 2*x

            Whitespace before ')'
            Open

                print_substitution( "default stringification of gamma", "#gamma#" )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Whitespace before ')'
            Open

                print_substitution( "expr-stringification of gamma", "#expr( #gamma#  )expr#" )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Too many blank lines (2)
            Open

                # Private methods
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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

            Line too long (85 > 79 characters)
            Open

                    """Print debug information if the debug flag is turned on (cf constructor)"""
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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.

            Too many blank lines (2)
            Open

                def param_substitute(self, structure):
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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

            Line too long (117 > 79 characters)
            Open

                    Parse "structure" and replace all the pairs of hashes by the result of calling callback() on the pair content
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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.

            Expected 2 blank lines, found 0
            Open

            class ParamNameException(ParamException):
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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

            Whitespace before ','
            Open

                    ('gamma_prime' , '#expr( #gamma# )expr#'),
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Expected 2 blank lines, found 0
            Open

            class ParamSubstitutionException(ParamException):
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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

            Line too long (142 > 79 characters)
            Open

                    return "Substitution loop has been detected on {0}. Parameter-substitution stack: {1}".format(self.args[0], list(self.args[1].keys()))
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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.

            Whitespace after '('
            Open

                print_substitution( "sum(gamma)", "#expr( sum(#gamma#) )expr#" )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Line too long (95 > 79 characters)
            Open

                    return (param_name in self.param_hash) or (param_name in self.unsubstituted_param_hash)
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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 (151 > 79 characters)
            Open

                print_substitution( "complex fold of age_prime", '#expr( "\t".join(["{0} is {1} years old".format(p,a) for (p,a) in #age_prime#.items()]) )expr#' )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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 (81 > 79 characters)
            Open

                        # Fallback to the default parser: all pairs of hashes are substituted
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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.

            Too many blank lines (2)
            Open

                def subst_all_hashpairs(self, structure, callback):
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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

            Line too long (81 > 79 characters)
            Open

                    Here, we only need to handle #expr()expr#, #func:params# and #param_name#
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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 (90 > 79 characters)
            Open

                        raise ParamInfiniteLoopException(inside_hashes, self.substitution_in_progress)
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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.

            Whitespace before ','
            Open

                    ('alpha' , 2),
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Whitespace after '('
            Open

                print_substitution( "default stringification of gamma", "#gamma#" )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Expected 2 blank lines, found 0
            Open

            class ParamInfiniteLoopException(ParamException):
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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

            Too many blank lines (2)
            Open

                # Public methods
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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

            Whitespace before ','
            Open

                    ('age' , { 'Alice' : 17, 'Bob' : 20, 'Chloe' : 21}),
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Whitespace before ':'
            Open

                    ('age' , { 'Alice' : 17, 'Bob' : 20, 'Chloe' : 21}),
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Whitespace before ':'
            Open

                    ('age' , { 'Alice' : 17, 'Bob' : 20, 'Chloe' : 21}),
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            At least two spaces before inline comment
            Open

                    p.get_param(0) # should raise ParamNameException
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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

            Whitespace after '('
            Open

                print_substitution( "Scalar substitutions", "#alpha# and another: #beta# and again one: #alpha# and the other: #beta# . Their product: #delta#" )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Line too long (123 > 79 characters)
            Open

                print_substitution( "complex join of gamma_prime", "#expr( '~'.join([str(_) for _ in sorted(#gamma_prime#)])  )expr#" )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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 > 79 characters)
            Open

                print_substitution( "adding indexed values", '#expr( #age#["Alice"]+max(#gamma#)+#listref#[0] )expr#' )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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.

            Whitespace after '('
            Open

                print_substitution( "adding indexed values", '#expr( #age#["Alice"]+max(#gamma#)+#listref#[0] )expr#' )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Blank line contains whitespace
            Open

                    
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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

            Too many blank lines (3)
            Open

            def __main():
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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

            Whitespace before ','
            Open

                    ('gamma_second' , '#expr( list(#gamma#) )expr#'),
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Whitespace after '{'
            Open

                    ('age' , { 'Alice' : 17, 'Bob' : 20, 'Chloe' : 21}),
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Whitespace before ')'
            Open

                        return self.subst_all_hashpairs(structure, lambda middle_param: self.subst_one_hashpair(middle_param, False) )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Whitespace before ','
            Open

                    ('age_prime' , '#expr( #age# )expr#'),
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Whitespace before ','
            Open

                    ('csv' , '[123,456,789]'),
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Whitespace before ','
            Open

                    ('listref' , '#expr( eval(#csv#) )expr#'),
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Whitespace before ','
            Open

                    ('null' , None),
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Whitespace before ','
            Open

                    ('ref3_null' , '#alpha##null##beta#'),
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Line too long (111 > 79 characters)
            Open

                print_substitution( "complex join of gamma", "#expr( '~'.join([str(_) for _ in sorted(#gamma#)])  )expr#" )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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 (123 > 79 characters)
            Open

                """Raised when ParamContainer tried to substitute an unexpected structure (only dictionaries and lists are accepted)"""
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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 (141 > 79 characters)
            Open

                    """Equivalent of get_param() that assumes "param_name" is a valid parameter name and hence, doesn't have to raise ParamNameException.
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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.

            Blank line contains whitespace
            Open

                    
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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

            Whitespace before ','
            Open

                    ('gamma' , [10,20,33,15]),
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Whitespace before ','
            Open

                    ('age_second' , '#expr( dict(#age#) )expr#'),
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Whitespace after '('
            Open

                print_substitution( "default stringification of age", "#age#" )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Line too long (113 > 79 characters)
            Open

                    return '"{0}" (type {1}) is not a valid parameter name'.format(self.args[0], type(self.args[0]).__name__)
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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 (127 > 79 characters)
            Open

                    # We ask the caller to provide the is_expr tag to avoid checking the string again for the presence of the "expr" tokens
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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

                    ('gamma' , [10,20,33,15]),
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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'}]

            Whitespace before ')'
            Open

                print_substitution( "complex join of gamma", "#expr( '~'.join([str(_) for _ in sorted(#gamma#)])  )expr#" )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Whitespace before ')'
            Open

                print_substitution( "complex join of gamma_prime", "#expr( '~'.join([str(_) for _ in sorted(#gamma_prime#)])  )expr#" )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Whitespace before ')'
            Open

                print_substitution( "sum(gamma)", "#expr( sum(#gamma#) )expr#" )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Whitespace before ')'
            Open

                print_substitution( "default stringification of age", "#age#" )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Line too long (100 > 79 characters)
            Open

                    return 'Cannot substitute elements in objects of type "{0}"'.format(str(type(self.args[0])))
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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.

            Expected 1 blank line, found 0
            Open

                def set_param(self, param_name, value):
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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

            Missing whitespace after ','
            Open

                        return {self.param_substitute(key): self.param_substitute(value) for (key,value) in structure.items()}
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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 after ','
            Open

                            (middle_param,_,tail) = tmp.partition('#')
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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 after ','
            Open

                        (func_name,_,parameters) = inside_hashes.partition(':')
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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'}]

            Whitespace after '('
            Open

                print_substitution( "complex join of gamma_prime", "#expr( '~'.join([str(_) for _ in sorted(#gamma_prime#)])  )expr#" )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Whitespace before ')'
            Open

                print_substitution( "complex fold of age", '#expr( "\t".join(["{0} is {1} years old".format(p,a) for (p,a) in #age#.items()]) )expr#' )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Whitespace after '('
            Open

                print_substitution( "complex fold of age_prime", '#expr( "\t".join(["{0} is {1} years old".format(p,a) for (p,a) in #age_prime#.items()]) )expr#' )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Line too long (88 > 79 characters)
            Open

                    """Returns a boolean. It checks both substituted and unsubstituted parameters"""
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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 (114 > 79 characters)
            Open

                        return {self.param_substitute(key): self.param_substitute(value) for (key,value) in structure.items()}
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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

                        (head,_,tmp) = structure.partition('#')
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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 after ','
            Open

                            (middle_param,_,tail) = tmp.partition('#')
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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 (145 > 79 characters)
            Open

                        s = self.subst_all_hashpairs(inside_hashes[5:-5].strip(), lambda middle_param: 'self.internal_get_param("{0}")'.format(middle_param))
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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.

            Whitespace before ','
            Open

                    ('beta' , 5),
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Line too long (149 > 79 characters)
            Open

                print_substitution( "Scalar substitutions", "#alpha# and another: #beta# and again one: #alpha# and the other: #beta# . Their product: #delta#" )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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.

            Whitespace after '('
            Open

                print_substitution( "min(gamma)", "#expr( min(#gamma#) )expr#" )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Whitespace before ')'
            Open

                print_substitution( "max(gamma)", "#expr( max(#gamma#) )expr#" )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Too many blank lines (2)
            Open

                def subst_one_hashpair(self, inside_hashes, is_expr):
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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

            Whitespace before ')'
            Open

                print_substitution( "Scalar substitutions", "#alpha# and another: #beta# and again one: #alpha# and the other: #beta# . Their product: #delta#" )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Line too long (83 > 79 characters)
            Open

                print_substitution( "expr-stringification of gamma", "#expr( #gamma#  )expr#" )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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.

            Whitespace before ')'
            Open

                print_substitution( "expr-stringification of age", "#expr( #age# )expr#" )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Whitespace after '('
            Open

                print_substitution( "complex fold of age", '#expr( "\t".join(["{0} is {1} years old".format(p,a) for (p,a) in #age#.items()]) )expr#' )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Line too long (87 > 79 characters)
            Open

                        # NB: In Python, not everything can be hashed and used as a dictionary key.
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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

                        (head,_,tmp) = structure.partition('#')
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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'}]

            Whitespace before ','
            Open

                    ('delta' , '#expr( #alpha#*#beta# )expr#'),
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Line too long (139 > 79 characters)
            Open

                print_substitution( "complex fold of age", '#expr( "\t".join(["{0} is {1} years old".format(p,a) for (p,a) in #age#.items()]) )expr#' )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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 (156 > 79 characters)
            Open

                        if structure[:6] == '#expr(' and structure[-6:] == ')expr#' and structure.count('#expr(', 6, -6) == 0 and structure.count(')expr#', 6, -6) == 0:
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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

                        (func_name,_,parameters) = inside_hashes.partition(':')
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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'}]

            Whitespace before ','
            Open

                    ('csv_prime' , '#expr( #csv# )expr#'),
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Missing whitespace after ','
            Open

                    ('gamma' , [10,20,33,15]),
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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 after ','
            Open

                for (key,value) in seed_params:
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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'}]

            Expected 2 blank lines, found 0
            Open

            class NullParamException(ParamException):
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            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

            Whitespace before ','
            Open

                    ('ref_null' , '#null#'),
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Whitespace before ','
            Open

                    ('ref2_null' , '#expr( #null# )expr#'),
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Whitespace after '('
            Open

                print_substitution( "expr-stringification of gamma", "#expr( #gamma#  )expr#" )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Whitespace after '('
            Open

                print_substitution( "complex join of gamma", "#expr( '~'.join([str(_) for _ in sorted(#gamma#)])  )expr#" )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Whitespace after '('
            Open

                print_substitution( "expr-stringification of age", "#expr( #age# )expr#" )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Whitespace before ')'
            Open

                print_substitution( "adding indexed values", '#expr( #age#["Alice"]+max(#gamma#)+#listref#[0] )expr#' )
            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Avoid extraneous whitespace.

            Avoid extraneous whitespace in these situations:
            - Immediately inside parentheses, brackets or braces.
            - Immediately before a comma, semicolon, or colon.
            
            Okay: spam(ham[1], {eggs: 2})
            E201: spam( ham[1], {eggs: 2})
            E201: spam(ham[ 1], {eggs: 2})
            E201: spam(ham[1], { eggs: 2})
            E202: spam(ham[1], {eggs: 2} )
            E202: spam(ham[1 ], {eggs: 2})
            E202: spam(ham[1], {eggs: 2 })
            
            E203: if x == 4: print x, y; x, y = y , x
            E203: if x == 4: print x, y ; x, y = y, x
            E203: if x == 4 : print x, y; x, y = y, x

            Blank line at end of file
            Open

            Severity: Minor
            Found in wrappers/python3/eHive/Params.py by pep8

            Trailing blank lines are superfluous.

            Okay: spam(1)
            W391: spam(1)\n
            
            However the last line should end with a new line (warning W292).

            There are no issues that match your filters.

            Category
            Status