Home ⌂Doc Index ◂Up ▴

eric6.Plugins.CheckerPlugins.CodeStyleChecker.ComplexityChecker

Module implementing a checker for code complexity.

Global Attributes

None

Classes

ComplexityChecker Class implementing a checker for code complexity.
LineComplexityVisitor Class calculating the number of AST nodes per line of code and the median nodes/line score.

Functions

None


ComplexityChecker

Class implementing a checker for code complexity.

Derived from

object

Class Attributes

Codes

Class Methods

None

Methods

ComplexityChecker Constructor
__checkLineComplexity Private method to check the complexity of a single line of code and the median line complexity of the source code.
__checkMcCabeComplexity Private method to check the McCabe code complexity.
__error Private method to record an issue.
__ignoreCode Private method to check if the message code should be ignored.
__reportInvalidSyntax Private method to report a syntax error.
run Public method to check the given source for code complexity.

Static Methods

None

ComplexityChecker (Constructor)

ComplexityChecker(source, filename, select, ignore, args)

Constructor

source (list of str)
source code to be checked
filename (str)
name of the source file
select (list of str)
list of selected codes
ignore (list of str)
list of codes to be ignored
args (dict)
dictionary of arguments for the miscellaneous checks

ComplexityChecker.__checkLineComplexity

__checkLineComplexity()

Private method to check the complexity of a single line of code and the median line complexity of the source code.

Complexity is defined as the number of AST nodes produced by a line of code.

ComplexityChecker.__checkMcCabeComplexity

__checkMcCabeComplexity()

Private method to check the McCabe code complexity.

ComplexityChecker.__error

__error(lineNumber, offset, code, *args)

Private method to record an issue.

lineNumber (int)
line number of the issue
offset (int)
position within line of the issue
code (str)
message code
args (list)
arguments for the message

ComplexityChecker.__ignoreCode

__ignoreCode(code)

Private method to check if the message code should be ignored.

code (str)
message code to check for
Returns:
flag indicating to ignore the given code
Return Type:
bool

ComplexityChecker.__reportInvalidSyntax

__reportInvalidSyntax()

Private method to report a syntax error.

ComplexityChecker.run

run()

Public method to check the given source for code complexity.

Up


LineComplexityVisitor

Class calculating the number of AST nodes per line of code and the median nodes/line score.

Derived from

ast.NodeVisitor

Class Attributes

None

Class Methods

None

Methods

LineComplexityVisitor Constructor
score Public method to calculate the median.
sortedList Public method to get a sorted list of (line, nodes) tuples.
visit Public method to recursively visit all the nodes and add up the instructions.

Static Methods

None

LineComplexityVisitor (Constructor)

LineComplexityVisitor()

Constructor

LineComplexityVisitor.score

score()

Public method to calculate the median.

Returns:
median line complexity value
Return Type:
float

LineComplexityVisitor.sortedList

sortedList()

Public method to get a sorted list of (line, nodes) tuples.

Returns:
sorted list of (line, nodes) tuples
Return Type:
list of tuple of (int,int)

LineComplexityVisitor.visit

visit(node)

Public method to recursively visit all the nodes and add up the instructions.

node (ast.AST)
reference to the node
Up



Home ⌂Doc Index ◂Up ▴