]> granicus.if.org Git - python/log
python
7 years agobpo-32262: Fix codestyle; use f-strings formatting where necessary. (#4775)
Yury Selivanov [Sun, 10 Dec 2017 23:36:12 +0000 (18:36 -0500)]
bpo-32262: Fix codestyle; use f-strings formatting where necessary. (#4775)

7 years agoSkip test_read_pty_output test on macOS for poll and select. (#4774)
Yury Selivanov [Sun, 10 Dec 2017 17:40:19 +0000 (12:40 -0500)]
Skip test_read_pty_output test on macOS for poll and select. (#4774)

Starting with 10.13.2 the test hangs forever.

7 years agobpo-32114: Updated the documentation for get_event_loop to reflect the policy change...
Pablo Galindo [Sun, 10 Dec 2017 17:34:59 +0000 (17:34 +0000)]
bpo-32114: Updated the documentation for get_event_loop to reflect the policy change (#4510)

7 years agoRemoved doubled 'bpo-'. (#4777)
Terry Jan Reedy [Sun, 10 Dec 2017 09:02:53 +0000 (04:02 -0500)]
Removed doubled 'bpo-'. (#4777)

7 years agobpo-31506: Improve the error message logic for class instantiation (GH-4740)
Sanyam Khurana [Sun, 10 Dec 2017 00:14:22 +0000 (05:44 +0530)]
bpo-31506: Improve the error message logic for class instantiation (GH-4740)

The error messages in `object.__new__` and `object.__init__` now aim
to point the user more directly at the name of the class being instantiated
in cases where they *haven't* been overridden (on the assumption that
the actual problem is a missing `__new__` or `__init__` definition in the
class body).

When they *have* been overridden, the errors still report themselves as
coming from object, on the assumption that the problem is with the call
up to the base class in the method implementation, rather than with the
way the constructor is being called.

7 years agobyte swap the raw hash secrets (more bpo-32260) (#4773)
Benjamin Peterson [Sat, 9 Dec 2017 21:11:39 +0000 (13:11 -0800)]
byte swap the raw hash secrets (more bpo-32260) (#4773)

7 years agofix my byte-swapping implementation (#4772)
Benjamin Peterson [Sat, 9 Dec 2017 20:18:56 +0000 (12:18 -0800)]
fix my byte-swapping implementation (#4772)

7 years agobpo-32260: don't byte swap siphash keys (#4771)
Benjamin Peterson [Sat, 9 Dec 2017 19:24:18 +0000 (11:24 -0800)]
bpo-32260: don't byte swap siphash keys (#4771)

Reference siphash takes the keys as a bytes, so it makes sense to byte swap
when reifying the keys as 64-bit integers. However, Python's siphash takes host
integers in to start with.

7 years agocloses bpo-31650: PEP 552 (Deterministic pycs) implementation (#4575)
Benjamin Peterson [Sat, 9 Dec 2017 18:26:52 +0000 (10:26 -0800)]
closes bpo-31650: PEP 552 (Deterministic pycs) implementation (#4575)

Python now supports checking bytecode cache up-to-dateness with a hash of the
source contents rather than volatile source metadata. See the PEP for details.

While a fairly straightforward idea, quite a lot of code had to be modified due
to the pervasiveness of pyc implementation details in the codebase. Changes in
this commit include:

- The core changes to importlib to understand how to read, validate, and
  regenerate hash-based pycs.

- Support for generating hash-based pycs in py_compile and compileall.

- Modifications to our siphash implementation to support passing a custom
  key. We then expose it to importlib through _imp.

- Updates to all places in the interpreter, standard library, and tests that
  manually generate or parse pyc files to grok the new format.

- Support in the interpreter command line code for long options like
  --check-hash-based-pycs.

- Tests and documentation for all of the above.

7 years agobpo-32253: Deprecate with statement and bare await for asyncio locks (GH-4764)
Andrew Svetlov [Sat, 9 Dec 2017 18:00:05 +0000 (20:00 +0200)]
bpo-32253: Deprecate with statement and bare await for asyncio locks (GH-4764)

* Add test for 'with (yield from lock)'
* Deprecate with statement for asyncio locks
* Document the deprecation

7 years agobpo-32212: Updated logging documentation to make parameter names more consistent...
Vinay Sajip [Sat, 9 Dec 2017 11:09:04 +0000 (11:09 +0000)]
bpo-32212: Updated logging documentation to make parameter names more consistent with source. (GH-4765)

7 years agobpo-32193: Convert asyncio to async/await usage (#4753)
Andrew Svetlov [Fri, 8 Dec 2017 22:23:48 +0000 (00:23 +0200)]
bpo-32193: Convert asyncio to async/await usage (#4753)

* Convert asyncio/tasks.py to async/await

* Convert asyncio/queues.py to async/await

* Convert asyncio/test_utils.py to async/await

* Convert asyncio/base_subprocess.py to async/await

* Convert asyncio/subprocess.py to async/await

* Convert asyncio/streams.py to async/await

* Fix comments

* Convert asyncio/locks.py to async/await

* Convert asyncio.sleep to async def

* Add a comment

* Add missing news

* Convert stubs from AbstrctEventLoop to async functions

* Convert subprocess_shell/subprocess_exec

* Convert connect_read_pipe/connect_write_pip to async/await syntax

* Convert create_datagram_endpoint

* Convert create_unix_server/create_unix_connection

* Get rid of old style coroutines in unix_events.py

* Convert selector_events.py to async/await

* Convert wait_closed and create_connection

* Drop redundant line

* Convert base_events.py

* Code cleanup

* Drop redundant comments

* Fix indentation

* Add explicit tests for compatibility between old and new coroutines

* Convert windows event loop to use async/await

* Fix double awaiting of async function

* Convert asyncio/locks.py

* Improve docstring

* Convert tests to async/await

* Convert more tests

* Convert more tests

* Convert more tests

* Convert tests

* Improve test

7 years agobpo-22589 Changed MIME type of .bmp to "image/bmp" (#4756)
Nitish Chandra [Fri, 8 Dec 2017 12:48:44 +0000 (18:18 +0530)]
bpo-22589 Changed MIME type of .bmp to "image/bmp" (#4756)

Per rfc7903 this is the standard MIME type for this file format, and appears as such in the IANA MIME registry.

7 years agoFix missing DECREF of mod. (#4749)
Neil Schemenauer [Fri, 8 Dec 2017 00:24:59 +0000 (16:24 -0800)]
Fix missing DECREF of mod. (#4749)

7 years agoPyLong_FromString(): fix Coverity CID 1424951 (#4738)
Victor Stinner [Thu, 7 Dec 2017 23:06:55 +0000 (00:06 +0100)]
PyLong_FromString(): fix Coverity CID 1424951 (#4738)

Explicitly cast digits (Py_ssize_t) to double to fix the following
false-alarm warning from Coverity:

"fsize_z = digits * log_base_BASE[base] + 1;"

CID 1424951: Incorrect expression (UNINTENDED_INTEGER_DIVISION)
Dividing integer expressions "9223372036854775783UL" and "4UL", and
then converting the integer quotient to type "double". Any remainder,
or fractional part of the quotient, is ignored.

7 years agobpo-32208: update threading.Semaphore docs and add unit test (#4709)
Garrett Berg [Thu, 7 Dec 2017 18:04:26 +0000 (11:04 -0700)]
bpo-32208: update threading.Semaphore docs and add unit test (#4709)

* fix issue32208: update threading.Semaphore docs and add unit test to validate correct behavior

* add test for blocking

* Update threading.rst

* semaphore: remove documentation validation tests and move 'return value' test to BaseSemaphore

7 years agobpo-32199: The getnode() ip getter now uses 'ip link' instead of 'ip link list'...
xdegaye [Thu, 7 Dec 2017 11:59:13 +0000 (12:59 +0100)]
bpo-32199:  The getnode() ip getter now uses 'ip link' instead of 'ip link list' (GH-4696)

7 years agoFix hardcoded value in test_os.py (#4744)
Pablo Galindo [Thu, 7 Dec 2017 06:55:44 +0000 (06:55 +0000)]
Fix hardcoded value in test_os.py (#4744)

7 years agoAllows non-critical upload steps to fail (#4742)
Steve Dower [Wed, 6 Dec 2017 19:33:15 +0000 (11:33 -0800)]
Allows non-critical upload steps to fail (#4742)

7 years agoUse raw strings for regex to avoid invalid escape sequences. (GH-4741)
Eric V. Smith [Wed, 6 Dec 2017 19:00:34 +0000 (14:00 -0500)]
Use raw strings for regex to avoid invalid escape sequences. (GH-4741)

7 years agoModify configure to link with the compiler driver under HP-UX when not using gcc...
Rob Boehne [Wed, 6 Dec 2017 17:58:17 +0000 (11:58 -0600)]
Modify configure to link with the compiler driver under HP-UX when not using gcc. (#2519)

7 years agobpo-32233: Fix build with --with-system-libmpdec. (#4739)
Stefan Krah [Wed, 6 Dec 2017 17:24:17 +0000 (18:24 +0100)]
bpo-32233: Fix build with --with-system-libmpdec. (#4739)

7 years agobpo-32030: Add _PyImport_Fini2() (#4737)
Victor Stinner [Wed, 6 Dec 2017 17:12:59 +0000 (18:12 +0100)]
bpo-32030: Add _PyImport_Fini2() (#4737)

PyImport_ExtendInittab() now uses PyMem_RawRealloc() rather than
PyMem_Realloc(). PyImport_ExtendInittab() can be called before
Py_Initialize() whereas only the PyMem_Raw allocator is supposed to
be used before Py_Initialize().

Add _PyImport_Fini2() to release the memory allocated by
PyImport_ExtendInittab() at exit. PyImport_ExtendInittab() now forces
the usage of the default raw allocator, to be able to release memory
in _PyImport_Fini2().

Don't export these functions anymore to be C API, only to
Py_BUILD_CORE:

* _PyExc_Fini()
* _PyImport_Fini()
* _PyGC_DumpShutdownStats()
* _PyGC_Fini()
* _PyType_Fini()
* _Py_HashRandomization_Fini()

7 years agobpo-25910: Fixes redirection from http to https (#4674)
Sanyam Khurana [Wed, 6 Dec 2017 16:39:33 +0000 (22:09 +0530)]
bpo-25910: Fixes redirection from http to https (#4674)

7 years agobpo-32030: Add pymain_get_global_config() (#4735)
Victor Stinner [Wed, 6 Dec 2017 16:26:10 +0000 (17:26 +0100)]
bpo-32030: Add pymain_get_global_config() (#4735)

* Py_Main() now starts by reading Py_xxx configuration variables to
  only work on its own private structure, and then later writes back
  the configuration into these variables.
* Replace Py_GETENV() with pymain_get_env_var() which ignores empty
  variables.
* Add _PyCoreConfig.dump_refs
* Add _PyCoreConfig.malloc_stats
* _PyObject_DebugMallocStats() is now responsible to check if debug
  hooks are installed. The function returns 1 if stats were written,
  or 0 if the hooks are disabled. Mark _PyMem_PymallocEnabled() as
  static.

7 years agobpo-32030: pass interp to _PyImport_Init() (#4736)
Victor Stinner [Wed, 6 Dec 2017 16:25:50 +0000 (17:25 +0100)]
bpo-32030: pass interp to _PyImport_Init() (#4736)

Remove also the initstr variable, unused since the commit
e69f0df45b709c25ac80617c41bbae16f56870fb pushed in 2012: "bpo-13959:
Re-implement imp.find_module() in Lib/imp.py"

7 years agoBump to 3.7.0a3+
Ned Deily [Wed, 6 Dec 2017 02:06:12 +0000 (21:06 -0500)]
Bump to 3.7.0a3+

7 years agoMerge tag 'v3.7.0a3'
Ned Deily [Wed, 6 Dec 2017 01:57:44 +0000 (20:57 -0500)]
Merge tag 'v3.7.0a3'

7 years agoAdd Guido and Ivan as owners for typing.py (#4729)
Guido van Rossum [Tue, 5 Dec 2017 21:56:39 +0000 (13:56 -0800)]
Add Guido and Ivan as owners for typing.py (#4729)

7 years agoAdd dataclasses to CODEOWNERS. (GH-4730)
Eric V. Smith [Tue, 5 Dec 2017 20:52:19 +0000 (15:52 -0500)]
Add dataclasses to CODEOWNERS. (GH-4730)

7 years agobpo-32030: Simplify _PyCoreConfig_INIT macro (#4728)
Victor Stinner [Tue, 5 Dec 2017 14:12:41 +0000 (15:12 +0100)]
bpo-32030: Simplify _PyCoreConfig_INIT macro (#4728)

* Simplify _PyCoreConfig_INIT, _PyMainInterpreterConfig_INIT,
  _PyPathConfig_INIT macros: no need to set fields to 0/NULL, it's
  redundant (the C language sets them to 0/NULL for us).
* Fix typo: pymain_run_statup() => pymain_run_startup()
* Remove a few XXX/TODO

7 years agoBump to 3.7.0a3 v3.7.0a3
Ned Deily [Tue, 5 Dec 2017 08:27:19 +0000 (03:27 -0500)]
Bump to 3.7.0a3

7 years agoUpdate NEWS and pydoc topics.
Ned Deily [Tue, 5 Dec 2017 08:17:33 +0000 (03:17 -0500)]
Update NEWS and pydoc topics.

7 years agoTidy NEWS entry.
Ned Deily [Tue, 5 Dec 2017 07:45:57 +0000 (02:45 -0500)]
Tidy NEWS entry.

7 years agoAdd a missing space in tkinter documentation. (GH-4692)
Julien Palard [Tue, 5 Dec 2017 05:05:33 +0000 (06:05 +0100)]
Add a missing space in tkinter documentation. (GH-4692)

7 years agobpo-31380: Skip test_httpservers test_undecodable_file on macOS. (#4720)
Ned Deily [Tue, 5 Dec 2017 04:42:02 +0000 (23:42 -0500)]
bpo-31380: Skip test_httpservers test_undecodable_file on macOS. (#4720)

The undecodable file name cannot be created on macOS APFS file systems.

7 years agoUpdate macOS installer to XZ 5.2.3 (#4718)
Ned Deily [Tue, 5 Dec 2017 03:55:20 +0000 (22:55 -0500)]
Update macOS installer to XZ 5.2.3 (#4718)

7 years agobpo-31392: Update macOS installer to use OpenSSL 1.0.2m (#4715)
Ned Deily [Tue, 5 Dec 2017 03:24:41 +0000 (22:24 -0500)]
bpo-31392: Update macOS installer to use OpenSSL 1.0.2m (#4715)

7 years agobpo-19610: Warn if distutils is provided something other than a list to some fields...
Neil Schemenauer [Tue, 5 Dec 2017 02:58:12 +0000 (18:58 -0800)]
bpo-19610: Warn if distutils is provided something other than a list to some fields (#4685)

* Rather than raise TypeError, warn and call list() on the value.

* Fix tests, revise NEWS and whatsnew text.

* Revise documentation, a string is okay as well.

* Ensure 'requires' and 'obsoletes' are real lists.

* Test that requires and obsoletes are turned to lists.

7 years agoEnable SQLite JSON functions for macOS installer build (#4712)
Ned Deily [Tue, 5 Dec 2017 02:50:29 +0000 (21:50 -0500)]
Enable SQLite JSON functions for macOS installer build (#4712)

7 years ago[bpo-28556] Minor fixes for typing module (#4710)
Ivan Levkivskyi [Tue, 5 Dec 2017 02:43:58 +0000 (03:43 +0100)]
[bpo-28556] Minor fixes for typing module (#4710)

7 years agobpo-28791: Update macOS installer to use SQLite 3.21.0. (#4245)
Mariatta [Tue, 5 Dec 2017 02:04:49 +0000 (18:04 -0800)]
bpo-28791: Update macOS installer to use SQLite 3.21.0. (#4245)

7 years agobpo-30928: update idlelib/NEWS.txt. (#4706)
Terry Jan Reedy [Mon, 4 Dec 2017 22:04:15 +0000 (17:04 -0500)]
bpo-30928: update idlelib/NEWS.txt. (#4706)

7 years agobpo-32214: Implement PEP 557: Data Classes (#4704)
Eric V. Smith [Mon, 4 Dec 2017 21:58:55 +0000 (16:58 -0500)]
bpo-32214: Implement PEP 557: Data Classes (#4704)

7 years agobpo-32207: Improve tk event exception tracebacks in IDLE. (#4703)
Terry Jan Reedy [Mon, 4 Dec 2017 21:16:18 +0000 (16:16 -0500)]
bpo-32207: Improve tk event exception tracebacks in IDLE. (#4703)

When tk event handling is driven by IDLE's run loop, a confusing
and distracting queue.EMPTY traceback context is no longer added
to tk event exception tracebacks.  The traceback is now the same
as when event handling is driven by user code.  Patch based on
a suggestion by Serhiy Storchaka.

7 years agobpo-30928: Update idlelib/NEWS.txt to 2017 Dec 3. (#4701)
Terry Jan Reedy [Mon, 4 Dec 2017 19:48:25 +0000 (14:48 -0500)]
bpo-30928: Update idlelib/NEWS.txt to 2017 Dec 3. (#4701)

Patches are in 3.7.0a3 even if this update is not.

7 years agoRevert "bpo-32197: Try to fix a compiler error on OS X introduced in bpo-32030. ...
Victor Stinner [Mon, 4 Dec 2017 12:39:15 +0000 (13:39 +0100)]
Revert "bpo-32197: Try to fix a compiler error on OS X introduced in bpo-32030. (#4681)" (#4694)

* Revert "bpo-32197: Try to fix a compiler error on OS X introduced in bpo-32030. (#4681)"

This reverts commit 13badcbc60cdbfae1dba1683fd2fae9d70717143.

Re-apply commits:

* "bpo-32030: _PyPathConfig_Init() sets home and program_name (#4673)"
  commit af5a895073c24637c094772b27526b94a12ec897.
* "bpo-32030: Fix config_get_program_name() on macOS (#4669)"
  commit e23c06e2b03452c9aaf0dae52296c85e572f9bcd.
* "bpo-32030: Add Python/pathconfig.c (#4668)"
  commit 0ea395ae964c9cd0f499e2ef0d0030c971201220.
* "bpo-32030: Don't call _PyPathConfig_Fini() in Py_FinalizeEx() (#4667)"
  commit ebac19dad6263141d5db0a2c923efe049dba99d2.
* "bpo-32030: Fix Py_GetPath(): init program_name (#4665)"
  commit 9ac3d8882712c9675c3d2f9f84af6b5729575cde.

* Fix compilation error on macOS

7 years agobpo-25054, bpo-1647489: Added support of splitting on zerowidth patterns. (#4471)
Serhiy Storchaka [Mon, 4 Dec 2017 12:29:05 +0000 (14:29 +0200)]
bpo-25054, bpo-1647489: Added support of splitting on zerowidth patterns. (#4471)

Also fixed searching patterns that could match an empty string.

7 years agoFix a regression in uuid added in bpo-32107. (#4677)
Serhiy Storchaka [Mon, 4 Dec 2017 09:51:55 +0000 (11:51 +0200)]
Fix a regression in uuid added in bpo-32107. (#4677)

uuid.get_node() always must return a stable result.
Also added a test for non-reproducibility of _random_getnode().
Original patch by Xavier de Gaye.

7 years agobpo-27240 Rewrite the email header folding algorithm. (#3488)
R. David Murray [Sun, 3 Dec 2017 23:51:41 +0000 (18:51 -0500)]
bpo-27240 Rewrite the email header folding algorithm. (#3488)

The original algorithm tried to delegate the folding to the tokens so
that those tokens whose folding rules differed could specify the
differences.  However, this resulted in a lot of duplicated code because
most of the rules were the same.

The new algorithm moves all folding logic into a set of functions
external to the token classes, but puts the information about which
tokens can be folded in which ways on the tokens...with the exception of
mime-parameters, which are a special case (which was not even
implemented in the old folder).

This algorithm can still probably be improved and hopefully simplified
somewhat.

Note that some of the test expectations are changed.  I believe the
changes are toward more desirable and consistent behavior: in general
when (re) folding a line the canonical version of the tokens is
generated, rather than preserving errors or extra whitespace.

7 years agobpo-31619: Fixed integer overflow in converting huge strings to int. (#3884)
Serhiy Storchaka [Sun, 3 Dec 2017 20:16:21 +0000 (22:16 +0200)]
bpo-31619: Fixed integer overflow in converting huge strings to int. (#3884)

7 years agobpo-32137: The repr of deeply nested dict now raises a RecursionError (#4570)
Serhiy Storchaka [Sun, 3 Dec 2017 20:12:11 +0000 (22:12 +0200)]
bpo-32137: The repr of deeply nested dict now raises a RecursionError (#4570)

instead of crashing due to a stack overflow.

This perhaps will fix similar problems in other extension types.

7 years agoRefactor PyImport_ImportModuleLevelObject(). (#4680)
Neil Schemenauer [Sun, 3 Dec 2017 17:26:03 +0000 (09:26 -0800)]
Refactor PyImport_ImportModuleLevelObject(). (#4680)

Add import_find_and_load() helper function.  The addition of
the importtime option has made PyImport_ImportModuleLevelObject() large
and so using a helper seems worthwhile.  It also makes it clearer that
abs_name is the only argument needed by _find_and_load().

7 years agobpo-32176: Set CO_NOFREE in the code object constructor (GH-4675)
Nick Coghlan [Sun, 3 Dec 2017 01:12:20 +0000 (11:12 +1000)]
bpo-32176: Set CO_NOFREE in the code object constructor (GH-4675)

Previously, CO_NOFREE was set in the compiler, which meant
it could end up being set incorrectly when code objects
were created directly. Setting it in the constructor based
on freevars and cellvars ensures it is always accurate,
regardless of how the code object is defined.

7 years agobpo-31589 : Build PDF using xelatex for better UTF8 support. (#3940)
Julien Palard [Sat, 2 Dec 2017 22:24:39 +0000 (23:24 +0100)]
bpo-31589 : Build PDF using xelatex for better UTF8 support. (#3940)

Also addresses doc build failures documented in bpo-32200.

7 years agoAdd a minimal unit test for Python/frozen.c. (#2995)
Neil Schemenauer [Sat, 2 Dec 2017 21:54:00 +0000 (13:54 -0800)]
Add a minimal unit test for Python/frozen.c. (#2995)

If the marshal or bytecode formats get changed, frozen.c needs to
be updated as well.  It can be easy to miss this step and not doing
so can cause test_importlib to crash in mysterious ways.  Add an
explict unit test to make it easier to track down the problem.

7 years agobpo-32197: Try to fix a compiler error on OS X introduced in bpo-32030. (#4681)
Serhiy Storchaka [Sat, 2 Dec 2017 19:36:00 +0000 (21:36 +0200)]
bpo-32197: Try to fix a compiler error on OS X introduced in bpo-32030. (#4681)

* Revert "bpo-32030: _PyPathConfig_Init() sets home and program_name (#4673)"

This reverts commit af5a895073c24637c094772b27526b94a12ec897.

* Revert "bpo-32030: Fix config_get_program_name() on macOS (#4669)"

This reverts commit e23c06e2b03452c9aaf0dae52296c85e572f9bcd.

* Revert "bpo-32030: Add Python/pathconfig.c (#4668)"

This reverts commit 0ea395ae964c9cd0f499e2ef0d0030c971201220.

* Revert "bpo-32030: Don't call _PyPathConfig_Fini() in Py_FinalizeEx() (#4667)"

This reverts commit ebac19dad6263141d5db0a2c923efe049dba99d2.

* Revert "bpo-32030: Fix Py_GetPath(): init program_name (#4665)"

This reverts commit 9ac3d8882712c9675c3d2f9f84af6b5729575cde.

7 years agobpo-32030: _PyPathConfig_Init() sets home and program_name (#4673)
Victor Stinner [Sat, 2 Dec 2017 09:11:32 +0000 (10:11 +0100)]
bpo-32030: _PyPathConfig_Init() sets home and program_name (#4673)

_PyPathConfig_Init() now also initialize home and program_name:

* Rename existing _PyPathConfig_Init() to _PyPathConfig_Calculate().
  Add a new _PyPathConfig_Init() function in pathconfig.c which
  handles the _Py_path_config variable and call
  _PyPathConfig_Calculate().
* Add home and program_name fields to _PyPathConfig.home
* _PyPathConfig_Init() now initialize home and program_name
  from main_config
* Py_SetProgramName(), Py_SetPythonHome() and Py_GetPythonHome() now
  calls Py_FatalError() on failure, instead of silently ignoring
  failures.
* config_init_home() now gets directly _Py_path_config.home to only
  get the value set by Py_SetPythonHome(), or NULL if
  Py_SetPythonHome() was not called.
* config_get_program_name() now gets directly
  _Py_path_config.program_name to only get the value set by
  Py_SetProgramName(), or NULL if Py_SetProgramName() was not called.
* pymain_init_python() doesn't call Py_SetProgramName() anymore,
  _PyPathConfig_Init() now always sets the program name
* Call _PyMainInterpreterConfig_Read() in
  pymain_parse_cmdline_envvars_impl() to control the memory allocator
* C API documentation: it's no more safe to call Py_GetProgramName()
  before Py_Initialize().

7 years agobpo-32030: Fix config_get_program_name() on macOS (#4669)
Victor Stinner [Fri, 1 Dec 2017 20:19:48 +0000 (21:19 +0100)]
bpo-32030: Fix config_get_program_name() on macOS (#4669)

7 years agobpo-32030: Add Python/pathconfig.c (#4668)
Victor Stinner [Fri, 1 Dec 2017 19:50:58 +0000 (20:50 +0100)]
bpo-32030: Add Python/pathconfig.c (#4668)

* Factorize code from PC/getpathp.c and Modules/getpath.c to remove
  duplicated code
* rename pathconfig_clear() to _PyPathConfig_Clear()
* Inline _PyPathConfig_Fini() in pymain_impl() and then remove it,
  since it's a oneliner

7 years agobpo-32030: Don't call _PyPathConfig_Fini() in Py_FinalizeEx() (#4667)
Victor Stinner [Fri, 1 Dec 2017 19:09:52 +0000 (20:09 +0100)]
bpo-32030: Don't call _PyPathConfig_Fini() in Py_FinalizeEx() (#4667)

Changes:

* _PyPathConfig_Fini() cannot be called in Py_FinalizeEx().
  Py_Initialize() and Py_Finalize() can be called multiple times, but
  it must not "forget" parameters set by Py_SetProgramName(),
  Py_SetPath() or Py_SetPythonHome(), whereas _PyPathConfig_Fini()
  clear all these parameters.
* config_get_program_name() and calculate_program_full_path() now
  also decode paths using Py_DecodeLocale() to use the
  surrogateescape error handler, rather than decoding using
  mbstowcs() which is strict.
* Change _Py_CheckPython3() prototype: () => (void)
* Truncate a few lines which were too long

7 years agobpo-32030: Fix Py_GetPath(): init program_name (#4665)
Victor Stinner [Fri, 1 Dec 2017 18:30:41 +0000 (19:30 +0100)]
bpo-32030: Fix Py_GetPath(): init program_name (#4665)

* _PyMainInterpreterConfig_ReadEnv() now sets program_name from
  environment variables and pymain_parse_envvars() implements the
  falls back on argv[0].
* Remove _PyMain.program_name: use the program_name from
  _PyMainInterpreterConfig
* Move the Py_SetProgramName() call back to pymain_init_python(),
  just before _Py_InitializeCore().
* pathconfig_global_init() now also calls
  _PyMainInterpreterConfig_Read() to set program_name if it isn't set
  yet
* Cleanup PyCalculatePath: pass main_config to subfunctions to get
  directly fields from main_config (home, module_search_path_env and
  program_name)

7 years agobpo-32030: Cleanup "path config" code (#4663)
Victor Stinner [Fri, 1 Dec 2017 17:27:09 +0000 (18:27 +0100)]
bpo-32030: Cleanup "path config" code (#4663)

* Rename PyPathConfig structure to _PyPathConfig and move it to
  Include/internal/pystate.h
* Rename path_config to _Py_path_config
* _PyPathConfig: Rename program_name field to program_full_path
* Add assert(str != NULL); to _PyMem_RawWcsdup(), _PyMem_RawStrdup()
  and _PyMem_Strdup().
* Rename calculate_path() to pathconfig_global_init(). The function
  now does nothing if it's already initiallized.

7 years agoFix asyncio.streams.FlowControlMixin docstring typo. (#4578)
John Chen [Fri, 1 Dec 2017 12:33:40 +0000 (20:33 +0800)]
Fix asyncio.streams.FlowControlMixin docstring typo. (#4578)

7 years agobpo-28668: test.support.requires_multiprocessing_queue is removed (GH-4560)
xdegaye [Fri, 1 Dec 2017 07:08:49 +0000 (08:08 +0100)]
bpo-28668: test.support.requires_multiprocessing_queue is removed (GH-4560)

Skip tests with test.support.import_module('multiprocessing.synchronize')
instead when the semaphore implementation is broken or missing.

7 years agoDon't hide unexpected errors in PyErr_WarnExplicitObject(). (#4585)
Serhiy Storchaka [Fri, 1 Dec 2017 06:40:23 +0000 (08:40 +0200)]
Don't hide unexpected errors in PyErr_WarnExplicitObject(). (#4585)

7 years agobpo-10544: Deprecate "yield" in comprehensions and generator expressions. (GH-4579)
Serhiy Storchaka [Fri, 1 Dec 2017 04:54:17 +0000 (06:54 +0200)]
bpo-10544: Deprecate "yield" in comprehensions and generator expressions. (GH-4579)

The current behaviour of yield expressions inside comprehensions  and
generator expressions is essentially an accident of implementation - it
arises implicitly from the way the compiler handles yield expressions inside
nested functions and generators.

Since the current behaviour wasn't deliberately designed, and is inherently
confusing, we're deprecating it, with no current plans to reintroduce it.
Instead, our advice will be to use a named nested generator definition
for cases where this behaviour is desired.

7 years agobpo-32186: Release the GIL during lseek and fstat (#4652)
Nir Soffer [Fri, 1 Dec 2017 01:18:58 +0000 (03:18 +0200)]
bpo-32186: Release the GIL during lseek and fstat (#4652)

In _io_FileIO_readall_impl(), lseek() and _Py_fstat_noraise() were called
without releasing the GIL. This can cause all threads to hang for
unlimited time when calling FileIO.read() and the NFS server is not
accessible.

7 years agoFix CID-1420310: cast PY_TIMEOUT_MAX to _Py_time_t (#4646)
Victor Stinner [Thu, 30 Nov 2017 22:03:47 +0000 (23:03 +0100)]
Fix CID-1420310: cast PY_TIMEOUT_MAX to _Py_time_t (#4646)

Fix the following false-alarm Coverity warning:

    Result is not floating-point
    (UNINTENDED_INTEGER_DIVISION)integer_division: Dividing integer
    expressions 9223372036854775807LL and 1000LL, and then converting
    the integer quotient to type double. Any remainder, or fractional
    part of the quotient, is ignored.

    To compute and use a non-integer quotient, change or cast either
    operand to type double. If integer division is intended, consider
    indicating that by casting the result to type long long .

7 years agomake tags: index also Modules/_ctypes/ (#4648)
Victor Stinner [Thu, 30 Nov 2017 21:49:10 +0000 (22:49 +0100)]
make tags: index also Modules/_ctypes/ (#4648)

Avoid also "cd $(srcdir)" to not change the current directory.

7 years agobpo-32072: Fix issues with binary plists. (#4455)
Serhiy Storchaka [Thu, 30 Nov 2017 21:26:11 +0000 (23:26 +0200)]
bpo-32072: Fix issues with binary plists. (#4455)

* Fixed saving bytearrays.
* Identical objects will be saved only once.
* Equal references will be load as identical objects.
* Added support for saving and loading recursive data structures.

7 years agobpo-20891: Fix PyGILState_Ensure() (#4650)
Victor Stinner [Thu, 30 Nov 2017 21:05:00 +0000 (22:05 +0100)]
bpo-20891: Fix PyGILState_Ensure() (#4650)

When PyGILState_Ensure() is called in a non-Python thread before
PyEval_InitThreads(), only call PyEval_InitThreads() after calling
PyThreadState_New() to fix a crash.

Add an unit test in test_embed.

7 years agobpo-28416: Break reference cycles in Pickler and Unpickler subclasses (#4080)
Serhiy Storchaka [Thu, 30 Nov 2017 20:48:31 +0000 (22:48 +0200)]
bpo-28416: Break reference cycles in Pickler and Unpickler subclasses (#4080)

with the persistent_id() and persistent_load() methods.

7 years agobpo-32030: Fix _Py_InitializeEx_Private() (#4649)
Victor Stinner [Thu, 30 Nov 2017 17:03:55 +0000 (18:03 +0100)]
bpo-32030: Fix _Py_InitializeEx_Private() (#4649)

_Py_InitializeEx_Private() now calls
_PyMainInterpreterConfig_ReadEnv() to read environment variables
PYTHONHOME and PYTHONPATH, and set the program name.

7 years agoFix CID-1414686: PyInit_readline() handles errors (#4647)
Victor Stinner [Thu, 30 Nov 2017 16:21:07 +0000 (17:21 +0100)]
Fix CID-1414686: PyInit_readline() handles errors (#4647)

Handle PyModule_AddIntConstant() and PyModule_AddStringConstant()
failures. Add also constants before calling setup_readline(), since
setup_readline() registers callbacks which uses a reference to the
module, whereas the module is destroyed if adding constants fails.

Fix Coverity warning:

CID 1414686: Unchecked return value (CHECKED_RETURN)
2. check_return: Calling PyModule_AddStringConstant without checking
return value (as is done elsewhere 45 out of 55 times).

7 years agoSkip test_socket.test_sha256() on linux < 4.5 (#4643)
Victor Stinner [Thu, 30 Nov 2017 12:58:43 +0000 (13:58 +0100)]
Skip test_socket.test_sha256() on linux < 4.5 (#4643)

bpo-31705.

7 years agobpo-32101: Add PYTHONDEVMODE environment variable (#4624)
Victor Stinner [Thu, 30 Nov 2017 10:40:24 +0000 (11:40 +0100)]
bpo-32101: Add PYTHONDEVMODE environment variable (#4624)

* bpo-32101: Add sys.flags.dev_mode flag
  Rename also the "Developer mode" to the "Development mode".
* bpo-32101: Add PYTHONDEVMODE environment variable
  Mention it in the development chapiter.

7 years agobpo-32121: Add most_recent_first parameter to tracemalloc.Traceback.format (#4534)
Jesse-Bakker [Wed, 29 Nov 2017 23:05:07 +0000 (00:05 +0100)]
bpo-32121: Add most_recent_first parameter to tracemalloc.Traceback.format (#4534)

* Add most_recent_first parameter to tracemalloc.Traceback.format to allow
   reversing the order of the frames in the output
* Reversed default sorting of tracemalloc.Traceback frames
* Allowed negative limit, truncating from the other side.

7 years agobpo-32159: Revert Misc/svnmap.txt (#4639)
Victor Stinner [Wed, 29 Nov 2017 17:58:33 +0000 (18:58 +0100)]
bpo-32159: Revert Misc/svnmap.txt (#4639)

Partially revert the commit fe2d5babba5d26de2093b6518316b268488187be.
Clarify the usage of this file in Misc/README.

7 years agobpo-32166: Drop Python 3.4 code from asyncio (#4612)
Andrew Svetlov [Wed, 29 Nov 2017 16:23:43 +0000 (18:23 +0200)]
bpo-32166: Drop Python 3.4 code from asyncio (#4612)

* Drop Python 3.4 code from asyncio

* Fix notes

* Add missing imports

* Restore comment

* Resort imports

* Drop Python 3.4-3.5 specific code

* Drop redunant check

* Fix tests

* Restore _COROUTINE_TYPES order

* Remove useless code

7 years agobpo-32030: Rework memory allocators (#4625)
Victor Stinner [Wed, 29 Nov 2017 16:20:38 +0000 (17:20 +0100)]
bpo-32030: Rework memory allocators (#4625)

* Fix _PyMem_SetupAllocators("debug"): always restore allocators to
  the defaults, rather than only caling _PyMem_SetupDebugHooks().
* Add _PyMem_SetDefaultAllocator() helper to set the "default"
  allocator.
* Add _PyMem_GetAllocatorsName(): get the name of the allocators
* main() now uses debug hooks on memory allocators if Py_DEBUG is
  defined, rather than calling directly malloc()
* Document default memory allocators in C API documentation
* _Py_InitializeCore() now fails with a fatal user error if
  PYTHONMALLOC value is an unknown memory allocator, instead of
  failing with a fatal internal error.
* Add new tests on the PYTHONMALLOC environment variable
* Add support.with_pymalloc()
* Add the _testcapi.WITH_PYMALLOC constant and expose it as
   support.with_pymalloc().
* sysconfig.get_config_var('WITH_PYMALLOC') doesn't work on Windows, so
   replace it with support.with_pymalloc().
* pythoninfo: add _testcapi collector for pymem

7 years agotest_socket: socket.socketpair() is always available (#4634)
Victor Stinner [Wed, 29 Nov 2017 15:33:53 +0000 (16:33 +0100)]
test_socket: socket.socketpair() is always available (#4634)

7 years agobpo-32138: Skip on Android test_faulthandler tests that raise SIGSEGV (GH-4604)
xdegaye [Wed, 29 Nov 2017 10:43:23 +0000 (11:43 +0100)]
bpo-32138: Skip on Android test_faulthandler tests that raise SIGSEGV (GH-4604)

Remove the test.support.requires_android_level decorator.

7 years agobpo-32139: test_strftime does not anymore modify the locale (GH-4569)
xdegaye [Wed, 29 Nov 2017 10:36:48 +0000 (11:36 +0100)]
bpo-32139: test_strftime does not anymore modify the locale (GH-4569)

7 years agobpo-32164: Delete unused file idlelib/tabbedpages.py (#4628)
Terry Jan Reedy [Wed, 29 Nov 2017 05:08:28 +0000 (00:08 -0500)]
bpo-32164: Delete unused file idlelib/tabbedpages.py (#4628)

7 years agobpo-30781: Remove unused imports in idlelib.configdialog. (#4627)
Terry Jan Reedy [Wed, 29 Nov 2017 02:52:32 +0000 (21:52 -0500)]
bpo-30781: Remove unused imports in idlelib.configdialog. (#4627)

7 years agobpo-32100: Delete unneeded import in idlelib.pathbrowser. (#4626)
Terry Jan Reedy [Wed, 29 Nov 2017 02:50:21 +0000 (21:50 -0500)]
bpo-32100: Delete unneeded import in idlelib.pathbrowser. (#4626)

7 years agobpo-32110: codecs.StreamReader.read(n) now returns not more than n (#4499)
Serhiy Storchaka [Tue, 28 Nov 2017 23:30:00 +0000 (01:30 +0200)]
bpo-32110: codecs.StreamReader.read(n) now returns not more than n (#4499)

characters/bytes for non-negative n.  This makes it compatible with
read() methods of other file-like objects.

7 years agobpo-32107 - Improve MAC address calculation and fix test_uuid.py (#4600)
Barry Warsaw [Tue, 28 Nov 2017 22:26:04 +0000 (17:26 -0500)]
bpo-32107 - Improve MAC address calculation and fix test_uuid.py (#4600)

``uuid.getnode()`` now preferentially returns universally administered MAC addresses if available, over locally administered MAC addresses.  This makes a better guarantee for global uniqueness of UUIDs returned from ``uuid.uuid1()``.  If only locally administered MAC addresses are available, the first such one found is returned.

Also improve internal code style by being explicit about ``return None`` rather than falling off the end of the function.

Improve the test robustness.

7 years agobpo-32155: Revert distutils.config change (#4618)
Victor Stinner [Tue, 28 Nov 2017 22:19:26 +0000 (23:19 +0100)]
bpo-32155: Revert distutils.config change (#4618)

Revert distutils changes of the commit
696b501cd11dc429a0f661adeb598bfaf89e4112 and remove the realm
variable.

7 years agobpo-32159: Remove tools for CVS and Subversion (#4615)
Victor Stinner [Tue, 28 Nov 2017 21:29:32 +0000 (22:29 +0100)]
bpo-32159: Remove tools for CVS and Subversion (#4615)

CPython migrated from CVS to Subversion, to Mercurial, and then to
Git. CVS and Subversion are not more used to develop CPython.

* platform module: drop support for sys.subversion. The
  sys.subversion attribute has been removed in Python 3.3.
* Remove Misc/svnmap.txt
* Remove Tools/scripts/svneol.py
* Remove Tools/scripts/treesync.py

7 years agobpo-32157: Removed explicit quotes around %r and {!r}. (#4582)
Serhiy Storchaka [Tue, 28 Nov 2017 20:54:42 +0000 (22:54 +0200)]
bpo-32157: Removed explicit quotes around %r and {!r}. (#4582)

7 years agoUse raw strings in the re module examples. (#4616)
Serhiy Storchaka [Tue, 28 Nov 2017 20:51:38 +0000 (22:51 +0200)]
Use raw strings in the re module examples. (#4616)

7 years agobpo-32154: Remove asyncio.windows_utils.socketpair (#4609)
Victor Stinner [Tue, 28 Nov 2017 20:33:20 +0000 (21:33 +0100)]
bpo-32154: Remove asyncio.windows_utils.socketpair (#4609)

7 years agobpo-32071: Fix regression and add What's New entry (#4589)
Jonas Haag [Tue, 28 Nov 2017 19:40:44 +0000 (20:40 +0100)]
bpo-32071: Fix regression and add What's New entry (#4589)

* bpo-32071: Fix an undocumented behaviour regression

* bpo-32071: Add 3.7 release note entry for unittest -k

7 years agobpo-32046: Update 2to3 when converts operator.isCallable(obj). (#4417)
Dong-hee Na [Tue, 28 Nov 2017 16:26:56 +0000 (01:26 +0900)]
bpo-32046: Update 2to3 when converts operator.isCallable(obj). (#4417)

7 years agobpo-32150: Expand tabs to spaces in C files. (#4583)
Serhiy Storchaka [Tue, 28 Nov 2017 15:56:10 +0000 (17:56 +0200)]
bpo-32150: Expand tabs to spaces in C files. (#4583)

7 years agobpo-31440: Changed default module search path for windows
gauravbackback [Tue, 28 Nov 2017 15:16:30 +0000 (20:46 +0530)]
bpo-31440: Changed default module search path for windows

7 years agobpo-32155: Bugfixes found by flake8 F841 warnings (#4608)
Victor Stinner [Tue, 28 Nov 2017 14:30:32 +0000 (15:30 +0100)]
bpo-32155: Bugfixes found by flake8 F841 warnings (#4608)

* distutils.config: Use the PyPIRCCommand.realm attribute if set
* turtledemo: wait until macOS osascript command completes to not
  create a zombie process
* Tools/scripts/treesync.py: declare 'default_answer' and
  'create_files' as globals to modify them with the command line
  arguments. Previously, -y, -n, -f and -a options had no effect.

flake8 warning: "F841 local variable 'p' is assigned to but never
used".

7 years agobpo-32154: Remove asyncio.selectors (#4605)
Victor Stinner [Tue, 28 Nov 2017 14:19:56 +0000 (15:19 +0100)]
bpo-32154: Remove asyncio.selectors (#4605)

* Remove asyncio.selectors and asyncio._overlapped symbols from the
  namespace of the asyncio module
* Replace "from asyncio import selectors" with "import selectors"
* Replace "from asyncio import _overlapped" with "import _overlapped"

asyncio.selectors was added to support Python 3.3, which doesn't have
selectors in its standard library, and Python 3.4 in the same code
base. Same rationale for asyncio._overlapped. Python 3.3 reached its
end of life, and asyncio is no more maintained as a third party
module on PyPI.