# Neat code complexity tool.

David Stanek wrote a nice utility to measure code complexity. This post explains the details. Anyway, I downloaded his code and tried it out. I really like it:
``` \$ cat matt.py """A few functions for use with pygenie.""" def f(x): "Make an 8-way branch, 1 layer deep." if x == 1: return 1 elif x == 2: return 2 elif x == 3: return 3 elif x == 4: return 4 elif x == 5: return 5 elif x == 6: return 6 elif x == 7: return 7 elif x == 8: return 8```

``` def g(a, b, c): "This function has 8 paths." if a: if b: if c: return 1 # a and b and c. else: return 2 # a and b and not c. else: if c: return 3 # a and not b and c else: return 4 # a and not b and not c. else: if b: if c: return 5 # not a and b and c. else: return 6 # not a and not b and c. else: if c: return 7 # not a and b and not c. else: return 8 # not a and not b and not c. ```

```def h(x): if x: return True else: return False ```

And this is what happens when I run the code:
``` \$ ./pygenie.py complexity matt.py File: /home/matt/svn-checkouts/cyclic_complexity/matt.py Type Name Complexity -------------------- F f 9 F g 8 ```

The functions f and g have a complexity exceeding 7, so they print out.

This might make a nice nose plugin.

## 6 thoughts on “Neat code complexity tool.”

1. always your articles are rocking and informative man. Thanks a lot for your lovely share. Keep on posting man we love to read it .thanks

2. Wonder full writing skills you got mate.

Have a nice day
Albert
______________________________________________