Commit Graph

67 Commits

Author SHA1 Message Date
Georg Brandl
208badda27 Fix another problem in inspect: if the module for an object cannot be found, don't try to give its __dict__ to linecache. 2006-04-30 17:42:26 +00:00
Phillip J. Eby
72ae6c80d4 Fix infinite regress when inspecting <string> or <stdin> frames. 2006-04-30 15:59:26 +00:00
Neal Norwitz
b94a368ff4 Add whitespace after comma 2006-04-11 07:17:08 +00:00
Phillip J. Eby
4703211080 Updated the warnings, linecache, inspect, traceback, site, and doctest modules
to work correctly with modules imported from zipfiles or via other PEP 302
__loader__ objects.  Tests and doc updates are included.
2006-04-11 01:07:43 +00:00
Armin Rigo
dd5c023af5 some more fixes and tests for inspect.getsource(), triggered by crashes
from the PyPy project as well as the SF bug #1295909.
2005-09-25 11:45:45 +00:00
Johannes Gijsbers
a5855d5ace Patch #1159931/bug #1143895: inspect.getsource failed when functions,
etc., had comments after the colon, and some other cases. This patch
take a simpler approach that doesn't rely on looking for a ':'. Thanks
Simon Percivall!
2005-03-12 16:37:11 +00:00
Raymond Hettinger
a1a992c0a0 Apply itemgetter() instead of lambda. 2005-03-11 06:46:45 +00:00
Raymond Hettinger
dbecd93b72 Replace list of constants with tuples of constants. 2005-02-06 06:57:08 +00:00
Johannes Gijsbers
1542f34c42 Patch #1011890: fix inspect.getsource breaking with line-continuation &
more. Thanks to Simon Percivall!

The patch makes changes to inspect.py in two places:

* the pattern to match against functions at line 436 is
modified: lambdas should be matched even if not
preceded by whitespace, as long as "lambda" isn't part
of another word.

* the BlockFinder class is heavily modified. Changes are:
- checking for "def", "class" or "lambda" names
before setting self.started to True. Then checking the
same line for word characters after the colon (if the
colon is on that line). If so, and the line does not
end with a line continuation marker, raise EndOfBlock
immediately.
- adding self.passline to show that the line is to be
included and no more checking is necessary on that
line. Since a NEWLINE token is not generated when a
line continuation marker exists, this allows getsource
to continue with these functions even if the following
line would not be indented.

Also add a bunch of
'quite-unlikely-to-occur-in-real-life-but-working-anyway' tests.
2004-12-12 16:46:28 +00:00
Raymond Hettinger
61656203cd Import no longer needed. 2004-09-20 18:08:31 +00:00
Skip Montanaro
13dea5a42b Raymond reminded me to use DSU key 2004-09-20 16:43:30 +00:00
Skip Montanaro
41f89a4f3d Sort classes by fully qualified name. In the common case where you are
displaying a set of classes from one module it doesn't matter, but if you
are displaying a large class tree from multiple modules it improves the
display to sort by module.name.
2004-09-20 15:40:38 +00:00
Johannes Gijsbers
9324526a76 Use __module__ attribute when available instead of using isclass() predicate
(functions and methods have grown the __module__ attribute too). See bug #570300.
2004-09-11 15:53:22 +00:00
Johannes Gijsbers
c473c99d16 Patch #1006219: let inspect.getsource show '@' decorators and add tests for
this (which are rather ugly, but it'll have to do until test_inspect gets a
major overhaul and a conversion to unittest). Thanks Simon Percivall!
2004-08-18 12:40:31 +00:00
Matthias Klose
2e829c0214 - Bug #891637, patch #1005466: fix inspect.getargs() crash on def foo((bar)). 2004-08-15 17:04:33 +00:00
Brett Cannon
b3de2e13ba 'inspect' was not listing the functions in a module properly if the module was
reached through a symlink (was comparing path of module to path to function and
were not matching because of the symlink).  os.path.realpath() is now used to
solve this discrepency.

Closes bug #570300.  Thanks Johannes Gijsbers for the fix.
2004-08-13 18:46:24 +00:00
Raymond Hettinger
a050171ee9 SF bug #973092: inspect.getframeinfo bug if 'context' is to big
Make sure the start argument is not negative.
2004-06-15 11:22:53 +00:00
Andrew M. Kuchling
ba8b6bc86f [Bug #954364] inspect.getframeinfo() sometimes produces incorrect traceback line #s; fix is to look at tb.tb_lineno, not tb.frame.f_lineno. Patch from Robin Becker and me. 2004-06-05 14:11:59 +00:00
Raymond Hettinger
3375fc5a3b Apply extract functions instead of lambda. 2003-12-01 20:12:15 +00:00
Raymond Hettinger
6b59f5f3fd Let library modules use the new keyword arguments for list.sort(). 2003-10-16 05:53:16 +00:00
Tim Peters
478c10554b Whitespace normalization. 2003-06-29 05:46:54 +00:00
Jeremy Hylton
ab91902f6f A bit o' reformatting and removal of non-_getframe currentframe(). 2003-06-27 18:41:20 +00:00
Jeremy Hylton
6496788e7a Fix for SF bug 620190: getargspec() doesn't work with methods. 2003-06-27 18:14:39 +00:00
Brett Cannon
4a671fe634 Return None to signal that the module the object was defined in was not found when object has no __name__ attr but is needed to figure out location of object. 2003-06-15 22:33:28 +00:00
Martin v. Löwis
e59e2bab8f Patch #711902: Cause pydoc to show data descriptor __doc__ strings. 2003-05-03 09:09:02 +00:00