Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Identifying apparently unused globals

2 views
Skip to first unread message

sk...@pobox.com

unread,
Jul 11, 2006, 11:08:47 AM7/11/06
to pytho...@python.org

At work we have a fairly large application (about 20 packages, 300+ modules)
that looks like we might be heading into a bit of a plateau stage. Now
seems like a good time to identify and delete old, unused code that's flown
under the radar screen for awhile simply because nobody was looking for it.
Trouble is, most of that unused code consists of module-level classes,
functions and variables, so it's hard to distinguish mechanically from code
that *is* used. Is there a tool out there that will slurp in a number of
packages, identify all the global names then remove those that it determines
are referenced? (Yes, I know it's impossible to do this in general. We
have one very restricted exec statement and no eval() calls, so I'm not too
worried about that sort of obfuscation.)

Thx,

Skip

Simon Forman

unread,
Jul 11, 2006, 12:59:49 PM7/11/06
to

I haven't used it myself, but pychecker
(http://pychecker.sourceforge.net/) is supposed to be able to perform
such stunts. From the page: "Types of problems that can be found
include: Unused globals and locals (module or variable)"

HTH,
~Simon

sk...@pobox.com

unread,
Jul 11, 2006, 1:47:02 PM7/11/06
to Simon Forman, pytho...@python.org

Simon> I haven't used it myself, but pychecker
Simon> (http://pychecker.sourceforge.net/) is supposed to be able to
Simon> perform such stunts. From the page: "Types of problems that can
Simon> be found include: Unused globals and locals (module or variable)"

Thanks. I've used both pylint and pychecker. I'm not aware that either one
can do what I want. Here's a trivial example:

Module a.py:

RED = "red"
BLUE = "blue"

Module b.py:

import a
print a.RED

Considering modules a and b as a whole program, a.BLUE is unused anywhere in
the program.

Skip

0 new messages