Commit Graph

616 Commits

Author SHA1 Message Date
Nick Coghlan 19d246745d Issue #23722: improve __classcell__ compatibility
Handling zero-argument super() in __init_subclass__ and
__set_name__ involved moving __class__ initialisation to
type.__new__. This requires cooperation from custom
metaclasses to ensure that the new __classcell__ entry
is passed along appropriately.

The initial implementation of that change resulted in abruptly
broken zero-argument super() support in metaclasses that didn't
adhere to the new requirements (such as Django's metaclass for
Model definitions).

The updated approach adopted here instead emits a deprecation
warning for those cases, and makes them work the same way they
did in Python 3.5.

This patch also improves the related class machinery documentation
to cover these details and to include more reader-friendly
cross-references and index entries.
2016-12-05 16:47:55 +10:00
Martin Panter 28540183c9 Another en → em dash fix for 3.6 2016-11-21 04:10:45 +00:00
Jason R. Coombs f66f03bd35 Update docs to reflect new behavior around backslashes in expressions (not allowed), matching recent changes to PEP 498. 2016-11-06 11:27:17 -05:00
Serhiy Storchaka 989db5c880 Issue #19795: Mark up None as literal text. 2016-10-19 16:37:13 +03:00
Serhiy Storchaka ecf41da83e Issue #19795: Mark up None as literal text. 2016-10-19 16:29:26 +03:00
Raymond Hettinger 0b51fd4341 merge 2016-09-11 17:24:05 -07:00
Raymond Hettinger 06e18a7c24 Issue #26511: Reference the id() function in the 'is' and 'is not' docs 2016-09-11 17:23:49 -07:00
Guido van Rossum 015d874626 Issue #28076: Variable annotations should be mangled for private names.
By Ivan Levkivskyi.
2016-09-11 09:45:24 -07:00
Brett Cannon a721abac29 Issue #26331: Implement the parsing part of PEP 515.
Thanks to Georg Brandl for the patch.
2016-09-09 14:57:09 -07:00
Eric Snow 68f4dd8b01 Doc updates for PEPs 520 and 468. 2016-09-09 11:22:14 -07:00
Guido van Rossum 6cff8744a0 Issue #27999: Make "global after use" a SyntaxError, and ditto for nonlocal.
Patch by Ivan Levkivskyi.
2016-09-09 09:36:26 -07:00
Yury Selivanov f8cb8a16a3 Issue #27985: Implement PEP 526 -- Syntax for Variable Annotations.
Patch by Ivan Levkivskyi.
2016-09-08 20:50:03 -07:00
Eric Snow 4f29e75289 Issue #24254: Drop cls.__definition_order__. 2016-09-08 15:11:11 -07:00
Eric Snow b957b0c2bc Issue #28030: Update the language reference for PEP 468. 2016-09-08 13:59:58 -07:00
R David Murray 110b6fecbb #27364: Deprecate invalid escape strings in str/byutes.
Patch by Emanuel Barry, reviewed by Serhiy Storchaka and Martin Panter.
2016-09-08 15:34:08 -04:00
Eric Snow 46f97b85a8 Issue #15767: Use ModuleNotFoundError. 2016-09-07 16:56:15 -07:00
Eric Snow 92a6c170e6 Issue #24254: Preserve class attribute definition order. 2016-09-05 14:50:11 -07:00
Raymond Hettinger f74c33ad5c Merge 2016-08-25 21:12:16 -07:00
Raymond Hettinger 7ea386e56e Issue 19504: Change "customise" to "customize" American spelling. 2016-08-25 21:11:50 -07:00
Guido van Rossum 97c1adf393 Anti-registration of various ABC methods.
- Issue #25958: Support "anti-registration" of special methods from
  various ABCs, like __hash__, __iter__ or __len__.  All these (and
  several more) can be set to None in an implementation class and the
  behavior will be as if the method is not defined at all.
  (Previously, this mechanism existed only for __hash__, to make
  mutable classes unhashable.)  Code contributed by Andrew Barnert and
  Ivan Levkivskyi.
2016-08-18 09:22:23 -07:00
Brett Cannon 3f63483a30 Merge for issue #27712 2016-08-12 10:57:17 -07:00
Brett Cannon 6336fb2734 Issue #27712: Fix some typos in the import docs.
Thanks to Xiang Zhang for the patch.
2016-08-12 10:56:48 -07:00
Berker Peksag 91494d3b73 Issue #26576: Merge from 3.5 2016-08-03 10:17:51 +03:00
Berker Peksag 6cafececbf Issue #26576: Clarify that the @deco syntax is not always an equivalent of f = deco(f)
Patch by Chris Angelico.
2016-08-03 10:17:21 +03:00
Nick Coghlan 607e1c4c44 Issue 27366: PEP 487 docs updates
- Porting note for type keyword arg handling
- __init_subclass__ note regarding  metaclass hint
2016-07-31 12:42:49 +10:00
Berker Peksag 01d1719062 Issue #27366: Tweak PEP 487 documentation
* Added versionadded directives
* Deleted duplicate sentence from __init_subclass__ docstring
* Modernized tests
2016-07-30 14:06:15 +03:00
Nick Coghlan d78448e912 Issue #27366: Implement PEP 487
- __init_subclass__ called when new subclasses defined
- __set_name__ called when descriptors are part of a
  class definition
2016-07-30 16:26:03 +10:00
Martin Panter 6a09315ff0 Issue #26462: Merge code block fixes from 3.5 2016-07-29 01:49:37 +00:00
Martin Panter 1050d2d0c7 Issue #26462: Doc: reduce literal_block warnings, fix syntax highlighting.
Patch by Julien Palard.
2016-07-26 11:18:21 +02: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
Martin Panter ed74e243c6 Issue #24136: Adjust f-strings doc for interable unpacking 2016-06-12 01:56:24 +00:00
Martin Panter 99cb0cda15 Issue #24136: Merge unpacking doc from 3.5 2016-06-12 01:55:03 +00:00
Martin Panter 0c0da48aed Issue #24136: Document generalized unpacking, PEP 448
Based on patches by Konstantin Molchanov and Neil Girdhar.
2016-06-12 01:46:50 +00:00
Martin Panter 5848ac2df0 Issue #15476: Merge index entries from 3.5 2016-06-09 23:36:40 +00:00
Yury Selivanov 711d25db48 Merge 3.5 (issue #27243) 2016-06-09 15:13:16 -04:00
Yury Selivanov a6f6edbda8 Issue #27243: Fix __aiter__ protocol 2016-06-09 15:08:31 -04:00
Martin Panter 7d7a11b5d7 Issue #23275: Backport target list assignment documentation fixes 2016-06-08 12:44:30 +00:00
R David Murray 3bad04ca62 Merge: #26829: Clarify that namespace is copied to a new __dict__ in instance creation. 2016-06-02 20:06:13 -04:00
R David Murray dd4fcf52f4 #26829: Clarify that namespace is copied to a new __dict__ in instance creation.
Patch by Emily Morehouse.
2016-06-02 20:05:43 -04:00
Tommy Beadle e9b8403a1f [Issue 15476] Make "code object" its own entry in the index 2016-06-02 19:26:51 -04:00
Berker Peksag 094c9c921c Issue #23275: Allow () = iterable assignment syntax
Documentation updates by Martin Panter.
2016-05-18 08:44:29 +03:00
Ned Deily 36c18956b0 Issue #27049: fix doc typo 2016-05-17 21:45:13 -04:00
Ned Deily cec95813b2 Issue #27049: fix doc typo 2016-05-17 21:44:46 -04:00
Benjamin Peterson 815b61d4ce merge 3.5 (#27042) 2016-05-16 23:20:32 -07:00
Benjamin Peterson 54044d605f class definitions only get argument lists (closes #27042) 2016-05-16 23:20:22 -07:00
Benjamin Peterson bc7ee43a6d Backed out changeset 71ff2235bb4c (closes #27042) 2016-05-16 23:18:33 -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
Serhiy Storchaka a26e4b97d8 Issue #26156: Make expressions grammar description more semantically correct. 2016-05-08 22:00:09 +03:00
Serhiy Storchaka c7cc9850d4 Issue #26156: Make expressions grammar description more semantically correct. 2016-05-08 21:59:46 +03:00
Martin Panter 1ce738e08f Merge typo fixes from 3.5 2016-05-08 14:02:35 +00:00
Martin Panter f0564164ba Fix typos in comments, documentation and test method names 2016-05-08 13:48:10 +00:00
Serhiy Storchaka 1acbf853c8 Issue #26736: Used HTTPS for external links in the documentation if possible. 2016-05-07 10:49:58 +03:00
Serhiy Storchaka 6dff0205b7 Issue #26736: Used HTTPS for external links in the documentation if possible. 2016-05-07 10:49:07 +03:00
Berker Peksag c61d80cc83 Issue #18572: Remove redundant note about surrogates in string escape doc 2016-04-24 03:14:01 +03:00
Berker Peksag 4f35d79d65 Issue #18572: Remove redundant note about surrogates in string escape doc 2016-04-24 03:13:40 +03:00
Serhiy Storchaka 7b1e5a7722 Remove redundant leading zeroes in PEP references. 2016-03-31 15:31:20 +03:00
Serhiy Storchaka e4ba872543 Remove redundant leading zeroes in PEP references. 2016-03-31 15:30:54 +03:00
Yury Selivanov 3e48b38dff Merge 3.5 (issue #25887) 2016-02-13 18:00:31 -05:00
Yury Selivanov 77c96813ab Issue #25887: Raise a RuntimeError when a coroutine is awaited more than once. 2016-02-13 17:59:05 -05:00
Martin Panter bc1ee460dc Issue #25179: Documentation for formatted string literals aka f-strings
Some of the inspiration and wording is taken from the text of PEP 498 by Eric
V. Smith, and the existing str.format() documentation.
2016-02-13 00:41:37 +00:00
Zachary Ware e922289620 Merge with 3.5 2016-02-03 22:07:08 -06:00
Zachary Ware 2b818142d1 Python for .NET has moved to Github.
Reported by Denis Akhiyarov on docs@
2016-02-03 22:05:46 -06:00
Brett Cannon 849113af6b Issue #25791: Warn when __package__ != __spec__.parent.
In a previous change, __spec__.parent was prioritized over
__package__. That is a backwards-compatibility break, but we do
eventually want __spec__ to be the ground truth for module details. So
this change reverts the change in semantics and instead raises an
ImportWarning when __package__ != __spec__.parent to give people time
to adjust to using spec objects.
2016-01-22 15:25:50 -08:00
Brett Cannon 63b8505281 Issue #25791: Raise an ImportWarning when __spec__ or __package__ are
not defined for a relative import.

This is the start of work to try and clean up import semantics to rely
more on a module's spec than on the myriad attributes that get set on
a module. Thanks to Rose Ames for the patch.
2016-01-15 13:33:03 -08:00
Brett Cannon 3ad18dc7a7 Merge for issue #25500 2015-12-04 14:52:07 -08:00
Brett Cannon f4f25fe576 Issue #25500: Fix the language reference to not claim that import
statements search for __import__ in the global scope.

Thanks to Sergei Lebedev for finding the documentation bug.
2015-12-04 14:51:26 -08:00
R David Murray 3129571fb1 Merge: #25679: spelling fix 2015-11-20 09:59:19 -05:00
R David Murray 0aaeacb3f1 Merge: #25679: spelling fix 2015-11-20 09:58:51 -05:00
R David Murray 51d3f8b0ba #25679: spelling fix 2015-11-20 09:57:20 -05:00
Martin Panter e56a919100 Issue #25523: Merge a-to-an corrections from 3.5 2015-11-02 04:27:17 +00:00
Martin Panter d2ad5718ad Issue #25523: Further a-to-an corrections new in 3.5 2015-11-02 04:20:33 +00:00
Berker Peksag 83356f7a3f Issue #25418: Fix markup in object.__hash__ documentation
Patch by TAKASE Arihiro.
2015-10-16 11:23:31 +03:00
Berker Peksag 85d5d902ce Issue #25418: Fix markup in object.__hash__ documentation
Patch by TAKASE Arihiro.
2015-10-16 11:23:11 +03:00
Berker Peksag edb9111d41 Issue #25418: Fix markup in object.__hash__ documentation
Patch by TAKASE Arihiro.
2015-10-16 11:22:50 +03:00
Martin Panter 430f657c67 Issue #25161: Merge full stops from 3.5 2015-10-10 10:45:00 +00:00
Martin Panter 84835ab1cb Issue #25161: Merge full stops from 3.4 into 3.5 2015-10-10 10:44:25 +00:00
Martin Panter d21e0b52f1 Issue #25161: Add full stops in documentation; patch by Takase Arihiro 2015-10-10 10:36:22 +00:00
Martin Panter 3766ee5162 Issue #12067: Merge comparisons doc from 3.5 2015-09-23 05:41:52 +00:00
Martin Panter e52c41a714 Issue #12067: Merge comparisons doc from 3.4 into 3.5 2015-09-23 05:34:48 +00:00
Martin Panter aa0da864b8 Issue #12067: Rewrite Comparisons section in the language reference
Some of the details of comparing mixed types were incorrect or ambiguous.
NotImplemented is only relevant at a lower level than the Expressions
chapter. Added details of comparing range() objects, and default behaviour
and consistency suggestions for user-defined classes. Patch from Andy Maier.
2015-09-23 05:28:13 +00:00
Robert Collins df395991f6 Issue #9232: Support trailing commas in function declarations.
For example, "def f(*, a = 3,): pass" is now legal.

Patch from Mark Dickinson.
2015-08-12 08:00:06 +12:00
Robert Collins 00cf3c394a Issue #4395: Better testing and documentation of binary operators.
Patch by Martin Panter.
2015-08-07 10:32:15 +12:00
Robert Collins d84b29f805 Issue #4395: Better testing and documentation of binary operators.
Patch by Martin Panter.
2015-08-07 10:22:54 +12:00
Robert Collins 888a6729da Issue #24531: Document that encoding lines cannot follow non-comment lines.
Patch from Terry Reedy
2015-08-06 21:14:34 +12:00
Robert Collins 0b2833eaf2 Issue #24531: Document that encoding lines cannot follow non-comment lines.
Patch from Terry Reedy
2015-08-06 21:08:44 +12:00
Nick Coghlan 73c6f64a5e Merge issue #24129 from 3.4 2015-08-05 23:23:24 +10:00
Nick Coghlan 91e561aa77 Issue #24129: Clarify reference docs for name resolution.
This includes removing the assumption that readers will be familiar with the
name resolution scheme Python used prior to the introduction of lexical
scoping for function namespaces.

Patch by Ivan Levkivskyi.
2015-08-05 23:07:24 +10:00
Yury Selivanov 75b5ab5770 docs: Fix productionlist for async def functions 2015-08-01 16:19:36 -04:00
Berker Peksag a1bddadddd Issue #24713: Use importlib.reload() in import reference document.
imp.reload() was deprecated in Python 3.4 and changed to call
importlib.reload().

Patch by Petr Viktorin.
2015-07-25 13:03:08 +03:00
Berker Peksag 7e732a7181 Issue #24713: Use importlib.reload() in import reference document.
imp.reload() was deprecated in Python 3.4 and changed to call
importlib.reload().

Patch by Petr Viktorin.
2015-07-25 13:02:37 +03:00
Yury Selivanov 8fb307cd65 Issue #24619: New approach for tokenizing async/await.
This commit fixes how one-line async-defs and defs are tracked
by tokenizer.  It allows to correctly parse invalid code such
as:

>>> async def f():
...     def g(): pass
...     async = 10

and valid code such as:

>>> async def f():
...     async def g(): pass
...     await z

As a consequence, is is now possible to have one-line
'async def foo(): await ..' functions:

>>> async def foo(): return await bar()
2015-07-22 13:33:45 +03:00
Benjamin Peterson 47066ee3db merge 3.4 (#24610) 2015-07-11 16:33:39 -07:00
Benjamin Peterson acb3a4d88b fix normalization example (closes #24610)
Patch by Chris Angelico
2015-07-11 16:32:55 -07:00
Benjamin Peterson 4801383c29 upgrade to Unicode 8.0.0 2015-06-27 15:45:56 -05:00
Yury Selivanov 66f8828bfc Issue #24439: Improve PEP 492 related docs.
Patch by Martin Panter.
2015-06-24 11:04:15 -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
Terry Jan Reedy bd44ce8ead Merge with 3.4 2015-06-12 15:45:05 -04:00
Terry Jan Reedy f5d4523844 Closes issue #24405: mark set display as code. 2015-06-12 15:44:45 -04:00