Commit graph

284 commits

Author SHA1 Message Date
Yury Selivanov
145dff8567 inspect.tests: Fix tests to work on python built with '--without-doc-strings' #20471 2014-02-01 13:49:29 -05:00
Yury Selivanov
63da7c7b0c inspect.signature: Support duck-types of Python functions (Cython, for instance) #17159 2014-01-31 14:48:37 -05:00
Yury Selivanov
0860a0bd3f inspect.classify_class_attrs: Classify object.__new__ and __init__ correctly #18801 2014-01-31 14:28:44 -05:00
Yury Selivanov
0486f819c9 inspect.signature: Make sure that if a callable object has '_patialmethod'
attribute, that attribute is an instance of 'functools.partialmethod'.
2014-01-29 12:18:59 -05:00
Yury Selivanov
4cb939174c inspect.test.getfullargspec: Add a unittest to ensure correct annotations
handling #17481
2014-01-29 11:54:12 -05:00
Yury Selivanov
d82eddcf05 inspect.getfullargspec: Use inspect.signature API behind the scenes #17481 2014-01-29 11:24:39 -05:00
Yury Selivanov
07a9e452ac inspect.Signature: ensure that non-default params don't follow default ones #20427 2014-01-29 10:58:16 -05:00
Yury Selivanov
76c6c593ed inspect.signature: Add support for decorated (wrapped) builtins #20425 2014-01-29 10:52:57 -05:00
Yury Selivanov
b77511da92 inspect.Signature: Make from_builtin to raise an exception if no signature can
be provided #20422
2014-01-29 10:46:14 -05:00
Yury Selivanov
38b0d5a778 inspect.Signature.bind: Fix pos-only params with defaults; fix *args in named args #19140
Initial patch by Yann Kaiser (epsy).
2014-01-28 17:27:39 -05:00
Yury Selivanov
62560fb19a inspect.signature: Handle bound methods with '(*args)' signature correctly #20401 2014-01-28 12:26:24 -05:00
Yury Selivanov
d65bc70db0 inspect.tests: Remove redundant unittest
The removed unittest duplicates the other one (test_signature_on_builtins_no_signature)
2014-01-28 12:19:52 -05:00
Yury Selivanov
e7dcc5e97a inspect.signature: Support classes without user-defined __init__/__new__ #20308 2014-01-27 19:29:45 -05:00
Yury Selivanov
da5fe4f2da inspect.signature: Add support for 'functools.partialmethod' #20223 2014-01-27 17:28:37 -05:00
Yury Selivanov
2393dca472 inspect.signature: Use '/' to separate positional-only parameters from
the rest in Signature.__str__. #20356
2014-01-27 15:07:58 -05:00
Yury Selivanov
2eed8b7da0 inspect.getfile: Don't crash on classes without '__module__' attribute #20372
Some classes defined in C may not have the '__module__' attribute, so
we now handle this case to avoid having unexepected AttributeError.
2014-01-27 13:24:56 -05:00
Larry Hastings
5c66189e88 Issue #20189: Four additional builtin types (PyTypeObject,
PyMethodDescr_Type, _PyMethodWrapper_Type, and PyWrapperDescr_Type)
have been modified to provide introspection information for builtins.
Also: many additional Lib, test suite, and Argument Clinic fixes.
2014-01-24 06:17:25 -08:00
Larry Hastings
2a727916c5 Issue #20226: Major improvements to Argument Clinic.
* You may now specify an expression as the default value for a
  parameter!  Example: "sys.maxsize - 1".  This support is
  intentionally quite limited; you may only use values that
  can be represented as static C values.
* Removed "doc_default", simplified support for "c_default"
  and "py_default".  (I'm not sure we still even need
  "py_default", but I'm leaving it in for now in case a
  use presents itself.)
* Parameter lines support a trailing '\\' as a line
  continuation character, allowing you to break up long lines.
* The argument parsing code generated when supporting optional
  groups now uses PyTuple_GET_SIZE instead of PyTuple_GetSize,
  leading to a 850% speedup in parsing.  (Just kidding, this
  is an unmeasurable difference.)
* A bugfix for the recent regression where the generated
  prototype from pydoc for builtins would be littered with
  unreadable "=<object ...>"" default values for parameters
  that had no default value.
* Converted some asserts into proper failure messages.
* Many doc improvements and fixes.
2014-01-16 11:32:01 -08:00
Larry Hastings
16c5191ab3 Issue #20144: Argument Clinic now supports simple constants as parameter
default values.  inspect.Signature correspondingly supports them in
__text_signature__ fields for builtins.
2014-01-07 11:53:01 -08:00
Serhiy Storchaka
b12cb6a550 Issue #19535: Fixed test_docxmlrpc, test_functools, test_inspect, and
test_statistics when python is run with -OO.
2013-12-08 18:16:18 +02:00
Larry Hastings
fcafe43320 Fix inspect.signature tests for builtins when docstrings are compiled out. 2013-11-23 17:35:48 -08:00
Larry Hastings
44e2eaab54 Issue #19674: inspect.signature() now produces a correct signature
for some builtins.
2013-11-23 15:37:55 -08:00
Ethan Furman
b0c84cdaac Issue #19030: final pieces for proper location of various class attributes located in the metaclass.
Okay, hopefully the very last patch for this issue.  :/

I realized when playing with Enum that the metaclass attributes weren't always displayed properly.

New patch properly locates DynamicClassAttributes, virtual class attributes (returned by __getattr__ and friends), and metaclass class attributes (if they are also in the metaclass __dir__ method).

Also had to change one line in pydoc to get this to work.

Added tests in test_inspect and test_pydoc to cover these situations.
2013-10-20 22:37:39 -07:00
Ethan Furman
63c141cacd Close #19030: inspect.getmembers and inspect.classify_class_attrs
Order of search is now:
  1. Try getattr
  2. If that throws an exception, check __dict__ directly
  3. If still not found, walk the mro looking for the eldest class that has
     the attribute (e.g. things returned by __getattr__)
  4. If none of that works (e.g. due to a buggy __dir__, __getattr__, etc.
     method or missing __slot__ attribute), ignore the attribute entirely.
2013-10-18 00:27:39 -07:00
Brett Cannon
0de3f0197b Tweak skipIf message 2013-10-02 10:58:58 -04:00
Brett Cannon
634a8fc042 Try to fix issue #19134 again 2013-10-02 10:25:42 -04:00
Brett Cannon
63f03ed3db Issue #19134: Make a test in inspect conditional on multiprocessing
being available.

Thanks to Remi Pointel for the bug report.
2013-09-30 15:21:09 -04:00
Ethan Furman
e03ea37a7b Close #19030: improvements to inspect and Enum.
inspect.getmembers and inspect.classify_class_attrs now search the metaclass
mro for types.DynamicClassAttributes (what use to be called
enum._RouteClassAttributeToGetattr); in part this means that these two
functions no longer rely solely on dir().

Besides now returning more accurate information, these improvements also
allow a more helpful help() on Enum classes.
2013-09-25 07:14:41 -07:00
Nick Coghlan
f94a16b494 Close #18626: add a basic CLI for the inspect module 2013-09-22 22:46:49 +10:00
Serhiy Storchaka
1e0d82cece Issue #18830: inspect.getclasstree() no more produces duplicated entries even
when input list contains duplicates.
2013-09-05 17:16:12 +03:00
Serhiy Storchaka
362c1b513d Issue #18830: inspect.getclasstree() no more produces duplicated entries even
when input list contains duplicates.
2013-09-05 17:14:32 +03:00
Nick Coghlan
e8c45d6d0e Close #13266: Add inspect.unwrap
Initial patch by Daniel Urban and Aaron Iles
2013-07-28 20:00:01 +10:00
Ezio Melotti
0503de9c83 #17526: merge with 3.3. 2013-03-30 05:19:06 +02:00
Ezio Melotti
1b145927d7 #17526: fix an IndexError raised while passing code without filename to inspect.findsource(). Initial patch by Tyler Doyle. 2013-03-30 05:17:24 +02:00
Antoine Pitrou
64a5562f4c Issue #17071: Signature.bind() now works when one of the keyword arguments is named self. 2013-01-29 21:21:56 +01:00
Antoine Pitrou
bd41d1b14c Issue #17071: Signature.bind() now works when one of the keyword arguments is named `self`. 2013-01-29 21:20:57 +01:00
Andrew Svetlov
f7a17b48d7 Replace IOError with OSError (#16715) 2012-12-25 16:47:37 +02:00
Antoine Pitrou
5d62a61b58 Fix test_inspect messing up with linecache.cache. 2012-07-08 13:48:46 +02:00
Nick Coghlan
6c6e2545cb Properly test the various builtins lookup cases in inspect.getclosurevars 2012-06-23 20:07:39 +10:00
Antoine Pitrou
46cb1ef457 Use non-deprecated speling. 2012-06-23 18:11:59 +02:00
Nick Coghlan
04e2e3f231 Close #15153: Added inspect.getgeneratorlocals to simplify whitebox testing of generator state updates 2012-06-23 19:52:05 +10:00
Nick Coghlan
2f92e54507 Close #13062: Add inspect.getclosurevars to simplify testing stateful closures 2012-06-23 19:39:55 +10:00
Larry Hastings
7c7cbfc00f Issue #15008: Implement PEP 362 "Signature Objects".
Patch by Yury Selivanov.
2012-06-22 15:19:35 -07:00
Antoine Pitrou
d5a1a21a89 Prevent test_inspect from keeping alive a ton of frames and local variables by way of a global variable keeping a reference to a traceback.
Should fix some buildbot failures.
2012-06-17 23:18:07 +02:00
Georg Brandl
802505d05e Merge more test vs hashing-order fixes from 3.2. 2012-02-21 00:34:05 +01:00
Georg Brandl
178e5ea305 Disable an inspect test: it depends on dict ordering which parameter is reported as duplicate. 2012-02-21 00:32:36 +01:00
Antoine Pitrou
af5facc4ca Add part of test_inspect test from 2.7 2012-01-18 17:40:48 +01:00
Antoine Pitrou
0c60381749 Add part of test_inspect test from 2.7 2012-01-18 17:40:18 +01:00
Michael Foord
3ba95f8bd9 Metaclasses with metaclasses with a __dict__ descriptor can no longer trigger code execution with inspect.getattr_static.
Closes issue 11829.
2011-12-22 01:13:37 +00:00
Antoine Pitrou
86a8a9ae98 Issue #1785: Fix inspect and pydoc with misbehaving descriptors.
Also fixes issue #13581: `help(type)` wouldn't display anything.
2011-12-21 09:57:40 +01:00