ahawker/crython

View on GitHub
crython/field.py

Summary

Maintainability
B
5 hrs
Test Coverage

File field.py has 269 lines of code (exceeds 250 allowed). Consider refactoring.
Open

"""
    crython/field
    ~~~~~~~~~~~~~

    Contains functionality for representing an individual field within an expression.
Severity: Minor
Found in crython/field.py - About 2 hrs to fix

    Cyclomatic complexity is too high in method _matches_str_multi_char_field. (6)
    Open

        def _matches_str_multi_char_field(self, item, start, stop, step=1):
            """
            Check to see if this multi character part (broken into start, stop, and optional step)
            of the field matches the given time value.
    
    
    Severity: Minor
    Found in crython/field.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 from_str has 7 arguments (exceeds 4 allowed). Consider refactoring.
    Open

        def from_str(cls, value, name, min, max, specials, *args, **kwargs):
    Severity: Major
    Found in crython/field.py - About 50 mins to fix

      Function from_number has 7 arguments (exceeds 4 allowed). Consider refactoring.
      Open

          def from_number(cls, value, name, min, max, specials, *args, **kwargs):
      Severity: Major
      Found in crython/field.py - About 50 mins to fix

        Function from_iterable has 7 arguments (exceeds 4 allowed). Consider refactoring.
        Open

            def from_iterable(cls, value, name, min, max, specials, *args, **kwargs):
        Severity: Major
        Found in crython/field.py - About 50 mins to fix

          Function __init__ has 5 arguments (exceeds 4 allowed). Consider refactoring.
          Open

              def __init__(self, value, name, min, max, specials):
          Severity: Minor
          Found in crython/field.py - About 35 mins to fix

            TODO found
            Open

                    # Do allow creation of fields with special characters we don't have comparison logic for yet. # TODO - #11
            Severity: Minor
            Found in crython/field.py by fixme

            TODO found
            Open

                    # If it's a last special character (last of "day of month" or "day of week") or "?". TODO - #11
            Severity: Minor
            Found in crython/field.py by fixme

            TODO found
            Open

                    # If it's the "last" special character (last "day of month" or "day of week"). TODO - #11
            Severity: Minor
            Found in crython/field.py by fixme

            There are no issues that match your filters.

            Category
            Status