Find out where a class is used throughout a program.

Terry Reedy tjreedy at udel.edu
Wed Sep 4 17:36:47 EDT 2013


On 9/4/2013 4:08 PM, dieter wrote:
> Azureaus <lo0446 at my.bristol.ac.uk> writes:
>> ...
>> is there a way of finding out / visualising where a particular class is called/used throughout a program?

> I do not know a simple and reliable way.
>
> When I face such a situation, I use standard operating system
> utilities (e.g. "grep -r" under *nix) to search for occurrences of
> the class name in the source tree. This often gives good
> results when the class name has been well chosen.

Idle has a built-in 'grep' called 'Find in Files' on the Edit menu. I 
use it routinely. By default, it searches for the current text 
selection, if there is one, in all files in the directory containing the 
current file (and subdirectories). Idle's grep uses Python's re module, 
so one does not have to learn another re dialect. So it works the same, 
with Unicode text, on all systems, including Windows, which does not 
come with grep. The (undocumented) limitation is that it searches each 
line separately, so it cannot search for multiline patterns. (I would 
not be surprised if grep does that same, as it also reports line numbers 
and multiple hits in a file.)

> Recently (within the last 2 months), I have seen the announcement
> (on "...python.announce") of a tracing tool (I forgot the package's
> name; maybe, it has been "CodeInspector"). When I have understood
> the announcement correctly, then it traces concrete runs
> and allows you to explore where objects (e.g. classes) have
> been used *in these runs*.


-- 
Terry Jan Reedy




More information about the Python-list mailing list