]> granicus.if.org Git - python/log
python
7 years agobpo-32436: Use PyThreadState_GET() in all hot paths (GH-5363)
Yury Selivanov [Sat, 27 Jan 2018 18:24:20 +0000 (13:24 -0500)]
bpo-32436: Use PyThreadState_GET() in all hot paths (GH-5363)

7 years agoFix wrong assert in unicodeobject (GH-5340)
INADA Naoki [Sat, 27 Jan 2018 17:07:09 +0000 (02:07 +0900)]
Fix wrong assert in unicodeobject (GH-5340)

7 years agobpo-31368: Expose preadv and pwritev in the os module (#5239)
Pablo Galindo [Sat, 27 Jan 2018 16:16:37 +0000 (16:16 +0000)]
bpo-31368: Expose preadv and pwritev in the os module (#5239)

7 years agobpo-32532: Improve documentation of settrace and setprofile (#5359)
Xiang Zhang [Sat, 27 Jan 2018 15:04:47 +0000 (23:04 +0800)]
bpo-32532: Improve documentation of settrace and setprofile (#5359)

Mention in the documentation of settrace and setprofile that errors in the
registered handlers will cause themselves unset.

7 years agobpo-31399: Let OpenSSL verify hostname and IP address (#3462)
Christian Heimes [Sat, 27 Jan 2018 14:51:38 +0000 (15:51 +0100)]
bpo-31399: Let OpenSSL verify hostname and IP address (#3462)

bpo-31399: Let OpenSSL verify hostname and IP

The ssl module now uses OpenSSL's X509_VERIFY_PARAM_set1_host() and
X509_VERIFY_PARAM_set1_ip() API to verify hostname and IP addresses.

* Remove match_hostname calls
* Check for libssl with set1_host, libssl must provide X509_VERIFY_PARAM_set1_host()
* Add documentation for OpenSSL 1.0.2 requirement
* Don't support OpenSSL special mode with a leading dot, e.g. ".example.org" matches "www.example.org". It's not standard conform.
* Add hostname_checks_common_name

Signed-off-by: Christian Heimes <christian@python.org>
7 years agobpo-31853: Replaced socket.method calls with super() in SSLSocket. (#4048)
Mads Jensen [Sat, 27 Jan 2018 12:34:28 +0000 (13:34 +0100)]
bpo-31853: Replaced socket.method calls with super() in SSLSocket. (#4048)

7 years agobpo-32454: socket closefd (#5048)
Christian Heimes [Sat, 27 Jan 2018 08:54:13 +0000 (09:54 +0100)]
bpo-32454: socket closefd (#5048)

Add close(fd) function to the socket module

Signed-off-by: Christian Heimes <christian@python.org>
7 years agobpo-32433: Optimized HMAC digest (#5023)
Christian Heimes [Sat, 27 Jan 2018 08:53:43 +0000 (09:53 +0100)]
bpo-32433: Optimized HMAC digest (#5023)

The hmac module now has hmac.digest(), which provides an optimized HMAC
digest for short messages. hmac.digest() is up to three times faster
than hmac.HMAC().digest().

Signed-off-by: Christian Heimes <christian@python.org>
7 years agobpo-32677: Add .isascii() to str, bytes and bytearray (GH-5342)
INADA Naoki [Sat, 27 Jan 2018 05:06:21 +0000 (14:06 +0900)]
bpo-32677: Add .isascii() to str, bytes and bytearray (GH-5342)

7 years agobpo-27505: Add change notes in module attribute docs (GH-5320)
Cheryl Sabella [Sat, 27 Jan 2018 02:40:52 +0000 (21:40 -0500)]
bpo-27505: Add change notes in module attribute docs (GH-5320)

Make it clear that setting __class__ on a module has worked since 3.5,
but support for __getattr__ and __dir__ on module instances requires 3.7+

Patch by Cheryl Sabella.

7 years agobpo-32678: inspect: Import ast lazily (GH-5344)
INADA Naoki [Sat, 27 Jan 2018 01:10:06 +0000 (10:10 +0900)]
bpo-32678: inspect: Import ast lazily (GH-5344)

7 years agobpo-32521: nis libnsl (#5190)
Christian Heimes [Fri, 26 Jan 2018 22:28:46 +0000 (23:28 +0100)]
bpo-32521: nis libnsl (#5190)

The nismodule is now compatible with new libnsl and headers location

Signed-off-by: Christian Heimes <christian@python.org>
7 years agobpo-32436: Make PyContextVar_Get a little bit faster (#5350)
Yury Selivanov [Fri, 26 Jan 2018 22:24:52 +0000 (17:24 -0500)]
bpo-32436: Make PyContextVar_Get a little bit faster (#5350)

Since context.c is compiled with Py_BUILD_CORE, using a macro
will result in a slightly more optimal code.

7 years agobpo-32670: Enforce PEP 479. (#5327)
Yury Selivanov [Fri, 26 Jan 2018 20:24:24 +0000 (15:24 -0500)]
bpo-32670: Enforce PEP 479. (#5327)

7 years agobpo-32591: fix abort in _PyErr_WarnUnawaitedCoroutine during shutdown (#5337)
Nathaniel J. Smith [Fri, 26 Jan 2018 19:28:31 +0000 (11:28 -0800)]
bpo-32591: fix abort in _PyErr_WarnUnawaitedCoroutine during shutdown (#5337)

When an unawaited coroutine is collected very late in shutdown --
like, during the final GC at the end of PyImport_Cleanup -- then it
was triggering an interpreter abort, because we'd try to look up the
"warnings" module and not only was it missing (we were prepared for
that), but the entire module system was missing (which we were not
prepared for).

I've tried to fix this at the source, by making the utility function
get_warnings_attr robust against this in general. Note that it already
has the convention that it can return NULL without setting an error,
which is how it signals that the attribute it was asked to fetch is
missing, and that all callers already check for NULL returns.

There's a similar check for being late in shutdown at the top of
warn_explicit, which might be unnecessary after this fix, but I'm not
sure so I'm going to leave it.

7 years agoString annotations [PEP 563] (#4390)
Guido van Rossum [Fri, 26 Jan 2018 16:20:18 +0000 (08:20 -0800)]
String annotations [PEP 563] (#4390)

* Document `from __future__ import annotations`
* Provide plumbing and tests for `from __future__ import annotations`
* Implement unparsing the AST back to string form

This is required for PEP 563 and as such only implements a part of the
unparsing process that covers expressions.

7 years agobpo-18533: Avoid RecursionError from repr() of recursive dictview (#4823)
bennorth [Fri, 26 Jan 2018 15:46:01 +0000 (15:46 +0000)]
bpo-18533: Avoid RecursionError from repr() of recursive dictview (#4823)

dictview_repr(): Use a Py_ReprEnter() / Py_ReprLeave() pair to check
for recursion, and produce "..." if so.

test_recursive_repr(): Check for the string rather than a
RecursionError.  (Test cannot be any tighter as contents are
implementation-dependent.)

test_deeply_nested_repr(): Add new test, replacing the original
test_recursive_repr().  It checks that a RecursionError is raised in
the case of a non-recursive but deeply nested structure.  (Very
similar to what test_repr_deep() in test/test_dict.py does for a
normal dict.)

OrderedDictTests: Add new test case, to test behavior on OrderedDict
instances containing their own values() or items().

7 years agobpo-32571: Fix reading uninitialized memory (GH-5332)
INADA Naoki [Fri, 26 Jan 2018 07:22:51 +0000 (16:22 +0900)]
bpo-32571: Fix reading uninitialized memory (GH-5332)

Reported by Coverity Scan.

7 years agobpo-32662: Try making test_asyncio.test_server more reliable (#5338)
Yury Selivanov [Fri, 26 Jan 2018 06:30:57 +0000 (01:30 -0500)]
bpo-32662: Try making test_asyncio.test_server more reliable (#5338)

7 years agobpo-29237: Create enum for pstats sorting options (GH-5103)
mwidjaja [Fri, 26 Jan 2018 04:49:56 +0000 (20:49 -0800)]
bpo-29237: Create enum for pstats sorting options (GH-5103)

7 years agobpo-32596: Make lazy-load portable (GH-5316)
INADA Naoki [Fri, 26 Jan 2018 01:53:31 +0000 (10:53 +0900)]
bpo-32596: Make lazy-load portable (GH-5316)

Global variables should not used as import target.
Use temporary variable instead.

7 years agobpo-32304: Fix distutils upload for sdists ending with \x0d (GH-5264)
Bo Bayles [Fri, 26 Jan 2018 00:02:03 +0000 (18:02 -0600)]
bpo-32304: Fix distutils upload for sdists ending with \x0d (GH-5264)

Patch by Bo Bayles.

7 years agobpo-32574: Fix leaks in asyncio.Queue.put() and .get() (#5208)
José Melero Fernández [Thu, 25 Jan 2018 23:45:43 +0000 (23:45 +0000)]
bpo-32574: Fix leaks in asyncio.Queue.put() and .get() (#5208)

7 years agobpo-32662: Implement Server.start_serving() and Server.serve_forever() (#5312)
Yury Selivanov [Thu, 25 Jan 2018 23:08:09 +0000 (18:08 -0500)]
bpo-32662: Implement Server.start_serving() and Server.serve_forever() (#5312)

* bpo-32662: Implement Server.start_serving() and Server.serve_forever()

New methods:

* Server.start_serving(),
* Server.serve_forever(), and
* Server.is_serving().

Add 'start_serving' keyword parameter to loop.create_server() and
loop.create_unix_server().

7 years agobpo-29302: Implement contextlib.AsyncExitStack. (#4790)
Ilya Kulakov [Thu, 25 Jan 2018 20:51:18 +0000 (12:51 -0800)]
bpo-29302: Implement contextlib.AsyncExitStack. (#4790)

7 years agobpo-32436: Fix a refleak; var GC tracking; a GCC warning (#5326)
Yury Selivanov [Thu, 25 Jan 2018 19:18:55 +0000 (14:18 -0500)]
bpo-32436: Fix a refleak; var GC tracking; a GCC warning (#5326)

The refleak in question wasn't really important, as context vars
are usually created at the toplevel and live as long as the interpreter
lives, so the context var name isn't ever GCed anyways.

7 years agobpo-32667: Fix tests when $PATH contains a file (#5322)
Victor Stinner [Thu, 25 Jan 2018 18:06:05 +0000 (19:06 +0100)]
bpo-32667: Fix tests when $PATH contains a file (#5322)

Some tests failed when the PATH environment variable contained a path
to an existing file. Fix tests to ignore also NotADirectoryError, not
only FileNotFoundError and PermissionError.

7 years agoFix 3rd level node's binary representation in HAMT algorithm description (#5319)
Dmitry Alimov [Thu, 25 Jan 2018 17:54:41 +0000 (20:54 +0300)]
Fix 3rd level node's binary representation in HAMT algorithm description (#5319)

7 years agoCleanup dangling reference in get_timezone_utc_capi (#5317)
Paul Ganssle [Thu, 25 Jan 2018 13:58:07 +0000 (08:58 -0500)]
Cleanup dangling reference in get_timezone_utc_capi (#5317)

7 years agobpo-32360: Remove OrderedDict usage from json.tool (GH-5315)
INADA Naoki [Thu, 25 Jan 2018 10:52:58 +0000 (19:52 +0900)]
bpo-32360: Remove OrderedDict usage from json.tool (GH-5315)

`object_pairs_hook=OrderedDict` idiom is deprecated.

7 years ago bpo-32571: Avoid raising unneeded AttributeError and silencing it in C code (GH...
Serhiy Storchaka [Thu, 25 Jan 2018 08:49:40 +0000 (10:49 +0200)]
 bpo-32571: Avoid raising unneeded AttributeError and silencing it in C code (GH-5222)

Add two new private APIs: _PyObject_LookupAttr() and _PyObject_LookupAttrId()

7 years agobpo-32652: Defer pymain_set_global_config() call (#5303)
Victor Stinner [Thu, 25 Jan 2018 08:18:36 +0000 (09:18 +0100)]
bpo-32652: Defer pymain_set_global_config() call (#5303)

In Py_Main(), don't call pymain_set_global_config() early: only call
it when the whole configuration has been read.

Add an unit test to prevent future regression.

7 years agobpo-29708: Add What's New entries for SOURCE_DATE_EPOCH and py_compile (GH-5306)
Brett Cannon [Thu, 25 Jan 2018 01:13:24 +0000 (17:13 -0800)]
bpo-29708: Add What's New entries for SOURCE_DATE_EPOCH and py_compile (GH-5306)

7 years agobpo-32391: Implement StreamWriter.wait_closed() (#5281)
Andrew Svetlov [Wed, 24 Jan 2018 22:30:30 +0000 (00:30 +0200)]
bpo-32391: Implement StreamWriter.wait_closed() (#5281)

7 years agobpo-10381: Add timezone to datetime C API (#5032)
Paul Ganssle [Wed, 24 Jan 2018 22:29:30 +0000 (17:29 -0500)]
bpo-10381: Add timezone to datetime C API (#5032)

* Add timezone to datetime C API

* Add documentation for timezone C API macros

* Add dedicated tests for datetime type check macros

* Remove superfluous C API test

* Drop support for TimeZoneType in datetime C API

* Expose UTC singleton to the datetime C API

* Update datetime C-API documentation to include links

* Add reference count information for timezone constructors

7 years agobpo-29708: Setting SOURCE_DATE_EPOCH forces hash-based .pyc files (GH-5200)
Bernhard M. Wiedemann [Wed, 24 Jan 2018 21:26:18 +0000 (22:26 +0100)]
bpo-29708: Setting SOURCE_DATE_EPOCH forces hash-based .pyc files (GH-5200)

To support reproducible builds, the setting of of SOURCE_DATE_EPOCH triggers the py_compile module -- and by extension, compileall -- to forcibly compile with hash-based .pyc files. This eliminates the possibility of timestamp-based .pyc files which vary between builds.

7 years ago bpo-32248 - Implement `ResourceReader` and `get_resource_reader()` for zipimport...
Barry Warsaw [Wed, 24 Jan 2018 20:36:21 +0000 (15:36 -0500)]
 bpo-32248 - Implement `ResourceReader` and `get_resource_reader()` for zipimport (#5248)

7 years agobpo-32636: Fix two bugs in test_asyncio (#5302)
Victor Stinner [Wed, 24 Jan 2018 20:15:14 +0000 (21:15 +0100)]
bpo-32636: Fix two bugs in test_asyncio (#5302)

7 years agobpo-32636: Fix @asyncio.coroutine debug mode bug exposed by gh-5250 (#5291)
Nathaniel J. Smith [Wed, 24 Jan 2018 20:14:33 +0000 (12:14 -0800)]
bpo-32636: Fix @asyncio.coroutine debug mode bug exposed by gh-5250 (#5291)

7 years agobpo-32410: Improve sock_sendfile tests (#5294)
Andrew Svetlov [Wed, 24 Jan 2018 19:40:35 +0000 (21:40 +0200)]
bpo-32410: Improve sock_sendfile tests (#5294)

* Rename sock_sendfile test methods
* Make sock_sendfile tests more stable

7 years agobpo-32651 Recommend getpass.getuser() (#5301)
Barry Warsaw [Wed, 24 Jan 2018 17:51:29 +0000 (12:51 -0500)]
bpo-32651 Recommend getpass.getuser() (#5301)

* bpo-32651 - In the documentation for os.getlogin(), recommend getpass.getuser()

7 years agobpo-32643: Drop support for a few private Task and Future APIs. (#5293)
Yury Selivanov [Wed, 24 Jan 2018 16:31:01 +0000 (11:31 -0500)]
bpo-32643: Drop support for a few private Task and Future APIs. (#5293)

Specifically, it's not possible to subclass Task/Future classes
and override the following methods:

* Future._schedule_callbacks
* Task._step
* Task._wakeup

7 years agobpo-32030: Add _PyCoreConfig.module_search_paths (#4954)
Victor Stinner [Wed, 24 Jan 2018 16:03:28 +0000 (17:03 +0100)]
bpo-32030: Add _PyCoreConfig.module_search_paths (#4954)

_PyCoreConfig_Read() is now responsible to compute sys.path.
So sys.path is now computed before calling _Py_InitializeCore().

Changes:

* Add module_search_path, module_search_paths, executable, prefix,
  base_prefix, exec_prefix and base_exec_prefix to _PyCoreConfig.
* _PyMainInterpreterConfig_Read() now only converts wchar_t** lists
  into a Python list, it doesn't compute sys.path anymore.

7 years agobpo-28046: Remove MACHDEPPATH from Modules/Setup.dist (#5289)
Victor Stinner [Wed, 24 Jan 2018 16:02:41 +0000 (17:02 +0100)]
bpo-28046: Remove MACHDEPPATH from Modules/Setup.dist (#5289)

Makefile $MACHDEPPATH uses $PLATDIR, but this variable was removed.
So remove also $MACHDEPPATH.

Remove also $EXTRAMACHDEPPATH.

7 years agobpo-17799: Explain real behaviour of sys.settrace and sys.setprofile (#4056)
Pablo Galindo [Wed, 24 Jan 2018 12:57:49 +0000 (12:57 +0000)]
bpo-17799: Explain real behaviour of sys.settrace and sys.setprofile (#4056)

7 years agobpo-32360: unittest.util: Use Counter instead of custom count function (GH-4994)
Srinivas Reddy Thatiparthy (శ్రీనివాస్ రెడ్డి తాటిపర్తి) [Wed, 24 Jan 2018 07:49:58 +0000 (13:19 +0530)]
bpo-32360: unittest.util: Use Counter instead of custom count function (GH-4994)

7 years agobpo-32436: Don't use native popcount() (also fixes bpo-32641) (#5292)
Yury Selivanov [Wed, 24 Jan 2018 03:17:04 +0000 (22:17 -0500)]
bpo-32436: Don't use native popcount() (also fixes bpo-32641) (#5292)

7 years agobpo-32502: Discard 64-bit (and other invalid) hardware addresses (#5254)
Bo Bayles [Wed, 24 Jan 2018 01:11:44 +0000 (19:11 -0600)]
bpo-32502: Discard 64-bit (and other invalid) hardware addresses (#5254)

7 years agobpo-32436: Fix potential NULL dereference (#5286)
Yury Selivanov [Tue, 23 Jan 2018 21:26:07 +0000 (16:26 -0500)]
bpo-32436: Fix potential NULL dereference (#5286)

7 years agobpo-32296: Make get_running_loop() another 4-5x faster (#5277)
Yury Selivanov [Tue, 23 Jan 2018 20:10:03 +0000 (15:10 -0500)]
bpo-32296: Make get_running_loop() another 4-5x faster (#5277)

7 years ago bpo-32635: Fix a segfault when importing the crypt module with libxcrypt. (#5284)
stratakis [Tue, 23 Jan 2018 15:11:24 +0000 (16:11 +0100)]
 bpo-32635: Fix a segfault when importing the crypt module with libxcrypt. (#5284)

glibc is deprecating libcrypt in favor of libxcrypt, however python assumes
that crypt.h will always be included. This change makes the header inclusion
explicit when libxcrypt is present on the system.

7 years agobpo-32618: Fix test_mutatingdecodehandler not testing test.mutating (#5269)
Xiang Zhang [Tue, 23 Jan 2018 14:50:50 +0000 (22:50 +0800)]
bpo-32618: Fix test_mutatingdecodehandler not testing test.mutating (#5269)

* bpo-32618: Fix test_mutatingdecodehandler not testing test.mutating

It should test both test.replacing and test.mutating instead of test test.replacing twice.

7 years agobpo-20361: Remove workaround for a now fixed bug (#5283)
Victor Stinner [Tue, 23 Jan 2018 12:30:53 +0000 (13:30 +0100)]
bpo-20361: Remove workaround for a now fixed bug (#5283)

"python3 -bb -Wd" now works as expected:
"python3 -bb -Wd -Werror::BytesWarning" is no more needed.

7 years agobpo-32593: Run autoconf (#5282)
Victor Stinner [Tue, 23 Jan 2018 12:14:08 +0000 (13:14 +0100)]
bpo-32593: Run autoconf (#5282)

Update configure since configure.ac was modified to drop support for
FreeBSD 4.

7 years agobpo-32633: Fix some warnings in test_asyncio.test_tasks (#5280)
Nathaniel J. Smith [Tue, 23 Jan 2018 09:09:31 +0000 (01:09 -0800)]
bpo-32633: Fix some warnings in test_asyncio.test_tasks (#5280)

7 years agobpo-32436: Remove a redundant assert (#5275)
Yury Selivanov [Tue, 23 Jan 2018 07:00:03 +0000 (02:00 -0500)]
bpo-32436: Remove a redundant assert (#5275)

7 years agoAdd myself as hamt/context (PEP 567) code owner (#5276)
Yury Selivanov [Tue, 23 Jan 2018 06:59:50 +0000 (01:59 -0500)]
Add myself as hamt/context (PEP 567) code owner (#5276)

7 years agobpo-32436: Implement PEP 567 (#5027)
Yury Selivanov [Tue, 23 Jan 2018 00:11:18 +0000 (19:11 -0500)]
bpo-32436: Implement PEP 567 (#5027)

7 years agobpo-29240: PyUnicode_DecodeLocale() uses UTF-8 on Android (#5272)
Victor Stinner [Mon, 22 Jan 2018 18:07:32 +0000 (19:07 +0100)]
bpo-29240: PyUnicode_DecodeLocale() uses UTF-8 on Android (#5272)

PyUnicode_DecodeLocaleAndSize(), PyUnicode_DecodeLocale() and
PyUnicode_EncodeLocale() now use always use the UTF-8 encoding on
Android, instead of the current locale encoding.

On Android API 19, mbstowcs() and wcstombs() are broken and cannot be
used.

7 years agobpo-32593: Drop FreeBSD 9 and older support (#5232)
Victor Stinner [Mon, 22 Jan 2018 17:32:50 +0000 (18:32 +0100)]
bpo-32593: Drop FreeBSD 9 and older support (#5232)

Drop support of FreeBSD 9 and older.

7 years agobpo-31179: Make dict.copy() up to 5.5 times faster. (#3067)
Yury Selivanov [Mon, 22 Jan 2018 16:54:41 +0000 (11:54 -0500)]
bpo-31179: Make dict.copy() up to 5.5 times faster. (#3067)

7 years agobpo-31801: Enum: add _ignore_ as class option (#5237)
Ethan Furman [Mon, 22 Jan 2018 15:56:37 +0000 (07:56 -0800)]
bpo-31801:  Enum:  add _ignore_ as class option (#5237)

* bpo-31801:  Enum:  add _ignore_ as class option

_ignore_ is a list, or white-space seperated str, of names that will not
be candidates for members; these names, and _ignore_ itself, are removed
from the final class.

* bpo-31801:  Enum:  add documentation for _ignore_

* bpo-31801: Enum: remove trailing whitespace

* bpo-31801: Enum: fix bulleted list format

* bpo-31801: add version added for _ignore_

7 years agourllib.request: Remove unused import (GH-5268)
INADA Naoki [Mon, 22 Jan 2018 07:45:31 +0000 (16:45 +0900)]
urllib.request: Remove unused import (GH-5268)

7 years agobpo-32591: Fix PyExc_WarnFormat call (follow-up commit) (#5263)
Yury Selivanov [Mon, 22 Jan 2018 01:47:04 +0000 (20:47 -0500)]
bpo-32591: Fix PyExc_WarnFormat call (follow-up commit) (#5263)

The previous version was correct in terms of behaviour, but
checking the return value of PyErr_WarnFormat allows to
avoid calling PyErr_Occurred and silences the coverity alarm.

7 years agobpo-32314: Fix asyncio.run() to cancel runinng tasks on shutdown (#5262)
Yury Selivanov [Sun, 21 Jan 2018 19:56:59 +0000 (14:56 -0500)]
bpo-32314: Fix asyncio.run() to cancel runinng tasks on shutdown (#5262)

7 years agobpo-32591: Add native coroutine origin tracking (#5250)
Nathaniel J. Smith [Sun, 21 Jan 2018 14:44:07 +0000 (06:44 -0800)]
bpo-32591: Add native coroutine origin tracking (#5250)

* Add coro.cr_origin and sys.set_coroutine_origin_tracking_depth
* Use coroutine origin information in the unawaited coroutine warning
* Stop using set_coroutine_wrapper in asyncio debug mode
* In BaseEventLoop.set_debug, enable debugging in the correct thread

7 years agobpo-32503: Avoid creating too small frames in pickles. (#5127)
Serhiy Storchaka [Sat, 20 Jan 2018 14:42:44 +0000 (16:42 +0200)]
bpo-32503: Avoid creating too small frames in pickles. (#5127)

7 years agobpo-32602: Test ECDSA certs (#5247)
Christian Heimes [Sat, 20 Jan 2018 14:16:30 +0000 (15:16 +0100)]
bpo-32602: Test ECDSA certs (#5247)

Add test certs and test for ECDSA cert and EC/RSA dual mode.

I'm also adding certs for IDNA 2003/2008 tests and simplify some test
data handling.

Signed-off-by: Christian Heimes <christian@python.org>
7 years agobpo-32598: Use autoconf to detect usable OpenSSL (#5242)
Christian Heimes [Sat, 20 Jan 2018 12:19:21 +0000 (13:19 +0100)]
bpo-32598: Use autoconf to detect usable OpenSSL (#5242)

Add https://www.gnu.org/software/autoconf-archive/ax_check_openssl.html
to auto-detect compiler flags, linker flags and libraries to compile
OpenSSL extensions. The M4 macro uses pkg-config and falls back to
manual detection.

Add autoconf magic to detect usable X509_VERIFY_PARAM_set1_host()
and related functions.

Refactor setup.py to use new config vars to compile _ssl and _hashlib
modules.

Signed-off-by: Christian Heimes <christian@python.org>
7 years agobpo-32226: PEP 560: improve typing module (#4906)
Ivan Levkivskyi [Sat, 20 Jan 2018 11:23:59 +0000 (11:23 +0000)]
bpo-32226: PEP 560: improve typing module (#4906)

This PR re-designs the internal typing API using the new PEP 560 features.
However, there are only few minor changes in the public API.

7 years agobpo-32028: Fix suggestions for indented print statements (GH-4688)
Sanyam Khurana [Sat, 20 Jan 2018 03:12:22 +0000 (08:42 +0530)]
bpo-32028: Fix suggestions for indented print statements (GH-4688)

The suggested replacement for print statements previously failed to account
for leading whitespace and hence could end up including unwanted text in
the proposed call to the print builtin.

Patch by Sanyam Khurana.

7 years agobpo-32596: Lazy import concurrent.futures.process and thread (GH-5241)
INADA Naoki [Sat, 20 Jan 2018 00:54:42 +0000 (09:54 +0900)]
bpo-32596: Lazy import concurrent.futures.process and thread (GH-5241)

7 years agobpo-25910: Link redirections in docs (#1933)
Sanyam Khurana [Sat, 20 Jan 2018 00:25:37 +0000 (05:55 +0530)]
bpo-25910: Link redirections in docs (#1933)

Fixes some redirection links in docs.

7 years agobpo-32410: Make SendfileNotAvailableError exception public (#5243)
Andrew Svetlov [Fri, 19 Jan 2018 18:04:29 +0000 (20:04 +0200)]
bpo-32410: Make SendfileNotAvailableError exception public (#5243)

7 years agobpo-32588: Move _findvs into its own module and add missing _queue module to installe...
Steve Dower [Thu, 18 Jan 2018 22:09:36 +0000 (09:09 +1100)]
bpo-32588: Move _findvs into its own module and add missing _queue module to installer (#5227)

7 years agoRemoved unnecesssary bit inversion which doesn't improve dispersion statistics (...
Raymond Hettinger [Thu, 18 Jan 2018 21:23:27 +0000 (13:23 -0800)]
Removed unnecesssary bit inversion which doesn't improve dispersion statistics (#5235)

7 years agobpo-9566: Fix size_t=>int downcast warnings (#5230)
Victor Stinner [Thu, 18 Jan 2018 10:15:25 +0000 (11:15 +0100)]
bpo-9566: Fix size_t=>int downcast warnings (#5230)

* Use wider types (int => Py_ssize_t) to avoid integer overflows.
* Fix gc.get_freeze_count(): use Py_ssize_t type rather than int, since gc_list_size() returns a Py_ssize_t.

7 years agobpo-32576: use queue.SimpleQueue in critical places (#5216)
Antoine Pitrou [Thu, 18 Jan 2018 09:38:03 +0000 (10:38 +0100)]
bpo-32576: use queue.SimpleQueue in critical places (#5216)

Where a queue may be invoked from a weakref callback, we need
to use the reentrant SimpleQueue.

7 years agoFix typo in thread_nt.h code comment (GH-5211)
hui shang [Wed, 17 Jan 2018 23:21:01 +0000 (07:21 +0800)]
Fix typo in thread_nt.h code comment (GH-5211)

The comment for PyThread_allocate_lock says "It has too be implemented ...".
There was an extra "o" in ".. to be implemented.."

7 years agoUse assertCountEqual instead of assertEqual. (#5223)
Gregory P. Smith [Wed, 17 Jan 2018 22:57:57 +0000 (14:57 -0800)]
Use assertCountEqual instead of assertEqual. (#5223)

This test doesn't care about order, the underlying filesystem APIs do not
guarantee directory listings on subsequent calls will be in the same order.

7 years agobpo-32226: Fix memory leak in generic_alias_dealloc() (#5212)
Victor Stinner [Wed, 17 Jan 2018 22:08:18 +0000 (23:08 +0100)]
bpo-32226: Fix memory leak in generic_alias_dealloc() (#5212)

7 years agopythoninfo: add time.time and datetime.datetime.now (#5214)
Victor Stinner [Wed, 17 Jan 2018 15:35:45 +0000 (16:35 +0100)]
pythoninfo: add time.time and datetime.datetime.now (#5214)

7 years agobpo-32248: Fix test_importlib.test_open() (#5213)
Victor Stinner [Wed, 17 Jan 2018 14:21:50 +0000 (15:21 +0100)]
bpo-32248: Fix test_importlib.test_open() (#5213)

Use the binary.file instead of utf-8.file to avoid issues with
Unix newlines vs Windows newlines.

7 years agoFix Git attributes of test_importlib data files (#5209)
Victor Stinner [Wed, 17 Jan 2018 09:26:03 +0000 (10:26 +0100)]
Fix Git attributes of test_importlib data files (#5209)

bpo-32248: Make sure that Git checks out data files with Unix line
ending on Windows as well.

7 years agobpo-32549: Compile OpenSSL 1.1.0 on Travis CI (#5180)
Christian Heimes [Tue, 16 Jan 2018 20:02:26 +0000 (21:02 +0100)]
bpo-32549: Compile OpenSSL 1.1.0 on Travis CI (#5180)

Use an improved version of multissl test helper to compile a local copy
of OpenSSL 1.1.0g.

Signed-off-by: Christian Heimes <christian@python.org>
7 years agobpo-32403: Faster date and datetime constructors (#4993)
Paul Ganssle [Tue, 16 Jan 2018 18:06:31 +0000 (13:06 -0500)]
bpo-32403: Faster date and datetime constructors (#4993)

* Add tests for date subclass alternate constructors

* Switch over alternate date constructors to fast path

* Switch datetime constructors to fastpath, fix bpo-32404

* Add fast path for datetime in date subclass constructor

* Set fold in constructor in datetime.combine

* Add news entries.

7 years agobpo-32410: Implement loop.sock_sendfile() (#4976)
Andrew Svetlov [Tue, 16 Jan 2018 17:59:34 +0000 (19:59 +0200)]
bpo-32410: Implement loop.sock_sendfile() (#4976)

7 years agoSkip test_readline.test_nonascii() on C locale (#5203)
Victor Stinner [Tue, 16 Jan 2018 16:34:34 +0000 (17:34 +0100)]
Skip test_readline.test_nonascii() on C locale (#5203)

bpo-29240: On FreeBSD, if the LC_CTYPE locale is "C" or "POSIX",
writing and reading non-ASCII bytes into/from a TTY works,
but readline or ncurses ignores non-ASCII bytes on read.

7 years agobpo-31572: Get rid of PyObject_HasAttr() and _PyObject_HasAttrId() in the _io module...
Serhiy Storchaka [Tue, 16 Jan 2018 16:34:21 +0000 (18:34 +0200)]
bpo-31572: Get rid of PyObject_HasAttr() and _PyObject_HasAttrId() in the _io module. (#3726)

7 years agobpo-32544: Speed up hasattr() and getattr() (GH-5173)
INADA Naoki [Tue, 16 Jan 2018 11:52:41 +0000 (20:52 +0900)]
bpo-32544: Speed up hasattr() and getattr() (GH-5173)

AttributeError was raised always when attribute is not found.
This commit skip raising AttributeError when `tp_getattro` is `PyObject_GenericGetAttr`.
It makes hasattr() and getattr() about 4x faster when attribute is not found.

7 years agobpo-26163: Frozenset hash improvement (#5194)
Raymond Hettinger [Tue, 16 Jan 2018 09:30:26 +0000 (01:30 -0800)]
bpo-26163: Frozenset hash improvement (#5194)

7 years agobpo-14976: Reentrant simple queue (#3346)
Antoine Pitrou [Mon, 15 Jan 2018 23:27:16 +0000 (00:27 +0100)]
bpo-14976: Reentrant simple queue (#3346)

Add a queue.SimpleQueue class, an unbounded FIFO queue with a reentrant C implementation of put().

7 years agoImplement the get_resource_reader() API for file system imports (#5168)
Barry Warsaw [Mon, 15 Jan 2018 23:07:11 +0000 (15:07 -0800)]
Implement the get_resource_reader() API for file system imports (#5168)

7 years agoMake asyncio tests run when there's no SSL module (#5196)
Yury Selivanov [Mon, 15 Jan 2018 22:56:32 +0000 (17:56 -0500)]
Make asyncio tests run when there's no SSL module (#5196)

7 years agobpo-31900: Fix localeconv() encoding for LC_NUMERIC (#4174)
Victor Stinner [Mon, 15 Jan 2018 14:58:02 +0000 (15:58 +0100)]
bpo-31900: Fix localeconv() encoding for LC_NUMERIC (#4174)

* Add _Py_GetLocaleconvNumeric() function: decode decimal_point and
  thousands_sep fields of localeconv() from the LC_NUMERIC encoding,
  rather than decoding from the LC_CTYPE encoding.
* Modify locale.localeconv() and "n" formatter of str.format() (for
  int, float and complex to use _Py_GetLocaleconvNumeric()
  internally.

7 years agobpo-29240: Fix locale encodings in UTF-8 Mode (#5170)
Victor Stinner [Mon, 15 Jan 2018 09:45:49 +0000 (10:45 +0100)]
bpo-29240: Fix locale encodings in UTF-8 Mode (#5170)

Modify locale.localeconv(), time.tzname, os.strerror() and other
functions to ignore the UTF-8 Mode: always use the current locale
encoding.

Changes:

* Add _Py_DecodeLocaleEx() and _Py_EncodeLocaleEx(). On decoding or
  encoding error, they return the position of the error and an error
  message which are used to raise Unicode errors in
  PyUnicode_DecodeLocale() and PyUnicode_EncodeLocale().
* Replace _Py_DecodeCurrentLocale() with _Py_DecodeLocaleEx().
* PyUnicode_DecodeLocale() now uses _Py_DecodeLocaleEx() for all
  cases, especially for the strict error handler.
* Add _Py_DecodeUTF8Ex(): return more information on decoding error
  and supports the strict error handler.
* Rename _Py_EncodeUTF8_surrogateescape() to _Py_EncodeUTF8Ex().
* Replace _Py_EncodeCurrentLocale() with _Py_EncodeLocaleEx().
* Ignore the UTF-8 mode to encode/decode localeconv(), strerror()
  and time zone name.
* Remove PyUnicode_DecodeLocale(), PyUnicode_DecodeLocaleAndSize()
  and PyUnicode_EncodeLocale() now ignore the UTF-8 mode: always use
  the "current" locale.
* Remove _PyUnicode_DecodeCurrentLocale(),
  _PyUnicode_DecodeCurrentLocaleAndSize() and
  _PyUnicode_EncodeCurrentLocale().

7 years agobpo-26330: Update shutil.disk_usage() documentation (GH-5184)
Cheryl Sabella [Mon, 15 Jan 2018 05:08:37 +0000 (00:08 -0500)]
bpo-26330: Update shutil.disk_usage() documentation (GH-5184)

Clarify that on Windows, path must be a directory.
On Unix, path can be a file or a directory.

7 years agobpo-15221: Update os.path.is*() documentation (GH-5185)
Cheryl Sabella [Mon, 15 Jan 2018 04:57:51 +0000 (23:57 -0500)]
bpo-15221: Update os.path.is*() documentation (GH-5185)

`os.path.is*()` can return False if the file can't be accessed.
The behaviour is documented in details in `os.path.exists()`.
Link to `os.path.exists()` from `os.path.is*()`.

7 years agobpo-29476: Simplify set_add_entry() (#5175)
Raymond Hettinger [Sun, 14 Jan 2018 18:20:13 +0000 (10:20 -0800)]
bpo-29476: Simplify set_add_entry() (#5175)

7 years agoAdd itertools recipe for directly finding the n-th combination (#5161)
Raymond Hettinger [Sat, 13 Jan 2018 18:35:40 +0000 (10:35 -0800)]
Add itertools recipe for directly finding the n-th combination (#5161)