Commit Graph

1801 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
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
R David Murray cee7cf6026 #22027: Add RFC6531 support to smtplib.
Initial patch by Milan Oberkirch.
2015-05-16 13:58:14 -04:00