<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Generating call graphs for understanding and refactoring python code</title>
	<atom:link href="http://blog.prashanthellina.com/2007/11/14/generating-call-graphs-for-understanding-and-refactoring-python-code/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.prashanthellina.com/2007/11/14/generating-call-graphs-for-understanding-and-refactoring-python-code/</link>
	<description>( to ) ? be : ! be;</description>
	<pubDate>Fri, 25 Jul 2008 15:00:14 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
		<item>
		<title>By: Computer Forum</title>
		<link>http://blog.prashanthellina.com/2007/11/14/generating-call-graphs-for-understanding-and-refactoring-python-code/#comment-4863</link>
		<dc:creator>Computer Forum</dc:creator>
		<pubDate>Tue, 22 Jul 2008 11:21:11 +0000</pubDate>
		<guid isPermaLink="false">http://blog.prashanthellina.com/2007/11/14/generating-call-graphs-for-understanding-and-refactoring-python-code/#comment-4863</guid>
		<description>Amazing article! Detailed and very interested. I am going to recommend this blog to my friends.</description>
		<content:encoded><![CDATA[<p>Amazing article! Detailed and very interested. I am going to recommend this blog to my friends.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: prashanthellina</title>
		<link>http://blog.prashanthellina.com/2007/11/14/generating-call-graphs-for-understanding-and-refactoring-python-code/#comment-4338</link>
		<dc:creator>prashanthellina</dc:creator>
		<pubDate>Sun, 15 Jun 2008 05:10:28 +0000</pubDate>
		<guid isPermaLink="false">http://blog.prashanthellina.com/2007/11/14/generating-call-graphs-for-understanding-and-refactoring-python-code/#comment-4338</guid>
		<description>Rick, the code is available already for download. You can find the link in the blog post.</description>
		<content:encoded><![CDATA[<p>Rick, the code is available already for download. You can find the link in the blog post.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rick</title>
		<link>http://blog.prashanthellina.com/2007/11/14/generating-call-graphs-for-understanding-and-refactoring-python-code/#comment-4335</link>
		<dc:creator>Rick</dc:creator>
		<pubDate>Sun, 15 Jun 2008 01:42:58 +0000</pubDate>
		<guid isPermaLink="false">http://blog.prashanthellina.com/2007/11/14/generating-call-graphs-for-understanding-and-refactoring-python-code/#comment-4335</guid>
		<description>Thanks for this - great idea. 

I was wondering if you would be willing to send me the script (and any dependencies) you use on this site to generate the graph. 
I have an entirely different kind of data that I would like to graph in a similar way.

Thanks again,
Rick</description>
		<content:encoded><![CDATA[<p>Thanks for this - great idea. </p>
<p>I was wondering if you would be willing to send me the script (and any dependencies) you use on this site to generate the graph.<br />
I have an entirely different kind of data that I would like to graph in a similar way.</p>
<p>Thanks again,<br />
Rick</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: prashanthellina</title>
		<link>http://blog.prashanthellina.com/2007/11/14/generating-call-graphs-for-understanding-and-refactoring-python-code/#comment-630</link>
		<dc:creator>prashanthellina</dc:creator>
		<pubDate>Fri, 23 Nov 2007 12:55:54 +0000</pubDate>
		<guid isPermaLink="false">http://blog.prashanthellina.com/2007/11/14/generating-call-graphs-for-understanding-and-refactoring-python-code/#comment-630</guid>
		<description>I find it hard to imagine that "entirely different" functions will be calling each other. an example? I believe that functions that call each other will be doing some common task. Also, increase in speed is not a necessary goal of refactoring. In fact in python when you split a function into smaller functions, you incur a performace hit (albeit very small). The goal is to make the code more maintainable.</description>
		<content:encoded><![CDATA[<p>I find it hard to imagine that &#8220;entirely different&#8221; functions will be calling each other. an example? I believe that functions that call each other will be doing some common task. Also, increase in speed is not a necessary goal of refactoring. In fact in python when you split a function into smaller functions, you incur a performace hit (albeit very small). The goal is to make the code more maintainable.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: vikraman</title>
		<link>http://blog.prashanthellina.com/2007/11/14/generating-call-graphs-for-understanding-and-refactoring-python-code/#comment-627</link>
		<dc:creator>vikraman</dc:creator>
		<pubDate>Fri, 23 Nov 2007 10:42:49 +0000</pubDate>
		<guid isPermaLink="false">http://blog.prashanthellina.com/2007/11/14/generating-call-graphs-for-understanding-and-refactoring-python-code/#comment-627</guid>
		<description>This is a good way to split a big python script into smaller ones and including them in one "master script".  But i'm not sure whether such a division will be correct "functionally" because you might have to group functions that perform entirely different things in one file. 
plus, There may not be an increase in speed in doing such a thing. However from the point of view of a programmer its pretty neat.</description>
		<content:encoded><![CDATA[<p>This is a good way to split a big python script into smaller ones and including them in one &#8220;master script&#8221;.  But i&#8217;m not sure whether such a division will be correct &#8220;functionally&#8221; because you might have to group functions that perform entirely different things in one file.<br />
plus, There may not be an increase in speed in doing such a thing. However from the point of view of a programmer its pretty neat.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: prashanthellina</title>
		<link>http://blog.prashanthellina.com/2007/11/14/generating-call-graphs-for-understanding-and-refactoring-python-code/#comment-445</link>
		<dc:creator>prashanthellina</dc:creator>
		<pubDate>Wed, 14 Nov 2007 07:08:46 +0000</pubDate>
		<guid isPermaLink="false">http://blog.prashanthellina.com/2007/11/14/generating-call-graphs-for-understanding-and-refactoring-python-code/#comment-445</guid>
		<description>Although I have not tried yet, extending the script to handle modules and classes should be straight-forward. Like you said, evals, execs and functions being passed around are difficult to handle. Do keep me posted if you get somewhere along these lines. Thanks!</description>
		<content:encoded><![CDATA[<p>Although I have not tried yet, extending the script to handle modules and classes should be straight-forward. Like you said, evals, execs and functions being passed around are difficult to handle. Do keep me posted if you get somewhere along these lines. Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hugo</title>
		<link>http://blog.prashanthellina.com/2007/11/14/generating-call-graphs-for-understanding-and-refactoring-python-code/#comment-444</link>
		<dc:creator>Hugo</dc:creator>
		<pubDate>Wed, 14 Nov 2007 06:56:24 +0000</pubDate>
		<guid isPermaLink="false">http://blog.prashanthellina.com/2007/11/14/generating-call-graphs-for-understanding-and-refactoring-python-code/#comment-444</guid>
		<description>Wow! That's sweet... I'll give it a whirl when I have a big graph to generate. pycallgraph's speed (slow) made me think it is most useful to use it selectively on particular unit tests - but then I'd have to have good unit tests, which I don't always have.

How tough is it to extend this kind of thing to multiple modules? And what will it not work on, eval statements, obviously. How about use of "getattr" and similar? Basically any time a function is passed as a string, the call will be missed. Right?</description>
		<content:encoded><![CDATA[<p>Wow! That&#8217;s sweet&#8230; I&#8217;ll give it a whirl when I have a big graph to generate. pycallgraph&#8217;s speed (slow) made me think it is most useful to use it selectively on particular unit tests - but then I&#8217;d have to have good unit tests, which I don&#8217;t always have.</p>
<p>How tough is it to extend this kind of thing to multiple modules? And what will it not work on, eval statements, obviously. How about use of &#8220;getattr&#8221; and similar? Basically any time a function is passed as a string, the call will be missed. Right?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
