# i05nagai/mafipy

mafipy/calibrator/sabr.py

### Summary

A
2 hrs

#### 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,
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.

#### Function sabr_caibration_simple has 9 arguments (exceeds 4 allowed). Consider refactoring. Open

def sabr_caibration_simple(market_vols,
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,
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):
Found in mafipy/calibrator/sabr.py - About 45 mins to fix

#### Invalid escape sequence '\l' Open

            \left(
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

        \ln\sigma(F, F)
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}
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
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
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)
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}
Found in mafipy/calibrator/sabr.py by pep8

Invalid escape sequences are deprecated in Python 3.6.

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