Commit Graph

141 Commits

Author SHA1 Message Date
Pablo Galindo 7cd2543416
bpo-34890: Make iscoroutinefunction, isgeneratorfunction and isasyncgenfunction work with functools.partial (GH-9903)
inspect.isfunction() processes both inspect.isfunction(func) and
inspect.isfunction(partial(func, arg)) correctly but some other functions in the
inspect module (iscoroutinefunction, isgeneratorfunction and isasyncgenfunction)
lack this functionality. This commits adds a new check in the mentioned functions
in the inspect module so they can work correctly with arbitrarily nested partial
functions.
2018-10-26 12:19:14 +01:00
Stéphane Wirtel 1770d1c512 bpo-35038: AttributeError: 'frame' object has no attribute 'f_restricted'. (GH-10098)
https://bugs.python.org/issue35038
2018-10-25 14:13:45 -07:00
Andrés Delfino 271818fe27 Fix "Python" casing in a few places (GH-9001) 2018-09-14 10:13:09 -07:00
Dong-hee Na 4f54867e29 bpo-33197: Add versionadded tag to the documentation of ParameterKind (GH-7536) 2018-06-08 12:07:52 -04:00
Dong-hee Na 4aa3006619 bpo-33197: Add description property for _ParameterKind. (GH-7206) 2018-06-07 23:46:31 -04:00
Brian Curtin df826f36e0
Clarify the inspect.getmembers predicate parameter (#6615)
Previously, the predicate parameter was mentioned, but what it was to be
called with was not documented and required either trial-and-error or
looking into the source to find that it is called with the `value`, or
second item, of the full members list. This change addresses what the
predicate will receive, as well as does some light formatting to make
this clear.
2018-04-26 19:48:26 -04:00
larryhastings f36ba12809
bpo-32697: Definition order of kwonly params is now guaranteed preserved. (#5391)
Definition order of kwonly params is now guaranteed preserved.
2018-01-28 11:13:09 -08:00
Nathaniel J. Smith fc2f407829 bpo-32591: Add native coroutine origin tracking (#5250)
* Add coro.cr_origin and sys.set_coroutine_origin_tracking_depth
* Use coroutine origin information in the unawaited coroutine warning
* Stop using set_coroutine_wrapper in asyncio debug mode
* In BaseEventLoop.set_debug, enable debugging in the correct thread
2018-01-21 09:44:07 -05: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
Marco Buttu 3f2155ffe6 bpo-16355: Clarify when inspect.getcomments() returns None (#428)
Initial patch by Vajrasky Kok.
2017-03-17 11:50:23 +03:00
Matthias Bussonnier 0899b98095 bpo-28814: Undeprecate inadvertently deprecated inspect functions. (#122)
Nick Coghlan said on bpo-28814:

> inspect.getargvalues() and inspect.formatargvalues() were deprecated
> in Python 3.5 as part of implementing bpo-20438

> This is incorrect, as these are *frame* introspection related functions,
> not callable introspection ones. The documentation and implementation
> layout is confusing though, as they're interleaved with the callable
> introspection operation

This commit undeprecates these functions and adds a note to ignore
previous deprecation notices.
2017-02-22 08:45:51 +03:00
Yury Selivanov 03660041d2 Issue #28091: Document PEP 525 & PEP 530.
Patch by Eric Appelt.
2016-12-15 17:36:05 -05: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 b738a1f8a4 Issue #26010: fix typos; rewording 2016-10-20 16:30:51 -04:00
Yury Selivanov e20fed9182 Merge 3.5 + document CO_ASYNC_GENERATOR; issue #26010 2016-10-20 13:11:34 -04:00
Yury Selivanov ea75a513df Issue #26010: Document CO_* constants 2016-10-20 13:06:30 -04:00
Eric Snow 4f29e75289 Issue #24254: Drop cls.__definition_order__. 2016-09-08 15:11:11 -07:00
Eric Snow 92a6c170e6 Issue #24254: Preserve class attribute definition order. 2016-09-05 14:50:11 -07:00
Martin Panter 2fec611a70 Issue #24314: Merge doc links from 3.5 2016-06-18 08:20:22 +00:00
Martin Panter bae5d81f5d Issue #24314: Fix doc links for general attributes like __name__, __dict__ 2016-06-18 03:57:31 +00:00
Terry Jan Reedy 4da945f361 Merge Issue #22558. 2016-06-11 15:06:08 -04:00
Terry Jan Reedy fa089b9b0b Issue #22558: Add remaining doc links to source code for Python-coded modules.
Reformat header above separator line (added if missing) to a common format.
Patch by Yoni Lavi.
2016-06-11 15:02:54 -04: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
Senthil Kumaran 96ebb8431a [merge from 3.5] issue27043 - Explain the inspect.cleandoc behavior on synopsis line and other lines.
Patch contributed by Nathan Harold.
2016-05-29 20:37:54 -07:00
Senthil Kumaran ebd84e342c issue27043 - Explain the inspect.cleandoc behavior on synopsis line and other lines.
Patch contributed by Nathan Harold.
2016-05-29 20:36:58 -07:00
Serhiy Storchaka c499f30286 Issue #23921: Standardized documentation whitespace formatting.
Original patch by James Edwards.
2016-05-10 12:01:56 +03:00
Serhiy Storchaka dba903993a Issue #23921: Standardized documentation whitespace formatting.
Original patch by James Edwards.
2016-05-10 12:01:23 +03:00
Yury Selivanov 9179c40a9f Merge 3.5 (issue #25486) 2016-01-11 21:05:18 -05:00
Yury Selivanov a7c159ddf3 Issue #25486: Drop "removed in 3.6" wording from inspect.getargspec docs. 2016-01-11 21:04:50 -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
Yury Selivanov 05a4a9cbaa Merge 3.5 2015-10-31 13:29:35 -04:00
Yury Selivanov c62162d5fd docs/inspect: Document __annotations__ 2015-10-31 13:29:15 -04:00
Yury Selivanov 9b82a99a64 Merge 3.5 2015-09-08 22:40:45 -04:00
Yury Selivanov 100fc3fbc2 whatsnew/3.5: Fix library news till Py3.5a1. Update other docs. 2015-09-08 22:40:30 -04:00
Yury Selivanov d11223e0d6 Merge 3.5 2015-08-17 13:04:49 -04:00
Yury Selivanov 5fbad3c9f2 docs: Clarify that gi_yieldfrom was first added in 3.5 2015-08-17 13:04:41 -04:00
Yury Selivanov 9e35cac3a1 Merge 3.5 2015-08-17 13:02:53 -04:00
Yury Selivanov c135f0a850 docs: Fix inspect docs re gi_yieldfrom 2015-08-17 13:02:42 -04:00
Berker Peksag fa3922cfd0 Issue #13248: Delete remaining references of inspect.getargspec().
Noticed by Yaroslav Halchenko.
2015-07-31 04:11:29 +03:00
Berker Peksag 317ccf3cd4 Issue #15582: Add a whatsnew entry for inspect.getdoc() changes in 3.5.
Patch by Martin Panter.
2015-07-30 18:06:30 +03:00
Berker Peksag 4333d8bad7 Issue #15582: Add a whatsnew entry for inspect.getdoc() changes in 3.5.
Patch by Martin Panter.
2015-07-30 18:06:09 +03: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 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 e13f8f3cab Issue #24450: Add gi_yieldfrom to generators; cr_await to coroutines.
Patch by Benno Leslie and Yury Selivanov.
2015-07-03 00:23:30 -04:00
Yury Selivanov 59a3b6764c Issue #24541: Drop test_inspect.test_eightteen unittest; update docs
Suggested by Martin Panter.
2015-06-30 22:06:42 -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 582b8c7629 Issue 22357: Merge from 3.4 2015-05-30 13:54:36 -04:00
Yury Selivanov 0339568753 Issue 22357: Document __qualname__ in inspect.rst 2015-05-30 13:53:49 -04:00