Commit graph

2052 commits

Author SHA1 Message Date
Yury Selivanov
d396d53bc7 Merge 3.5 2015-06-23 15:10:21 -04:00
Yury Selivanov
27947d5d5c docs.whatsnew: Update ref to tp_as_async 2015-06-23 15:09:58 -04:00
Yury Selivanov
6edc2f7549 Issue #24400: Merge 3.5 2015-06-22 12:31:24 -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
Senthil Kumaran
b4760efbad Back porting changeset db302b88fdb6 to 3.4 branch, which fixed multiple documentation typos.
Related Issues:

#issue21528
#issue24453
2015-06-14 17:35:37 -07:00
Ned Deily
adf03c3544 Issue #24423: merger from 3.5 2015-06-10 15:44:18 -07:00
Ned Deily
cec3f56fab Issue #24423: Fix formatting error in 3.5 whatsnew 2015-06-10 15:43:05 -07:00
Yury Selivanov
1305e5b6f0 Issue 24180: Mention sys.(get|set)_coroutine_wrapper in whatsnew 2015-05-31 17:21:49 -04:00
Yury Selivanov
4640b300e3 Issue 24180: Mention sys.(get|set)_coroutine_wrapper in whatsnew 2015-05-31 17:21:38 -04:00
Tal Einat
ff790de78c minor fix of module order in whatsnew/3.5
(merge 3.5)
2015-05-31 22:19:27 +03:00
Tal Einat
f67b0a36c5 minor fix of module order in whatsnew/3.5 2015-05-31 22:18:31 +03: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
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
Benjamin Peterson
49fc2c3bba merge 3.5 2015-05-31 00:22:49 -05:00
Benjamin Peterson
3d4a457663 improve section title 2015-05-31 00:22:42 -05:00
Yury Selivanov
b5379ed2b6 docs: Sync whatsnew/3.5.rst with 3.6 2015-05-30 13:47:57 -04: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
Yury Selivanov
802d45b660 Merge 3.5 2015-05-30 10:49:27 -04:00
Yury Selivanov
5844436adf docs/whatsnew: Mention OrderedDict C implementation 2015-05-30 10:49:09 -04:00
Yury Selivanov
7a219110e6 docs/whatsnew/3.6: Mention that 'async' and 'await' will be keywords in 3.7 2015-05-28 17:10:29 -04:00
Yury Selivanov
153192be43 Merge 3.5 2015-05-28 17:09:38 -04:00
Yury Selivanov
8fa6d4f753 docs/whatsnew: Mention that 'async' and 'await' will be keywords in 3.7 2015-05-28 17:09:14 -04:00
Yury Selivanov
d1da507774 Add whatsnew for 3.6 2015-05-27 22:09:10 -04:00
Benjamin Peterson
e328323cf7 rephrase 2015-05-26 21:40:28 -05:00
Guido van Rossum
7ca13532f3 Fix bad indent in whatsnew/3.5.rst. 2015-05-23 15:27:51 -07:00
Terry Jan Reedy
44825cf71f Add pointer to IDLE what's new file. 2015-05-23 18:19:42 -04:00
Terry Jan Reedy
e9cd1d3c69 Merge with 3.4 2015-05-23 18:15:41 -04:00
Terry Jan Reedy
a6f6a68368 whitespace 2015-05-23 18:15:18 -04:00
Terry Jan Reedy
ca1ad9423b Merge with 3.4 2015-05-23 18:13:31 -04:00
Terry Jan Reedy
571164f96f Add pointer to IDLE what's new file. 2015-05-23 18:13:14 -04:00
Berker Peksag
1a90b17bce Fix Sphinx warnings. 2015-05-24 00:26:05 +03:00
Nick Coghlan
d5cacbb1d9 PEP 489: Multi-phase extension module initialization
Known limitations of the current implementation:

- documentation changes are incomplete
- there's a reference leak I haven't tracked down yet

The leak is most visible by running:

  ./python -m test -R3:3 test_importlib

However, you can also see it by running:

  ./python -X showrefcount

Importing the array or _testmultiphase modules, and
then deleting them from both sys.modules and the local
namespace shows significant increases in the total
number of active references each cycle. By contrast,
with _testcapi (which continues to use single-phase
initialisation) the global refcounts stabilise after
a couple of cycles.
2015-05-23 22:24:10 +10:00
Gregory P. Smith
ad577b938b Issue 24230: The tempfile module now accepts bytes for prefix, suffix and dir
parameters and returns bytes in such situations (matching the os module APIs).
2015-05-22 16:18:14 -07:00
Yury Selivanov
945fff44c4 Issue 20438: Add a note about deprecating old inspect APIs to whatsnew.
Also, deprecate formatargspec, formatargvalues, and getargvalues
functions.  Since we are deprecating 'getfullargspec' function in
3.5 (documentation only, no DeprecationWarning), it makes sense
to also deprecate functions designed to be directly used with it.

In 3.6 we will remove 'getargsspec' function (was deprecated since
Python 3.0), and start raising DeprecationWarnings in other
'getarg*' family of functions.  We can remove them in 3.7 or later.

Also, it is worth noting, that Signature API does not provide 100%
of functionality that deprecated APIs have.  It is important to do
a soft deprecation of outdated APIs in 3.5 to gather users feedback,
and improve Signature object.
2015-05-22 16:28:05 -04:00
Zachary Ware
569db2c9f6 Fix extraneous BOM in whatsnew.
That's what I get for using Notepad to make a quick edit...
2015-05-22 11:42:20 -05:00
Zachary Ware
7dc9dea778 Issue #20035: Reimplement tkinter._fix module as a C function.
The new private C function makes no permanent changes to the environment
and is #ifdef'd out on non-Windows platforms.
2015-05-22 11:36:53 -05:00
Yury Selivanov
8d006e75e0 docs: Mention PEP 479 in whatsnew.
Issue 22906.
2015-05-22 11:30:45 -04:00
Yury Selivanov
f3e40fac10 Issue 24180: Documentation for PEP 492 changes. 2015-05-21 11:50:30 -04:00
Benjamin Peterson
b1cc37cfb5 improve wording 2015-05-20 22:09:43 -05:00
Yury Selivanov
57c74fca02 Issue 24248: Deprecate inspect.Signature.from_function and .from_builtin 2015-05-20 23:07:02 -04:00
Yury Selivanov
bcd4fc161a Issue 20691: Add follow_wrapped arg to inspect.signature/from_callable. 2015-05-20 14:30:08 -04:00
R David Murray
c17686f071 Issue #13866: add *quote_via* argument to urlencode.
Patch by samwyse, completed by Arnon Yaari, and reviewed by
Martin Panter.
2015-05-17 20:44:50 -04:00
R David Murray
8308444eef #24218: Add SMTPUTF8 support to send_message.
Reviewed by Maciej Szulik.
2015-05-17 19:27:22 -04:00
R David Murray
fdb23c2fe5 #20098: add mangle_from_ policy option.
This defaults to True in the compat32 policy for backward compatibility,
but to False for all new policies.

Patch by Milan Oberkirch, with a few tweaks.
2015-05-17 14:24:33 -04:00
R David Murray
224ef3ec3b #24211: Add RFC6532 support to the email library.
This could use more edge case tests, but the basic functionality is tested.
(Note that this changeset does not add tailored support for the RFC 6532
message/global MIME type, but the email package generic facilities will handle
it.)

Reviewed by Maciej Szulik.
2015-05-17 11:29:21 -04:00
R David Murray
b744f3a45e #21083: add get_content_disposition method to email.message.
Patch by Abhilash Raj.
2015-05-16 15:41:07 -04:00
Serhiy Storchaka
b9cec6a30f Issue #16314: Added support for the LZMA compression in distutils. 2015-05-16 22:13:27 +03:00
R David Murray
b8cd3e4e30 #21804: Add RFC 6856 (UTF8) support to poplib.
Patch by Milan Oberkirch.
2015-05-16 15:05:53 -04:00