Serhiy Storchaka
a4a3020abc
bpo-32157: Removed explicit quotes around %r and {!r}. ( #4582 )
2017-11-28 22:54:42 +02:00
Dong-hee Na
762b9571c9
bpo-32018: Fix inspect.signature repr to follow PEP 8 ( #4408 )
2017-11-15 13:30:59 -05:00
Thomas Kluyver
e968bc7357
bpo-30639: Lazily compute repr for error ( #2132 )
2017-10-24 08:42:36 -04:00
Thomas Kluyver
f9169ce6b4
bpo-25532: Protect against infinite loops in inspect.unwrap() ( #1717 )
...
Some objects (like test mocks) auto-generate new objects on
attribute access, which can lead to an infinite loop in
inspect.unwrap().
Ensuring references are retained to otherwise temporary objects
and capping the size of the memo dict turns this case into a
conventional exception instead.
2017-05-23 13:27:52 +10:00
Jon Dufresne
3972628de3
bpo-30296 Remove unnecessary tuples, lists, sets, and dicts ( #1489 )
...
* Replaced list(<generator expression>) with list comprehension
* Replaced dict(<generator expression>) with dict comprehension
* Replaced set(<list literal>) with set literal
* Replaced builtin func(<list comprehension>) with func(<generator
expression>) when supported (e.g. any(), all(), tuple(), min(), &
max())
2017-05-18 07:35:54 -07:00
Dong-hee Na
378d70642a
bpo-30149: Fix partialmethod without explicit self parameter ( #1308 )
2017-05-17 12:00:51 -07:00
Nate
fcfe80ec25
bpo-29822: Make inspect.isabstract() work during __init_subclass__. ( #678 )
...
At the time when an abstract base class' __init_subclass__ runs,
ABCMeta.__new__ has not yet finished running, so in the presence of
__init_subclass__, inspect.isabstract() can no longer depend only on
TPFLAGS_IS_ABSTRACT.
2017-04-24 20:06:15 +03:00
Xiang Zhang
a6902e662c
bpo-26985: Add missing info of code object in inspect documentation (GH-1090)
2017-04-13 10:38:28 +08:00
Berker Peksag
3f988744b0
Issue #15812 : Merge from 3.5
2017-01-03 03:48:34 +03:00
Berker Peksag
225b01b840
Issue #15812 : Delete redundant max(start, 0)
...
Noticed by Serhiy Storchaka.
2017-01-03 03:48:04 +03:00
Berker Peksag
01debaccdd
Issue #15812 : Merge from 3.5
2017-01-02 06:59:12 +03:00
Berker Peksag
ff0e3b7a54
Issue #15812 : inspect.getframeinfo() now correctly shows the first line of a context
...
Patch by Sam Breese.
2017-01-02 06:57:43 +03:00
Nick Coghlan
3c35fdb8fb
Issue #27172 : Undeprecate inspect.getfullargspec()
...
This is still useful for single source Python 2/3 code
migrating away from inspect.getargspec(), but that wasn't
clear with the documented deprecation in place.
2016-12-02 20:29:57 +10:00
Yury Selivanov
d8aa0c6eec
Merge 3.5 (issue #28639 )
2016-11-08 19:59:29 -05:00
Yury Selivanov
c0215dfbc1
Issue #28639 : Fix inspect.isawaitable to always return bool
...
Patch by Justin Mayfield.
2016-11-08 19:57:44 -05:00
Yury Selivanov
4778e13148
docs/inspect: clarify iscoroutinefunction; add docs for isasyncgen*
2016-11-08 12:23:09 -05:00
Guido van Rossum
265dce6cbb
Issue #27989 : Tweak inspect.formatannotation() to improve pydoc rendering of function annotations. Ivan L. (3.5->3.6)
2016-10-22 07:56:58 -07:00
Guido van Rossum
52e5004b59
Issue #27989 : Tweak inspect.formatannotation() to improve pydoc rendering of function annotations. Ivan L.
2016-10-22 07:55:18 -07:00
Yury Selivanov
eb6364557f
Issue #28003 : Implement PEP 525 -- Asynchronous Generators.
2016-09-08 22:01:51 -07:00
Martin Panter
0f0eac431f
Issue #27993 : Fix problems with plural objects in docs and comments
2016-09-07 11:04:41 +00:00
Martin Panter
1aa642f6bd
Issue #27993 : Merge plural fixes from 3.5
2016-09-07 23:36:43 +00:00
Nick Coghlan
b4b966ece2
Issue #19611 : handle implicit parameters in inspect.signature
...
inspect.signature now reports the implicit ``.0`` parameters generated by
the compiler for comprehension and generator expression scopes as if they
were positional-only parameters called ``implicit0``.
Patch by Jelle Zijlstra.
2016-06-04 14:40:03 -07:00
Yury Selivanov
06495ffe93
Merge 3.5 (issue #26347 )
2016-03-02 11:08:05 -05:00
Yury Selivanov
f9e1f2bda9
inspect: Fix BoundArguments.apply_defaults to handle empty arguments
...
Patch by Frederick Wagner (issue #26347 )
2016-03-02 11:07:47 -05:00
Yury Selivanov
37dc2b2883
Issue #25486 : Resurrect inspect.getargspec in 3.6. Backout a565aad5d6e1.
...
The decision is that we shouldn't remove popular APIs (however long they
are depreacted) from Python 3, while 2.7 is still around and supported.
2016-01-11 15:15:01 -05:00
Serhiy Storchaka
6230235e83
Issue #25503 : Fixed inspect.getdoc() for inherited docstrings of properties.
...
Original patch by John Mark Vandenberg.
2015-10-29 08:17:10 +02:00
Serhiy Storchaka
ac4bdcc80e
Issue #25503 : Fixed inspect.getdoc() for inherited docstrings of properties.
...
Original patch by John Mark Vandenberg.
2015-10-29 08:15:50 +02:00
Berker Peksag
fa3922cfd0
Issue #13248 : Delete remaining references of inspect.getargspec().
...
Noticed by Yaroslav Halchenko.
2015-07-31 04:11:29 +03:00
Meador Inge
f98c35a816
Issue #24485 : Function source inspection fails on closures.
...
The fix for Issue #21217 introduced a regression that caused
`inspect.getsource` to return incorrect results on nested
functions. The root cause of the regression was due to
switching the implementation to analyze the underlying
bytecode instead of the source code.
This commit switches things back to analyzing the source code
in a more complete way. The original bug and the regression
are both fixed by the new source code analysis.
2015-07-23 22:52:49 -05:00
Meador Inge
5b718d7f4f
Issue #24485 : Function source inspection fails on closures.
...
The fix for Issue #21217 introduced a regression that caused
`inspect.getsource` to return incorrect results on nested
functions. The root cause of the regression was due to
switching the implementation to analyze the underlying
bytecode instead of the source code.
This commit switches things back to analyzing the source code
in a more complete way. The original bug and the regression
are both fixed by the new source code analysis.
2015-07-23 22:49:37 -05:00
Yury Selivanov
6dfbc5d98e
Issue #13248 : Remove inspect.getmoduleinfo() from 3.6 (deprecated in 3.3)
2015-07-23 17:49:00 +03:00
Yury Selivanov
f1b5ccb993
Issue #13248 : Remove inspect.getargspec from 3.6 (deprecated from 3.0)
2015-07-23 17:36:02 +03:00
Yury Selivanov
4f4913b38b
Issue #24485 : Revert backwards compatibility breaking changes of #21217 .
2015-07-23 17:10:00 +03:00
Yury Selivanov
e4e811d65b
Issue #24669 : Fix inspect.getsource() for 'async def' functions.
...
Patch by Kai Groner.
2015-07-21 19:01:52 +03:00
Serhiy Storchaka
2489bd5d4e
Issue #24206 : Fixed __eq__ and __ne__ methods of inspect classes.
2015-07-18 23:20:50 +03:00
Serhiy Storchaka
3018cc49e8
Issue #24206 : Fixed __eq__ and __ne__ methods of inspect classes.
2015-07-18 23:19:05 +03:00
Yury Selivanov
fdbeb2b4b6
Issue #24400 : Resurrect inspect.isawaitable()
...
collections.abc.Awaitable and collections.abc.Coroutine no longer
use __instancecheck__ hook to detect generator-based coroutines.
inspect.isawaitable() can be used to detect generator-based coroutines
and to distinguish them from regular generator objects.
2015-07-03 13:11:35 -04:00
Yury Selivanov
a74b5e59af
Issue #24400 : Remove inspect.isawaitable().
...
isawaitable() was added before collections.abc.Awaitable; now,
with Awaitable, it is no longer needed (we don't have ishashable()
or isiterable() methods in the inspect module either).
2015-06-30 18:19:01 -04:00
Yury Selivanov
5376ba9630
Issue #24400 : Introduce a distinct type for 'async def' coroutines.
...
Summary of changes:
1. Coroutines now have a distinct, separate from generators
type at the C level: PyGen_Type, and a new typedef PyCoroObject.
PyCoroObject shares the initial segment of struct layout with
PyGenObject, making it possible to reuse existing generators
machinery. The new type is exposed as 'types.CoroutineType'.
As a consequence of having a new type, CO_GENERATOR flag is
no longer applied to coroutines.
2. Having a separate type for coroutines made it possible to add
an __await__ method to the type. Although it is not used by the
interpreter (see details on that below), it makes coroutines
naturally (without using __instancecheck__) conform to
collections.abc.Coroutine and collections.abc.Awaitable ABCs.
[The __instancecheck__ is still used for generator-based
coroutines, as we don't want to add __await__ for generators.]
3. Add new opcode: GET_YIELD_FROM_ITER. The opcode is needed to
allow passing native coroutines to the YIELD_FROM opcode.
Before this change, 'yield from o' expression was compiled to:
(o)
GET_ITER
LOAD_CONST
YIELD_FROM
Now, we use GET_YIELD_FROM_ITER instead of GET_ITER.
The reason for adding a new opcode is that GET_ITER is used
in some contexts (such as 'for .. in' loops) where passing
a coroutine object is invalid.
4. Add two new introspection functions to the inspec module:
getcoroutinestate(c) and getcoroutinelocals(c).
5. inspect.iscoroutine(o) is updated to test if 'o' is a native
coroutine object. Before this commit it used abc.Coroutine,
and it was requested to update inspect.isgenerator(o) to use
abc.Generator; it was decided, however, that inspect functions
should really be tailored for checking for native types.
6. sys.set_coroutine_wrapper(w) API is updated to work with only
native coroutines. Since types.coroutine decorator supports
any type of callables now, it would be confusing that it does
not work for all types of coroutines.
7. Exceptions logic in generators C implementation was updated
to raise clearer messages for coroutines:
Before: TypeError("generator raised StopIteration")
After: TypeError("coroutine raised StopIteration")
2015-06-22 12:19:30 -04:00
Yury Selivanov
bf304fcb32
Issue #23934 : Fix inspect.signature to fail correctly for builtin types.
...
Initial patch by James Powell.
2015-05-30 17:08:36 -04:00
Yury Selivanov
507cd3cf91
Issue 24298: Fix signature() to properly unwrap wrappers around bound methods
2015-05-27 21:59:03 -04:00
Yury Selivanov
46c759d76d
Issue 24298: Fix signature() to properly unwrap wrappers around bound methods
2015-05-27 21:56:53 -04:00
Yury Selivanov
c8386f78fd
Issue 20438: Adjust stacklevel of inspect.getargspec() warning.
2015-05-22 16:09:44 -04:00
Yury Selivanov
3cfec2e2fc
Issue 20438: Deprecate inspect.getargspec() and friends.
2015-05-22 11:38:38 -04:00
Berker Peksag
b560158622
Set stacklevel to 2 to get more accurate warning messages from deprecated functions.
2015-05-21 23:40:54 +03:00
Yury Selivanov
095fb84fc2
Issue 23898: Fix inspect.classify_class_attrs() to work with __eq__
...
Patch by Mike Bayer.
2015-05-21 15:45:08 -04:00
Yury Selivanov
bf341fb5f6
Issue 23898: Fix inspect.classify_class_attrs() to work with __eq__
2015-05-21 15:41:57 -04:00
Yury Selivanov
ff54223606
Issue 24017: Use abc.Coroutine in inspect.iscoroutine() function
2015-05-21 12:03:21 -04:00
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