Yury Selivanov
57c74fca02
Issue 24248: Deprecate inspect.Signature.from_function and .from_builtin
2015-05-20 23:07:02 -04:00
Yury Selivanov
cf45f022b7
inspect.Signature: Factor out Signature.from_function to a private helper
2015-05-20 14:38:50 -04:00
Yury Selivanov
bcd4fc161a
Issue 20691: Add follow_wrapped arg to inspect.signature/from_callable.
2015-05-20 14:30:08 -04:00
Yury Selivanov
8687275358
Issue 24205: Improve inspect.Signature.bind() error messages.
2015-05-19 00:27:49 -04:00
Yury Selivanov
b907a513c8
Issue 24190: Add inspect.BoundArguments.apply_defaults() method.
2015-05-16 13:45:09 -04:00
Yury Selivanov
f229bc5c53
inspect: Remove "0x..." IDs from Signature objects' __repr__
...
Issue 24200.
2015-05-15 12:53:56 -04:00
Yury Selivanov
3f6538fed0
Issue 22547: Implement informative __repr__ for inspect.BoundArguments
2015-05-14 18:47:17 -04:00
Yury Selivanov
692b340092
inspect: Micro-optimize __eq__ for Signature, Parameter and BoundArguments
...
Provide __ne__ method for consistency.
2015-05-14 18:20:01 -04:00
Yury Selivanov
6abe03288b
inspect: Add __slots__ to BoundArguments.
2015-05-13 17:18:41 -04:00
Yury Selivanov
7544508f02
PEP 0492 -- Coroutines with async and await syntax. Issue #24017 .
2015-05-11 22:57:16 -04:00
Antoine Pitrou
a8723a02ea
Issue #21217 : inspect.getsourcelines() now tries to compute the start and
...
end lines from the code object, fixing an issue when a lambda function is
used as decorator argument. Patch by Thomas Ballinger.
2015-04-15 00:41:29 +02:00
Serhiy Storchaka
5cf2b7253d
Issue #15582 : inspect.getdoc() now follows inheritance chains.
2015-04-03 22:38:53 +03:00
Serhiy Storchaka
08448a1f4d
Issue #23326 : Removed __ne__ implementations. Since fixing default __ne__
...
implementation in issue #21408 they are redundant.
2015-01-31 12:05:05 +02:00
Yury Selivanov
ef1e750225
inspect: Fix getsource() to load updated source of reloaded module
...
Issue #1218234 . Initial patch by Berker Peksag.
2014-12-08 16:05:34 -05:00
Berker Peksag
1ed2e69a4a
Issue #22186 : Fix typos in Lib/.
...
Patch by Févry Thibault.
2014-10-19 18:07:05 +03:00
Berker Peksag
f23530f569
Issue #22186 : Fix typos in Lib/.
...
Patch by Févry Thibault.
2014-10-19 18:04:38 +03:00
Yury Selivanov
081bbf6b28
inspect: Fix getsource() to support decorated functions.
...
Issue #1764286 . Patch by Claudiu Popa.
2014-09-26 17:34:54 -04:00
Yury Selivanov
08d4a4f488
inspect.Signature: Fix discrepancy between __eq__ and __hash__.
...
Issue #20334 . Thanks to Antony Lee for bug report & initial patch.
2014-09-12 15:48:02 -04:00
Antoine Pitrou
cdcafb78b2
Issue #16808 : inspect.stack() now returns a named tuple instead of a tuple.
...
Patch by Daniel Shahaf.
2014-08-24 10:50:28 -04:00
Serhiy Storchaka
521e5860a5
Issue #22032 : __qualname__ instead of __name__ is now always used to format
...
fully qualified class names of Python implemented classes.
2014-07-22 15:00:37 +03:00
Guido van Rossum
e82881cea7
Fix getargspec() doctring (varkw -> keywords).
2014-07-15 12:29:11 -07:00
Yury Selivanov
42407abe24
inspect: Validate that __signature__ is None or an instance of Signature.
...
Closes #21801 .
2014-06-23 10:23:50 -07:00
Yury Selivanov
c0f964fd55
inspect: Validate that __signature__ is None or an instance of Signature.
...
Closes #21801 .
2014-06-23 10:21:04 -07:00
Yury Selivanov
7de29687f2
inspect: Fix getsource() to load updated source of reloaded module
...
Issue #1218234 . Initial patch by Berker Peksag.
2014-12-08 18:00:25 -05:00
Yury Selivanov
67ae50ee1c
inspect: Make Signature and Parameter hashable. Issue #20334 .
2014-04-08 11:46:50 -04:00
Yury Selivanov
3f73ca23cf
inspect.signautre: Fix functools.partial support. Issue #21117
2014-04-08 11:30:45 -04:00
Yury Selivanov
0fceaf45e2
inspect.signautre: Fix functools.partial support. Issue #21117
2014-04-08 11:28:02 -04:00
Yury Selivanov
0cf3ed60d0
inspect: Remove references to Python-3000
2014-04-01 10:17:08 -04:00
Yury Selivanov
5a23bd0d37
inspect: Update docstrings; Rename _signature_internal to _signature_from_callable.
2014-03-29 13:47:11 -04:00
Yury Selivanov
dccfa13cdb
inspect: Fix getcallargs() to fail correctly if more than 3 args are missing.
...
Patch by Jeremiah Lowin. Closes #20817 .
2014-03-27 18:42:52 -04:00
Yury Selivanov
2542b66bb0
inspect: Fix getcallargs() to fail correctly if more than 3 args are missing.
...
Patch by Jeremiah Lowin. Closes #20817 .
2014-03-27 18:42:52 -04:00
Yury Selivanov
875df20e8a
inspect: Fix getcallargs() to raise correct TypeError
...
... for missing keyword-only arguments. Patch by Jeremiah Lowin.
Closes #20816 .
2014-03-27 18:23:03 -04:00
Yury Selivanov
b1d060bf8b
inspect: Fix getcallargs() to raise correct TypeError
...
... for missing keyword-only arguments. Patch by Jeremiah Lowin.
Closes #20816 .
2014-03-27 18:23:03 -04:00
Yury Selivanov
374375dd26
inspect.signature: Improve repr of Signature and Parameter. Closes #20378
2014-03-27 12:41:53 -04:00
Yury Selivanov
da39645ad3
inspect.Signature: Add 'Signature.from_callable' classmethod. Closes #17373
2014-03-27 12:09:24 -04:00
Yury Selivanov
a5d63dd7b8
inspect.signature: Make Signature and Parameter picklable. Closes #20726
2014-03-27 11:31:43 -04:00
Yury Selivanov
21e83a5564
inspect.signature: Use enum for parameter kind constants. Closes #19573
...
Patch by Antony Lee.
2014-03-27 11:23:13 -04:00
Yury Selivanov
a773de040d
inspect.signature: Check for function-like objects before builtins. Issue #17159
2014-02-21 18:30:53 -05:00
Yury Selivanov
8c185ee12e
inspect: Fix getfullargspec to support builtin module-level functions. Issue #20711
2014-02-21 01:32:42 -05:00
Yury Selivanov
57d240ef64
inspect: Fix getfullargspec() to not to follow __wrapped__ chains
...
Initial patch by Nick Coghlan.
2014-02-19 16:27:23 -05:00
Yury Selivanov
8dfb4576a9
inspect.signature: Check for function-like objects before builtins. Issue #17159
2014-02-21 18:30:53 -05:00
Yury Selivanov
d224b6a796
inspect: Fix getfullargspec to support builtin module-level functions. Issue #20711
2014-02-21 01:32:42 -05:00
Yury Selivanov
ff385b89f4
inspect: Fix getfullargspec() to not to follow __wrapped__ chains
...
Initial patch by Nick Coghlan.
2014-02-19 16:27:23 -05:00
Larry Hastings
2623c8c23c
Issue #20530 : Argument Clinic's signature format has been revised again.
...
The new syntax is highly human readable while still preventing false
positives. The syntax also extends Python syntax to denote "self" and
positional-only parameters, allowing inspect.Signature objects to be
totally accurate for all supported builtins in Python 3.4.
2014-02-08 22:15:29 -08:00
Yury Selivanov
7d2bfed7a2
inspect.signature: Add (restore) support for builtin classes #20473
2014-02-03 02:46:07 -05:00
Yury Selivanov
1d24183550
inspect.signature: Use 'inspect.isbuiltin' in 'Signature.from_builtin'
2014-02-02 12:51:20 -05:00
Yury Selivanov
0ba5f0d386
inspect: Add some comments in Parameter.__eq__ method
2014-01-31 15:30:30 -05:00
Yury Selivanov
5334bcdf97
inspect.Signauture.from_function: validate duck functions in Signature constructor #17159
2014-01-31 15:21:51 -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
89ca85c746
inspect.Signature.from_function: Use CO_VARARGS & CO_VARKEYWORDS constants
2014-01-29 16:50:40 -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
c45873e434
inspect.Signature.bind: Update method signature to rule out possiblity
...
of name conflict between '__bind_self' and actual keyword argument to
'bind' or 'bind_partial'.
2014-01-29 12:10:27 -05:00
Yury Selivanov
421f0c7be1
inspect: Rename private helper function
2014-01-29 12:05:40 -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
9b9ac953c8
inspect.Signature.bind: Add **kwargs/positional-only check back
2014-01-28 20:54:28 -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
8757ead38e
inspect: Fix docstrings for Parameter & Signature classes
2014-01-28 16:39:25 -05:00
Yury Selivanov
62560fb19a
inspect.signature: Handle bound methods with '(*args)' signature correctly #20401
2014-01-28 12:26:24 -05:00
Larry Hastings
581ee3618c
Issue #20326 : Argument Clinic now uses a simple, unique signature to
...
annotate text signatures in docstrings, resulting in fewer false
positives. "self" parameters are also explicitly marked, allowing
inspect.Signature() to authoritatively detect (and skip) said parameters.
Issue #20326 : Argument Clinic now generates separate checksums for the
input and output sections of the block, allowing external tools to verify
that the input has not changed (and thus the output is not out-of-date).
2014-01-28 05:00:08 -08: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
Benjamin Peterson
c22eaecd53
merge 3.3 ( closes #20108 )
2014-01-02 12:26:50 -06:00
Benjamin Peterson
3e6ab1715d
avoid parameter name clash ( closes #20108 )
2014-01-02 12:24:08 -06: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
a8b0707d91
Issue #19030 : special-cased __dict__ as the actual dict is not returned, a proxy is.
2013-10-18 01:22:08 -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
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
Ethan Furman
668dede7e9
Close #18929 : inspect.classify_class_attrs will now search the metaclasses (last) to find where an attr was defined.
2013-09-14 18:53:26 -07: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
Ezio Melotti
9a3777e525
#18705 : merge with 3.3.
2013-08-17 15:53:55 +03:00
Ezio Melotti
30b9d5d3af
#18705 : fix a number of typos. Patch by Févry Thibault.
2013-08-17 15:50:46 +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
Brett Cannon
cd171c8e92
Issue #18200 : Back out usage of ModuleNotFoundError (8d28d44f3a9a)
2013-07-04 17:43:24 -04:00
Brett Cannon
e4f41deccf
Issue #17177 : The imp module is pending deprecation.
...
To make sure there is no issue with code that is both Python 2 and 3
compatible, there are no plans to remove the module any sooner than
Python 4 (unless the community moves to Python 3 solidly before then).
2013-06-16 13:13:40 -04:00
Brett Cannon
0a140668fa
Issue #18200 : Update the stdlib (except tests) to use
...
ModuleNotFoundError.
2013-06-13 20:57:26 -04:00
Brett Cannon
4c14b5de1c
#17115,17116: Have modules initialize the __package__ and __loader__
...
attributes to None.
The long-term goal is for people to be able to rely on these
attributes existing and checking for None to see if they have been
set. Since import itself sets these attributes when a loader does not
the only instances when the attributes are None are from someone
overloading __import__() and not using a loader or someone creating a
module from scratch.
This patch also unifies module initialization. Before you could have
different attributes with default values depending on how the module
object was created. Now the only way to not get the same default set
of attributes is to circumvent initialization by calling
ModuleType.__new__() directly.
2013-05-04 13:56:58 -04: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
Meador Inge
8fda359095
Issue #15401 : Fix typo in inspect.getclosurevars docstring.
2012-07-19 21:33:21 -05:00
Nick Coghlan
76e077001d
Close #15387 : inspect.getmodulename() now uses a new importlib.machinery.all_suffixes() API rather than the deprecated inspect.getmoduleinfo()
2012-07-18 23:14:57 +10: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
Brett Cannon
2b88fcf693
Issue #14987 : Add a missing import statement
2012-06-02 22:28:42 -04:00
Brett Cannon
cb66eb0dec
Issue #13959 : Deprecate imp.get_suffixes() for new attributes on
...
importlib.machinery that provide the suffix details for import.
The attributes were not put on imp so as to compartmentalize
everything importlib needs for setting up imports in
importlib.machinery.
This also led to an indirect deprecation of inspect.getmoduleinfo() as
it directly returned imp.get_suffix's returned tuple which no longer
makes sense.
2012-05-11 12:58:42 -04:00