Commit Graph

37384 Commits

Author SHA1 Message Date
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
Dingyuan Wang e411b6629f Issue #20387: Restore retention of indentation during untokenize. 2015-06-22 10:01:12 +08:00
Jason R. Coombs b6d1cdda8e Issue #20387: Correct test to properly capture expectation. 2015-06-25 22:42:24 -04:00
Serhiy Storchaka 1a2d134e31 Issue #24408: Fixed test for tkinter.Font on OS X.
Based on patch by Martin Panter.
2015-06-21 14:43:15 +03:00
Serhiy Storchaka ac803cd2f3 Issue #24408: Fixed test for tkinter.Font on OS X.
Based on patch by Martin Panter.
2015-06-21 14:42:57 +03:00
Serhiy Storchaka 753a1dfcc2 Issue #24408: Fixed test for tkinter.Font on OS X.
Based on patch by Martin Panter.
2015-06-21 14:41:44 +03:00
Serhiy Storchaka 66dc4648fc Issue #24426: Fast searching optimization in regular expressions now works
for patterns that starts with capturing groups.  Fast searching optimization
now can't be disabled at compile time.
2015-06-21 14:06:55 +03:00
Jason R. Coombs 5713b3c5bf Issue #20387: Add test capturing failure to roundtrip indented code in tokenize module. 2015-06-20 19:52:22 -04:00
Jason R. Coombs 7cf36387e4 Remove unused import and remove doctest-only import into doctests. 2015-06-20 19:13:50 -04:00
Steve Dower c1c272e8bf Issue #8232: Renamed WinFireFox to WinFirefox 2015-06-15 09:11:37 -07:00
Steve Dower f3291a8340 Issue #8232: Renamed WinFireFox to WinFirefox 2015-06-15 09:11:14 -07:00
Victor Stinner 138adb8d05 (Merge 3.4) Issue #15745: Rewrite os.utime() tests in test_os
* Don't use the timestamp of an existing file anymore, only use fixed
  timestamp
* Enhance the code checking the resolution of the filesystem timestamps.
* Check timestamps with a resolution of 1 microsecond instead of 1 millisecond
* When os.utime() uses the current system clock, tolerate a delta of 20 ms.
  Before some os.utime() tolerated a different of 10 seconds.
* Merge duplicated tests and simplify the code
2015-06-12 22:01:54 +02:00
Victor Stinner e12e7aa3fd Issue #15745: Rewrite os.utime() tests in test_os
* Don't use the timestamp of an existing file anymore, only use fixed
  timestamp
* Enhance the code checking the resolution of the filesystem timestamps.
* Check timestamps with a resolution of 1 microsecond instead of 1 millisecond
* When os.utime() uses the current system clock, tolerate a delta of 20 ms.
  Before some os.utime() tolerated a different of 10 seconds.
* Merge duplicated tests and simplify the code
2015-06-12 21:58:00 +02:00
Victor Stinner cf05970307 Remove unused import on test_os 2015-06-12 21:57:50 +02:00
Victor Stinner 47aacc8f69 Issue #15745: Rewrite os.utime() tests in test_os
* Don't use the timestamp of an existing file anymore, only use fixed
  timestamp
* Enhance the code checking the resolution of the filesystem timestamps.
* Check timestamps with a resolution of 1 microsecond instead of 1 millisecond
* When os.utime() uses the current system clock, tolerate a delta of 20 ms.
  Before some os.utime() tolerated a different of 10 seconds.
* Merge duplicated tests and simplify the code
2015-06-12 17:26:23 +02:00
Serhiy Storchaka ac6045be67 Issue #24408: Added more tkinter.Font tests. 2015-06-09 07:21:12 +03:00
Serhiy Storchaka fabdc827a5 Issue #24408: Added more tkinter.Font tests. 2015-06-09 07:21:00 +03:00
Serhiy Storchaka c0ed707b2f Issue #24408: Added more tkinter.Font tests. 2015-06-09 07:18:54 +03:00
Serhiy Storchaka c5d2d40238 Issue #24299: Fixed test__locale on Solaris. 2015-06-08 18:50:28 +03:00
Serhiy Storchaka 23e6109112 Issue #24299: Fixed test__locale on Solaris. 2015-06-08 18:50:18 +03:00
Serhiy Storchaka 07c002573a Issue #24299: Fixed test__locale on Solaris. 2015-06-08 18:48:33 +03:00
Serhiy Storchaka 67ef7e7b5b Issue #24408: Fixed AttributeError in measure() and metrics() methods of
tkinter.Font.
2015-06-08 18:44:30 +03:00
Serhiy Storchaka 4fafda731a Issue #24408: Fixed AttributeError in measure() and metrics() methods of
tkinter.Font.
2015-06-08 18:43:55 +03:00
Serhiy Storchaka 29e26a72d7 Issue #14373: Other attempt to fix threaded test for lru_cache(). 2015-06-08 12:44:43 +03:00
Serhiy Storchaka 391af751f2 Issue #14373: Other attempt to fix threaded test for lru_cache(). 2015-06-08 12:44:18 +03:00
Serhiy Storchaka 40e74006ad Issue #14373: C implementation of functools.lru_cache() now can be used with
methods.
2015-06-08 11:20:22 +03:00
Serhiy Storchaka e7070f09bc Issue #14373: C implementation of functools.lru_cache() now can be used with
methods.
2015-06-08 11:19:24 +03:00
Serhiy Storchaka df2cbbcb55 Issue #14373: Fixed threaded test for lru_cache(). Added new threaded test. 2015-06-08 11:15:36 +03:00
Serhiy Storchaka 77cb197aaa Issue #14373: Fixed threaded test for lru_cache(). Added new threaded test. 2015-06-08 11:14:31 +03:00
Steve Dower 7386235f13 Issue #8232: webbrowser support incomplete on Windows. Patch by Brandon Milam 2015-06-07 21:36:26 -07:00
Steve Dower 93cfeb93ac Issue #8232: webbrowser support incomplete on Windows. Patch by Brandon Milam 2015-06-07 21:35:39 -07:00
Guido van Rossum 79e434d9e5 Mapping key type is invariant. 2015-06-07 13:36:19 -07:00
Tal Einat f8cd6632f6 merge 3.5 2015-06-07 19:27:51 +03:00
Tal Einat 988df6a365 added matmul and imatmul to operator.__all__ 2015-06-07 19:21:01 +03:00
Yury Selivanov 0c9c4610cb Issue 24374: Plug refleak in set_coroutine_wrapper
(Merge 3.5)
2015-06-04 10:17:25 -04:00
Yury Selivanov 94c2263005 Issue 24374: Plug refleak in set_coroutine_wrapper 2015-06-04 10:16:51 -04:00
Eric Snow f02dcc8803 Merge from 3.5. 2015-06-04 00:12:14 -06:00
Eric Snow 4fabf02633 Issue #24369: Defend against key-changes during iteration. 2015-06-04 00:09:56 -06:00
Guido van Rossum 43a79cc552 Update typing.py: remove isinstance() support (Mark struck it from the PEP). 2015-06-03 19:04:42 -07:00
Eric Snow d14de5e22d Merge from 3.5. 2015-06-02 20:43:37 -06:00
Eric Snow ac02ef373f Issue #24368: Support keyword arguments in OrderedDict methods. 2015-06-02 20:42:14 -06:00
Yury Selivanov 082332ce37 Issue 24342: Let wrapper set by sys.set_coroutine_wrapper fail gracefully
(Merge 3.5)
2015-06-02 18:45:11 -04:00
Yury Selivanov aab3c4a211 Issue 24342: Let wrapper set by sys.set_coroutine_wrapper fail gracefully 2015-06-02 18:43:51 -04:00
Donald Stufft e8a21a3362 merge update to pip/setuptools 2015-06-02 11:40:15 -04:00
Donald Stufft 231d90609b Merge update to pip/setuptools 2015-06-02 11:39:55 -04:00
Donald Stufft 96cf848a8b Upgrade pip to 7.0.3 and setuptools to 17.0 2015-06-02 11:39:31 -04:00
Donald Stufft 75124e08c5 Merge the fix for #24267 2015-06-02 10:38:21 -04:00
Donald Stufft 67872ba91a Merge the fix for #24267 2015-06-02 10:38:01 -04:00
Donald Stufft 71a8589ddc Closes #24267 - Does not check version on ensurepip uninstall
Ensure that the uninstall helper for Windows passes the proper
flags to pip to prevent it from checking PyPI if the pip that
we're currently attempting to uninstall is the latest verison.
2015-06-02 10:37:08 -04:00
Eric Snow ec6cd162de Merge from 3.5. 2015-06-01 23:35:40 -06:00
Eric Snow b952ab43f2 Issue #24359: Check for changed OrderedDict size during iteration. 2015-06-01 23:35:13 -06:00
Eric Snow e9dd08d08c Merge from 3.5. 2015-06-01 23:14:26 -06:00
Eric Snow d171975609 Issue #24348: Drop superfluous increfs/decrefs. 2015-06-01 23:12:13 -06:00
Eric Snow c976b73002 Merge from 3.5. 2015-06-01 23:06:20 -06:00
Eric Snow a762af74b2 Issue #24347: Set KeyError if PyDict_GetItemWithError returns NULL. 2015-06-01 22:59:08 -06:00
Larry Hastings c72056a1ae Merge release engineering changes with 3.5 branch head. 2015-05-31 21:43:57 -07:00
Yury Selivanov 9f59b0dcf2 Issue 24017: Add a test for CoroWrapper and 'async def' coroutines 2015-05-31 21:44:15 -04:00
Yury Selivanov e42cc38639 Issue 24017: Add a test for CoroWrapper and 'async def' coroutines 2015-05-31 21:44:05 -04:00
Yury Selivanov 41874c570c Issue 24017: Fix asyncio.CoroWrapper to support 'async def' coroutines 2015-05-31 21:37:36 -04:00
Yury Selivanov 6a0fab92f9 Issue 24017: Fix asyncio.CoroWrapper to support 'async def' coroutines 2015-05-31 21:37:23 -04:00
Yury Selivanov 70adad2a0e Issue 24017: Fix asyncio.CoroWrapper to support 'async def' coroutines 2015-05-31 21:37:09 -04:00
Tal Einat bc8db8fa1b Issue #19543: Implementation of isclose as per PEP 485
For details, see:
PEP 0485 -- A Function for testing approximate equality

Functions added: math.isclose() and cmath.isclose().

Original code by Chris Barker. Patch by Tal Einat.

(merge 3.5)
2015-05-31 22:15:11 +03:00
Tal Einat d5519ed7f4 Issue #19543: Implementation of isclose as per PEP 485
For details, see:
PEP 0485 -- A Function for testing approximate equality

Functions added: math.isclose() and cmath.isclose().

Original code by Chris Barker. Patch by Tal Einat.
2015-05-31 22:05:00 +03:00
Yury Selivanov eb141c48af Issue 24004: Fix DeprecationWarning in a unittest
(Merge from 3.5)
2015-05-31 11:28:57 -04:00
Yury Selivanov 439c5fe3ae Issue 24004: Fix DeprecationWarning in a unittest 2015-05-31 11:28:35 -04:00
Serhiy Storchaka 442a894d1e Issue #24284: The startswith and endswith methods of the str class no longer
return True when finding the empty string and the indexes are completely out
of range.
2015-05-31 09:16:13 +03:00
Serhiy Storchaka d4ea03c785 Issue #24284: The startswith and endswith methods of the str class no longer
return True when finding the empty string and the indexes are completely out
of range.
2015-05-31 09:15:51 +03:00
Yury Selivanov 23f8d52087 Issue 24004: Add a unittest for @asyncio.coroutine supporting Awaitables
(Merge 3.5)
2015-05-30 21:04:58 -04:00
Yury Selivanov ad583a8e6d Issue 24004: Add a unittest for @asyncio.coroutine supporting Awaitables 2015-05-30 21:04:37 -04:00
Yury Selivanov f525e5fb3e Issue 24004: Support Awaitables (pep 492) in @asyncio.coroutine decorator
(Merge 3.5)
2015-05-30 21:02:49 -04:00
Yury Selivanov 353f2299bf Issue 24004: Support Awaitables (pep 492) in @asyncio.coroutine decorator
(Merge 3.4)
2015-05-30 21:02:34 -04:00
Yury Selivanov a316085192 Issue 24004: Support Awaitables (pep 492) in @asyncio.coroutine decorator 2015-05-30 21:02:12 -04:00
Larry Hastings e8ff0caa72 Regenerated pydoc topic index in preparation for Python 3.5.0b2. 2015-05-30 16:58:27 -07:00
Yury Selivanov c8687822c1 Issue #23934: Fix inspect.signature to fail correctly for builtin types.
Initial patch by James Powell. (Merge 3.5)
2015-05-30 17:09:15 -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
Eric Snow e39facfdbc Issue #16991: Ensure that the proper OrderedDict is used in tests. 2015-05-30 13:24:54 -06:00
Eric Snow 3ef8958e40 Merge from 3.5. 2015-05-30 12:00:05 -06:00
Eric Snow 67fb92e8c6 Issue #16991: Do not return None from OrderedDict.__reversed__. 2015-05-30 11:43:36 -06:00
Serhiy Storchaka e971297c01 Issue #5633: Fixed timeit when the statement is a string and the setup is not.
Refactored timeit.__init__ for unified handling of stmt and setup parameters.
2015-05-30 19:45:36 +03:00
Serhiy Storchaka 1b560cbf85 Issue #5633: Fixed timeit when the statement is a string and the setup is not.
Refactored timeit.__init__ for unified handling of stmt and setup parameters.
2015-05-30 19:44:55 +03:00
Serhiy Storchaka f28fa66351 Issue #5633: Fixed timeit when the statement is a string and the setup is not. 2015-05-30 19:38:26 +03:00
Yury Selivanov 7aa5341164 Reverting my previous commit.
Something went horribly wrong when I was doing `hg rebase`.
2015-05-30 10:57:56 -04:00
Serhiy Storchaka f49c42324f Use test.support.start_threads() in threaded lru_cache tests. 2015-05-30 15:49:42 +03:00
Serhiy Storchaka bf2b3b72d3 Use test.support.start_threads() in threaded lru_cache tests. 2015-05-30 15:49:17 +03:00
Raymond Hettinger 4c97a62ae3 Issue #23509: Speed up Counter operators
(Based on patch by Serhiy Storchaka.)
2015-05-29 22:14:07 -07:00
Benjamin Peterson e16f427243 Merge 3.5 2015-05-30 00:02:25 -05:00
Benjamin Peterson 3d1151d2c0 use assert method in another place 2015-05-30 00:02:17 -05:00
Eric Snow 96c6af9b20 Issue #16991: Add a C implementation of collections.OrderedDict. 2015-05-29 22:21:39 -06:00
Eric Snow 47db71756d Issue #16991: Add a C implementation of collections.OrderedDict. 2015-05-29 22:21:39 -06:00
Benjamin Peterson 3979323ca3 merge 3.5 2015-05-29 18:44:50 -05:00
Benjamin Peterson 0a3297d7d4 use assert method (#24328) 2015-05-29 18:44:45 -05:00
Benjamin Peterson 0c70ca9aac merge 3.5 (#24328) 2015-05-29 17:11:36 -05:00
Benjamin Peterson e20056c8f7 fix importing one char extension modules (closes #24328) 2015-05-29 17:10:30 -05:00
Serhiy Storchaka 07739f3555 Issue #24326: Fixed audioop.ratecv() with non-default weightB argument.
Original patch by David Moore.
2015-05-30 00:58:09 +03:00
Serhiy Storchaka a663121e10 Issue #24326: Fixed audioop.ratecv() with non-default weightB argument.
Original patch by David Moore.
2015-05-30 00:57:21 +03:00
Serhiy Storchaka 50451eb912 Issue #24326: Fixed audioop.ratecv() with non-default weightB argument.
Original patch by David Moore.
2015-05-30 00:53:26 +03:00
Yury Selivanov 38bc0a7f97 Issue 24316: Wrap gen objects returned from callables in types.coroutine
(Merge 3.5)
2015-05-29 16:19:34 -04:00
Yury Selivanov 13f7723d81 Issue 24316: Wrap gen objects returned from callables in types.coroutine 2015-05-29 16:19:18 -04:00
Yury Selivanov 7ad0419c4d Issue 24316: Fix types.coroutine() to accept objects from Cython
(Merge 3.5)
2015-05-29 09:06:24 -04:00
Yury Selivanov c565cd5d1b Issue 24316: Fix types.coroutine() to accept objects from Cython 2015-05-29 09:06:05 -04:00