The get_name() code resulted in a RuntimeError (due to deep recursion), if the passed frame referred to a class property. The main fix was to not use getattr(), since that resulted in executing the property get code. This pull request contains the updated get_name() as well as two new test cases.
added (failing) test for get_name().
updated get_name() to handle properties.
added (failing) test for getlang() within class method.
updated get_name() for test_get_name_class_method.
Simplejson is required for Pytool. See the comment about the 'for_json()' hook on line 75.
Try replacing this line with:
maybe_func = object.__getattribute__(maybe_cls, frame.f_code.co_name)
... which should avoid recursion issues while still using the standard MRO.
Add test cases and fix from #3.
Apparently this languished for over a year. These test cases and the fix are added.