Hi all

I came across some tools [1] & [2] that we could use to make sure we don't
increase our code complexity.

Has anyone had any experience with these or other tools?

radon is the underlying reporting tool and xenon is a "monitor" - meaning
it will fail if a threshold is reached.

To save you the time:
radon cc -nd heat
    M 809:4 Stack.delete - E
    M 701:4 Stack.update_task - D
    M 738:4 Server.handle_update - D
    M 891:4 Server.validate - D
    F 71:0 to_primitive - D
    F 252:0 _print_opt - D
    M 240:4 FakeHTTPClient.post_servers_1234_action - F

It ranks the complexity from A (best) upwards, the command above (-nd) says
only show D or worse.
If you look at these methods they are getting out of hand and are  becoming
difficult to understand.
I like the idea of having a threshold that says we are not going to just
keep adding to the complexity
of these methods.

This can be enforced with:
xenon --max-absolute E heat
ERROR:xenon:block "heat/tests/v1_1/fakes.py:240 post_servers_1234_action"
has a rank of F

[1] https://pypi.python.org/pypi/radon
[2] https://pypi.python.org/pypi/xenon

If people are open to this, I'd like to add these to the test-requirements
and trial this in Heat
(as part of the pep8 tox target).

OpenStack-dev mailing list

Reply via email to