Ammar Askar [Sat, 27 Jan 2018 20:53:56 +0000 (15:53 -0500)]
Fix changed file detection on Travis (GH-3129)
Travis when merging changes from a pull request onto the target branch
does not perform a rebase, instead it does a simple merge which causes
the PR commits to retain their commit dates. This means that the commit
log can potentially look like:
PR merge <-- HEAD
normal master commit <- master
more commits from normal workflow
PR commit 1
another master commit
PR commit 2
Performing a git diff from PR commit 2 to master will accidentally
include files that should not be there.
Closes python/core-workflow#14
Yury Selivanov [Sat, 27 Jan 2018 20:52:52 +0000 (15:52 -0500)]
bpo-32622: Enforce sendfile fallback policy for FALLBACK transports (#5364)
Andrew Svetlov [Sat, 27 Jan 2018 19:22:47 +0000 (21:22 +0200)]
bpo-32622: Implement loop.sendfile() (#5271)
Yury Selivanov [Sat, 27 Jan 2018 18:46:46 +0000 (13:46 -0500)]
bpo-32630: Use contextvars in decimal (GH-5278)
Yury Selivanov [Sat, 27 Jan 2018 18:24:20 +0000 (13:24 -0500)]
bpo-32436: Use PyThreadState_GET() in all hot paths (GH-5363)
INADA Naoki [Sat, 27 Jan 2018 17:07:09 +0000 (02:07 +0900)]
Fix wrong assert in unicodeobject (GH-5340)
Pablo Galindo [Sat, 27 Jan 2018 16:16:37 +0000 (16:16 +0000)]
bpo-31368: Expose preadv and pwritev in the os module (#5239)
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.
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>
Mads Jensen [Sat, 27 Jan 2018 12:34:28 +0000 (13:34 +0100)]
bpo-31853: Replaced socket.method calls with super() in SSLSocket. (#4048)
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>
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>
INADA Naoki [Sat, 27 Jan 2018 05:06:21 +0000 (14:06 +0900)]
bpo-32677: Add .isascii() to str, bytes and bytearray (GH-5342)
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.
INADA Naoki [Sat, 27 Jan 2018 01:10:06 +0000 (10:10 +0900)]
bpo-32678: inspect: Import ast lazily (GH-5344)
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>
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.
Yury Selivanov [Fri, 26 Jan 2018 20:24:24 +0000 (15:24 -0500)]
bpo-32670: Enforce PEP 479. (#5327)
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.
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.
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().
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.
Yury Selivanov [Fri, 26 Jan 2018 06:30:57 +0000 (01:30 -0500)]
bpo-32662: Try making test_asyncio.test_server more reliable (#5338)
mwidjaja [Fri, 26 Jan 2018 04:49:56 +0000 (20:49 -0800)]
bpo-29237: Create enum for pstats sorting options (GH-5103)
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.
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.
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)
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().
Ilya Kulakov [Thu, 25 Jan 2018 20:51:18 +0000 (12:51 -0800)]
bpo-29302: Implement contextlib.AsyncExitStack. (#4790)
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.
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.
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)
Paul Ganssle [Thu, 25 Jan 2018 13:58:07 +0000 (08:58 -0500)]
Cleanup dangling reference in get_timezone_utc_capi (#5317)
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.
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()
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.
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)
Andrew Svetlov [Wed, 24 Jan 2018 22:30:30 +0000 (00:30 +0200)]
bpo-32391: Implement StreamWriter.wait_closed() (#5281)
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
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.
Barry Warsaw [Wed, 24 Jan 2018 20:36:21 +0000 (15:36 -0500)]
bpo-32248 - Implement `ResourceReader` and `get_resource_reader()` for zipimport (#5248)
Victor Stinner [Wed, 24 Jan 2018 20:15:14 +0000 (21:15 +0100)]
bpo-32636: Fix two bugs in test_asyncio (#5302)
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)
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
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()
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
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.
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.
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)
bpo-32360: unittest.util: Use Counter instead of custom count function (GH-4994)
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)
Bo Bayles [Wed, 24 Jan 2018 01:11:44 +0000 (19:11 -0600)]
bpo-32502: Discard 64-bit (and other invalid) hardware addresses (#5254)
Yury Selivanov [Tue, 23 Jan 2018 21:26:07 +0000 (16:26 -0500)]
bpo-32436: Fix potential NULL dereference (#5286)
Yury Selivanov [Tue, 23 Jan 2018 20:10:03 +0000 (15:10 -0500)]
bpo-32296: Make get_running_loop() another 4-5x faster (#5277)
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.
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.
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.
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.
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)
Yury Selivanov [Tue, 23 Jan 2018 07:00:03 +0000 (02:00 -0500)]
bpo-32436: Remove a redundant assert (#5275)
Yury Selivanov [Tue, 23 Jan 2018 06:59:50 +0000 (01:59 -0500)]
Add myself as hamt/context (PEP 567) code owner (#5276)
Yury Selivanov [Tue, 23 Jan 2018 00:11:18 +0000 (19:11 -0500)]
bpo-32436: Implement PEP 567 (#5027)
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.
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.
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)
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_
INADA Naoki [Mon, 22 Jan 2018 07:45:31 +0000 (16:45 +0900)]
urllib.request: Remove unused import (GH-5268)
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.
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)
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
Serhiy Storchaka [Sat, 20 Jan 2018 14:42:44 +0000 (16:42 +0200)]
bpo-32503: Avoid creating too small frames in pickles. (#5127)
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>
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>
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.
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.
INADA Naoki [Sat, 20 Jan 2018 00:54:42 +0000 (09:54 +0900)]
bpo-32596: Lazy import concurrent.futures.process and thread (GH-5241)
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.
Andrew Svetlov [Fri, 19 Jan 2018 18:04:29 +0000 (20:04 +0200)]
bpo-32410: Make SendfileNotAvailableError exception public (#5243)
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)
Raymond Hettinger [Thu, 18 Jan 2018 21:23:27 +0000 (13:23 -0800)]
Removed unnecesssary bit inversion which doesn't improve dispersion statistics (#5235)
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.
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.
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.."
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.
Victor Stinner [Wed, 17 Jan 2018 22:08:18 +0000 (23:08 +0100)]
bpo-32226: Fix memory leak in generic_alias_dealloc() (#5212)
Victor Stinner [Wed, 17 Jan 2018 15:35:45 +0000 (16:35 +0100)]
pythoninfo: add time.time and datetime.datetime.now (#5214)
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.
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.
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>
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.
Andrew Svetlov [Tue, 16 Jan 2018 17:59:34 +0000 (19:59 +0200)]
bpo-32410: Implement loop.sock_sendfile() (#4976)
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.
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)
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.
Raymond Hettinger [Tue, 16 Jan 2018 09:30:26 +0000 (01:30 -0800)]
bpo-26163: Frozenset hash improvement (#5194)
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().
Barry Warsaw [Mon, 15 Jan 2018 23:07:11 +0000 (15:07 -0800)]
Implement the get_resource_reader() API for file system imports (#5168)
Yury Selivanov [Mon, 15 Jan 2018 22:56:32 +0000 (17:56 -0500)]
Make asyncio tests run when there's no SSL module (#5196)
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.
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().