i05nagai/mafipy

View on GitHub
mafipy/calibrator/sabr.py

Summary

Maintainability
A
2 hrs
Test Coverage

Cyclomatic complexity is too high in function sabr_caibration_simple. (10)
Open

def sabr_caibration_simple(market_vols,
                           market_strikes,
                           option_maturity,
                           beta,
                           init_alpha=None,
Severity: Minor
Found in mafipy/calibrator/sabr.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 sabr_caibration_simple has 9 arguments (exceeds 4 allowed). Consider refactoring.
Open

def sabr_caibration_simple(market_vols,
Severity: Major
Found in mafipy/calibrator/sabr.py - About 1 hr to fix

    Function sabr_caibration_west has 6 arguments (exceeds 4 allowed). Consider refactoring.
    Open

    def sabr_caibration_west(market_vols,
    Severity: Minor
    Found in mafipy/calibrator/sabr.py - About 45 mins to fix

      Function _find_alpha has 6 arguments (exceeds 4 allowed). Consider refactoring.
      Open

      def _find_alpha(underlying, option_maturity, vol_atm, beta, rho, nu):
      Severity: Minor
      Found in mafipy/calibrator/sabr.py - About 45 mins to fix

        Invalid escape sequence '\l'
        Open

                \ln\sigma(F, F)
        Severity: Minor
        Found in mafipy/calibrator/sabr.py by pep8

        Invalid escape sequences are deprecated in Python 3.6.

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

        Invalid escape sequence '\l'
        Open

                    \\approx \ln \\alpha - (1 - \\beta) \ln F
        Severity: Minor
        Found in mafipy/calibrator/sabr.py by pep8

        Invalid escape sequences are deprecated in Python 3.6.

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

        Invalid escape sequence '\s'
        Open

                \ln\sigma(F, F)
        Severity: Minor
        Found in mafipy/calibrator/sabr.py by pep8

        Invalid escape sequences are deprecated in Python 3.6.

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

        Invalid escape sequence '\s'
        Open

                - \sigma_{\mathrm{atm}} F^{1-\\beta}
        Severity: Minor
        Found in mafipy/calibrator/sabr.py by pep8

        Invalid escape sequences are deprecated in Python 3.6.

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

        Invalid escape sequence '\m'
        Open

                - \sigma_{\mathrm{atm}} F^{1-\\beta}
        Severity: Minor
        Found in mafipy/calibrator/sabr.py by pep8

        Invalid escape sequences are deprecated in Python 3.6.

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

        Invalid escape sequence '\l'
        Open

                    \\approx \ln \\alpha - (1 - \\beta) \ln F
        Severity: Minor
        Found in mafipy/calibrator/sabr.py by pep8

        Invalid escape sequences are deprecated in Python 3.6.

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

        Invalid escape sequence '\l'
        Open

                    \left(
        Severity: Minor
        Found in mafipy/calibrator/sabr.py by pep8

        Invalid escape sequences are deprecated in Python 3.6.

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

        There are no issues that match your filters.

        Category
        Status