"""Checks use of "too-complex" check""" def f1(): """McCabe rating: 1""" pass def f2(n): """McCabe rating: 1""" k = n + 4 s = k + n return s def f3(n): """McCabe rating: 3""" if n > 3: return "bigger than three" elif n > 4: return "is never executed" else: return "smaller than or equal to three" def f4(): """McCabe rating: 2""" for i in range(10): print(i) def f5(mylist): """McCabe rating: 2""" for i in mylist: print(i) else: print(None) def f6(n): """McCabe rating: 2""" if n > 4: return f(n - 1) else: return n def f7(): """McCabe rating: 3""" def b(): """McCabe rating: 2""" def c(): """McCabe rating: 1""" pass c() b() def f8(): """McCabe rating: 4""" try: print(1) except TypeA: print(2) except TypeB: print(3) else: print(4) def f9(): """McCabe rating: 9""" myint = 2 if myint > 5: pass else: if myint <= 5: pass else: myint = 3 if myint > 2: if myint > 3: pass elif myint == 3: pass elif myint < 3: pass else: if myint: pass else: if myint: pass myint = 4 def f10(): """McCabe rating: 11""" myint = 2 if myint == 5: return myint elif myint == 6: return myint elif myint == 7: return myint elif myint == 8: return myint elif myint == 9: return myint elif myint == 10: if myint == 8: while True: return True elif myint == 8: with myint: return 8 else: if myint == 2: return myint return myint return myint class MyClass1(object): """Class of example to test mccabe""" _name = 'MyClass' # To force a tail.node=None def method1(): """McCabe rating: 1""" pass def method2(self, param1): """McCabe rating: 18""" if not param1: pass pass if param1: pass else: pass pass if param1: pass if param1: pass if param1: pass if param1: pass if param1: pass if param1: pass if param1: for value in range(5): pass pass for count in range(6): with open('myfile') as fp: count += 1 pass pass try: pass if not param1: pass else: pass if param1: raise BaseException('Error') with open('myfile2') as fp2: pass pass finally: if param1 is not None: pass for count2 in range(8): try: pass except BaseException('Error2'): pass return param1 for count in range(10): if count == 1: exit(0) elif count == 2: exit(1) else: exit(2) def method3(self): try: if True: pass else: pass finally: pass return True