https://github.com/python/cpython

sort by:
Revision Author Date Message Commit Date
9561d7f Update NEWS, docs, and patchlevel for 3.7.0b1 30 January 2018, 23:48:26 UTC
7fdefac bpo-32726: Build macOS 10.9+ installer with private copy of Tcl/Tk 8.6 30 January 2018, 22:29:53 UTC
1e17d4a compare with difflib not diff(1) (GH-5450) 30 January 2018, 17:03:12 UTC
8c9bb72 bpo-32726: macOS installer and framework enhancements and changes for 3.7.0 (GH-5448) This issue covers various changes for the macOS installers provided via python.org for 3.7.0. - Provide a provisional new installer variant for macOS 10.9 and later systems with 64-bit (x86_64) architecture only. Apple has made it known that future versions of macOS will only fully support 64-bit executables and some other third-party software suppliers have chosen 10.9 as their oldest supported system. - Support **Tcl/Tk 8.6** with the 10.9 installer variant. - Upgrade **OpenSSL** to 1.1.0g and **SQLite** to 3.22.0. - The compiler name used for the interpreter build and for modules built with **Distutils / pip** is now _gcc_ rather than _gcc-4.2_. And extension module builds will no longer try to force use of an old SDK if present. 30 January 2018, 12:42:14 UTC
b8d9032 bpo-28914: Fix compilation of select on Android (#5447) EPOLL_CLOEXEC is not defined on Android. Co-Authored-By: Wataru Matsumoto <sxsns243@gmail.com> 30 January 2018, 11:18:54 UTC
763f094 bpo-28440: Don't add /Library/Python/3.x/site-packages to sys.path (#5445) No longer add /Library/Python/3.x/site-packages, the Apple-supplied system Python site-packages directory, to sys.path for macOS framework builds in case Apple ships a version of Python 3. A similar change was made earlier to Python 2.7 where it was found that the coupling between the system Python and a user-installed framework Python often caused confusion or pip install failures. 30 January 2018, 10:14:09 UTC
67adb31 bpo-32724: Fix references to commands in Doc/pdb.rst (GH-5444) Some commands are specified in the documentation, but there is no direct references. 30 January 2018, 09:34:33 UTC
066df4f bpo-22908: Add seek and tell functionality to ZipExtFile (GH-4966) This allows for nested zip files, tar files within zip files, zip files within tar files, etc. Contributed by: John Jolly 30 January 2018, 08:51:35 UTC
2e0ecde bpo-28134: Ignore proto in unknown socket test (GH-5435) Band-aid for macOS: Some platforms seem to ignore unknown protocols. Signed-off-by: Christian Heimes <christian@python.org> 30 January 2018, 07:55:46 UTC
dd42cb7 bpo-31961: subprocess now accepts path-like args (GH-4329) Allow os.PathLike args in subprocess APIs. 30 January 2018, 07:27:28 UTC
14e976e closes bpo-30117: fix lib2to3 ParserIdempotency test (GH-1242) Fix two (in my opinion) spurious failure conditions in the lib2to3.tests.test_parser.TestParserIdempotency test_parser test. Use the same encoding found in the initial file to write a temp file for a diff. This retains the BOM if the encoding was initially utf-8-sig. If the file cannot be parsed using the normal grammar, try again with no print statement which should succeed for valid files using future print_function For case (1), the driver was correctly handling a BOM in a utf-8 file, but then the test was not writing a comparison file using 'utf-8-sig' to diff against, so the BOM got removed. I don't think that is the fault of the parser, and lib2to3 will retain the BOM. For case (2), lib2to3 pre-detects the use of from __future__ import print_function or allows the user to force this interpretation with a -p flag, and then selects a different grammar with the print statement removed. That makes the test cases unfair to this test as the driver itself doesn't know which grammar to use. As a minimal fix, the test will try using a grammar with the print statement, and if that fails fall back on a grammar without it. A more thorough handling of the idempotency test would to be to parse all files using both grammars and ignore if one of the two failed but otherwise check both. I didn't think this was necessary but can change. 30 January 2018, 07:13:03 UTC
ce0f33d bpo-32102 Add "capture_output=True" to subprocess.run (GH-5149) Add "capture_output=True" option to subprocess.run, this is equivalent to setting stdout=PIPE, stderr=PIPE but is much more readable. 30 January 2018, 06:40:39 UTC
9544180 closes bpo-32721: do not fail test_hashlib if _md5 isn't available (GH-5441) 30 January 2018, 06:14:17 UTC
3d86e48 bpo-32681: Fix an uninitialized variable in the C implementation of os.dup2 (GH-5346) See https://bugs.python.org/issue32441 for where this was introduced. 30 January 2018, 06:04:36 UTC
ce237c7 bpo-21417: Add compresslevel= to the zipfile module (GH-5385) This allows the compression level to be specified when writing zipfiles (for the entire file *and* overridden on a per-file basis). Contributed by Bo Bayles 30 January 2018, 05:54:07 UTC
f4d644f bpo-25942: make subprocess more graceful on ^C (GH-5026) Do not allow receiving a SIGINT to cause the subprocess module to trigger an immediate SIGKILL of the child process. SIGINT is normally sent to all child processes by the OS at the same time already as was the established normal behavior in 2.7 and 3.2. This behavior change was introduced during the fix to https://bugs.python.org/issue12494 and is generally surprising to command line tool users who expect other tools launched in child processes to get their own SIGINT and do their own cleanup. In Python 3.3-3.6 subprocess.call and subprocess.run would immediately SIGKILL the child process upon receiving a SIGINT (which raises a KeyboardInterrupt). We now give the child a small amount of time to exit gracefully before resorting to a SIGKILL. This is also the case for subprocess.Popen.__exit__ which would previously block indefinitely waiting for the child to die. This was hidden from many users by virtue of subprocess.call and subprocess.run sending the signal immediately. Behavior change: subprocess.Popen.__exit__ will not block indefinitely when the exiting exception is a KeyboardInterrupt. This is done for user friendliness as people expect their ^C to actually happen. This could cause occasional orphaned Popen objects when not using `call` or `run` with a child process that hasn't exited. Refactoring involved: The Popen.wait method deals with the KeyboardInterrupt second chance, existing platform specific internals have been renamed to _wait(). Also fixes comment typos. 30 January 2018, 05:27:39 UTC
83e64c8 bpo-32604: NULL-terminate kwlist in channel_drop_interpreter(). (gh-5437) 30 January 2018, 04:04:15 UTC
9424dcb bpo-32701: Clarify the quotetabs flag in quopri documentation (GH-5401) 30 January 2018, 03:36:06 UTC
77526f0 replace dynamic import with 'exec' with importlib.import_module (#5433) 30 January 2018, 02:03:01 UTC
7f8bfc9 bpo-32604: Expose the subinterpreters C-API in a "private" stdlib module. (gh-1748) The module is primarily intended for internal use in the test suite. Building the module under Windows will come in a follow-up PR. 30 January 2018, 01:23:44 UTC
332cd5e bpo-32550. Remove the STORE_ANNOTATION bytecode. (GH-5181) 30 January 2018, 00:41:04 UTC
b6e43af bpo-28134: Auto-detect socket values from file descriptor (#1349) Fix socket(fileno=fd) by auto-detecting the socket's family, type, and proto from the file descriptor. The auto-detection can be overruled by passing in family, type, and proto explicitly. Without the fix, all socket except for TCP/IP over IPv4 are basically broken: >>> s = socket.create_connection(('www.python.org', 443)) >>> s <socket.socket fd=3, family=AddressFamily.AF_INET6, type=SocketKind.SOCK_STREAM, proto=6, laddr=('2003:58:bc4a:3b00:56ee:75ff:fe47:ca7b', 59730, 0, 0), raddr=('2a04:4e42:1b::223', 443, 0, 0)> >>> socket.socket(fileno=s.fileno()) <socket.socket fd=3, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('2003:58:bc4a:3b00::%2550471192', 59730, 0, 2550471192), raddr=('2a04:4e42:1b:0:700c:e70b:ff7f:0%2550471192', 443, 0, 2550471192)> Signed-off-by: Christian Heimes <christian@python.org> 29 January 2018, 21:37:58 UTC
72a0d21 bpo-31356: Add context manager to temporarily disable GC (GH-4224) 29 January 2018, 20:37:09 UTC
0cd6bca bpo-20104: Fix leaks and errors in new os.posix_spawn (GH-5418) * Fix memory leaks and error handling in posix spawn * Improve error handling when destroying the file_actions object * Py_DECREF the result of PySequence_Fast on error * Handle uninitialized pid * Use OSError if file actions fails to initialize * Move _file_actions to outer scope to avoid undefined behaviour * Remove HAVE_POSIX_SPAWN define in Modules/posixmodule.c * Unshadow exception and clean error message 29 January 2018, 20:34:42 UTC
c65ef77 rename _imp initialization function to follow conventions (#5432) When the C imp module became _imp in 6f44d66bc491bad5b8d897a68da68e009e27829d, the initialization function should have been renamed from PyInit_imp to PyInit__imp. 29 January 2018, 19:33:57 UTC
2a2270d bpo-32703: Fix coroutine resource warning in case where there's an error (GH-5410) The commit removes one unnecessary "if" clause in genobject.c. That "if" clause was masking un-awaited coroutines warnings just to make writing unittests more convenient. 29 January 2018, 19:31:47 UTC
b647d70 bpo-32707: Fix warnings in hamt.c (#5430) 29 January 2018, 18:31:37 UTC
aa218d1 bpo-27931: Fix email address header parsing error (#5329) Correctly handle addresses whose username is an empty quoted string. 29 January 2018, 18:07:44 UTC
e6d3421 bpo-25988: Deprecate exposing collections.abc in collections GH-5414 29 January 2018, 16:27:49 UTC
4f4ef0a Add a test for pdb until command in coroutine (#5427) 29 January 2018, 14:17:45 UTC
66e5742 bpo-28414: ssl module idna test (#5395) Add test cases for IDNA 2003 and 2008 host names. IDNA 2003 internationalized host names are working since bpo-31399 has landed. IDNA 2008 deviations are still broken and will be fixed in another patch. Signed-off-by: Christian Heimes <christian@python.org> 29 January 2018, 13:25:13 UTC
892d66e bpo-31429: Define TLS cipher suite on build time (#3532) Until now Python used a hard coded white list of default TLS cipher suites. The old approach has multiple downsides. OpenSSL's default selection was completely overruled. Python did neither benefit from new cipher suites (ChaCha20, TLS 1.3 suites) nor blacklisted cipher suites. For example we used to re-enable 3DES. Python now defaults to OpenSSL DEFAULT cipher suite selection and black lists all unwanted ciphers. Downstream vendors can override the default cipher list with --with-ssl-default-suites. Signed-off-by: Christian Heimes <christian@python.org> 29 January 2018, 13:10:18 UTC
d951157 bpo-20891: Reenable test_embed.test_bpo20891() (GH-5420) 29 January 2018, 13:04:44 UTC
8017b80 bpo-28685: Fix compiler warning (GH-5423) 29 January 2018, 12:47:06 UTC
51500f3 bpo-32706: Skip test_ftplib.test_check_hostname() (#5422) This test is unstable and currently prevents to make any new change since the test always fails on Travis CI. Skip the test to get more time to fix it. 29 January 2018, 12:21:34 UTC
db8189b bpo-31233, bpo-31151: Document socketserver changes (#5417) socketserver.ForkingMixIn.server_close() and socketserver.ThreadingMixIn.server_close() now waits until all child processes and non-daemonic threads complete. 29 January 2018, 11:10:22 UTC
2914bb3 bpo-20891: Py_Initialize() now creates the GIL (#4700) The GIL is no longer created "on demand" to fix a race condition when PyGILState_Ensure() is called in a non-Python thread. 29 January 2018, 10:57:45 UTC
8997f9c bpo-32705: Current Android does not have posix_spawn (#5413) 29 January 2018, 09:50:35 UTC
2a3260b Fix minor markup typo (#5407) 29 January 2018, 08:30:48 UTC
95e2147 bpo-32591: silence deprecation warnings in test_coroutine (GH-5412) 29 January 2018, 07:34:26 UTC
1e5b25b bpo-23749: Make start-tls tests more stable on win7 buildbot (GH-5409) To mitigate the situation when the buildbot is under load and is unable to send/receive data fast enough: * reduce the size of the payload * set a generous timeout for socket ops 29 January 2018, 05:25:05 UTC
07627e9 bpo-32251: Fix docs (#5408) 29 January 2018, 04:51:08 UTC
9ee1bf9 bpo-32650: Add an asyncgen pdb test (#5406) 29 January 2018, 03:43:46 UTC
997478e bpo-32688: Make why the line is commented out clear (GH-5405) 29 January 2018, 03:32:12 UTC
1e34da4 bpo-28685: Optimize sorted() list.sort() with type-specialized comparisons (#582) 29 January 2018, 03:03:23 UTC
6c6ddf9 bpo-20104: Expose `posix_spawn` in the os module (GH-5109) Add os.posix_spawn to wrap the low level POSIX API of the same name. Contributed by Pablo Galindo. 29 January 2018, 01:56:10 UTC
f5b04a3 Document the error return of PyLong_As* APIs. (#5396) Document the error return of PyLong_As* APIs. A frequent Python C API usage error is neglecting to check the return value and/or PyErr_Occurred(). 29 January 2018, 01:48:31 UTC
c7ab581 bpo-32650 Add support for async generators and more test for coroutines in pdb (#5403) 29 January 2018, 01:31:00 UTC
4687702 bpo-32650: Add native coroutine support to bdb when stepping over line (GH-5400) 29 January 2018, 00:25:05 UTC
7c99e93 Fix trivial typo in test_dataclasses.py. (GH-5398) 29 January 2018, 00:18:55 UTC
15ea3a6 bpo-32699: Improves doc for .pth files in presense of a ._pth file (#5399) 28 January 2018, 23:34:09 UTC
f11b460 bpo-32373: Add socket.getblocking() method. (#4926) 28 January 2018, 22:27:38 UTC
631fd38 bpo-32251: Implement asyncio.BufferedProtocol. (#4755) 28 January 2018, 21:30:26 UTC
0ceb717 Revert "bpo-32221: makeipaddr(): remove interface part + speedup (GH-4724)" (#5394) This reverts commit 47c0b1f7d4115e6f15e6776c1f91d28e7d96fe0c. 28 January 2018, 21:08:32 UTC
f36ba12 bpo-32697: Definition order of kwonly params is now guaranteed preserved. (#5391) Definition order of kwonly params is now guaranteed preserved. 28 January 2018, 19:13:09 UTC
bec2372 bpo-32327: Revert loop.run_in_executor behaviour: return a Future. (#5392) I've run some tests on 3.7 asyncio and it appears that too many things assume that run_in_executor returns a Future. 28 January 2018, 19:09:40 UTC
a4d0001 bpo-32690: Preserve order of locals() (#5379) 28 January 2018, 17:40:24 UTC
059f58c bpo-32228: Reset raw_pos after unwinding the raw stream (#4858) Ensure that ``truncate()`` preserves the file position (as reported by ``tell()``) after writes longer than the buffer size. 28 January 2018, 16:00:09 UTC
79db11c Fix PyTrace_RETURN documentation (GH-5384) It will be triggered when propagating an exception. 28 January 2018, 14:54:42 UTC
4d02966 Add example for PEP 557. (GH-5383) 28 January 2018, 14:25:45 UTC
f0a95f2 bpo-32660: Solaris should support constants like termios' FIONREAD (#5328) 28 January 2018, 13:00:48 UTC
6c51d51 bpo-32659: Solaris "stat" should support "st_fstype" (#5307) * bpo-32659: Solaris "stat" should support "st_fstype" * Add 'versionadded' 28 January 2018, 13:00:08 UTC
43c0f1a bpo-32685: Improve suggestion for print statement (GH-5375) Better account for single-line compound statements and semi-colon separated statements when suggesting Py3 replacements for Py2 print statements. Initial patch by Nitish Chandra. 28 January 2018, 10:56:02 UTC
255f7a2 bpo-32649: Add C API docs for per-opcode tracing & profiling (GH-5360) Updating the C API docs was missed when the per-opcode tracing & profiling support was initially added. 28 January 2018, 09:53:38 UTC
9ed0aee bpo-32687: Fix wrong meaning of args for PyTrace_LINE/CALL in documentation (#5361) 28 January 2018, 07:38:21 UTC
a278ad2 bpo-30306: Add missing NEWS entry (GH-5374) 28 January 2018, 05:14:30 UTC
fcf8b4c bpo-32206: Update pdb usage to include new module option (GH-5111) 28 January 2018, 04:58:47 UTC
dd0e087 bpo-30306: release arguments of contextmanager (GH-1500) The arguments to a generator function which is declared as a contextmanager are stored inside the context manager, and thus are kept alive, even when it is used as a regular context manager, and not as a function decorator (where it needs the original arguments to recreate the generator on each call). This is a possible unnecessary memory leak, so this changes contextmanager.__enter__ to release the saved arguments, as that method being called means that particular CM instance isn't going to need to recreate the underlying generator. Patch by Martin Teichmann. 28 January 2018, 04:17:46 UTC
c4b1248 Pep 557 What's New (GH-5371) Add PEP 557 Data CLasses to What's New. 28 January 2018, 01:30:37 UTC
bea5706 bpo-32677: Optimize str.isascii() (GH-5356) 28 January 2018, 00:59:12 UTC
ea8fc52 bpo-32513: Make it easier to override dunders in dataclasses. (GH-5366) Class authors no longer need to specify repr=False if they want to provide a custom __repr__ for dataclasses. The same thing applies for the other dunder methods that the dataclass decorator adds. If dataclass finds that a dunder methods is defined in the class, it will not overwrite it. 28 January 2018, 00:07:40 UTC
2a2247c bpo-32622: Normalize ENOTCONN to ConnectionError on macOS (GH-5369) On mac, sendfile throws ENOTCONN on a repeated sendfile call if the connection is closed. Normalize it to behave like other systems. 27 January 2018, 22:22:01 UTC
47c0b1f bpo-32221: makeipaddr(): remove interface part + speedup (GH-4724) 27 January 2018, 22:20:50 UTC
ee72ac0 bpo-32622: Fix AbstractEventLoop.sendfile signature in documentation. (GH-5368) 27 January 2018, 22:11:10 UTC
0f54e00 Fix tests if Python compiled without SSL (#5367) 27 January 2018, 22:00:37 UTC
b2ec361 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 27 January 2018, 20:53:56 UTC
b1a6ac4 bpo-32622: Enforce sendfile fallback policy for FALLBACK transports (#5364) 27 January 2018, 20:52:52 UTC
7c68407 bpo-32622: Implement loop.sendfile() (#5271) 27 January 2018, 19:22:47 UTC
f13f12d bpo-32630: Use contextvars in decimal (GH-5278) 27 January 2018, 18:46:46 UTC
bc4123b bpo-32436: Use PyThreadState_GET() in all hot paths (GH-5363) 27 January 2018, 18:24:20 UTC
7cc95f5 Fix wrong assert in unicodeobject (GH-5340) 27 January 2018, 17:07:09 UTC
4defba3 bpo-31368: Expose preadv and pwritev in the os module (#5239) 27 January 2018, 16:16:37 UTC
60da99b 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. 27 January 2018, 15:04:47 UTC
61d478c 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> 27 January 2018, 14:51:38 UTC
746cc75 bpo-31853: Replaced socket.method calls with super() in SSLSocket. (#4048) 27 January 2018, 12:34:28 UTC
d0e31b9 bpo-32454: socket closefd (#5048) Add close(fd) function to the socket module Signed-off-by: Christian Heimes <christian@python.org> 27 January 2018, 08:54:13 UTC
2f050c7 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> 27 January 2018, 08:53:43 UTC
a49ac99 bpo-32677: Add .isascii() to str, bytes and bytearray (GH-5342) 27 January 2018, 05:06:21 UTC
85527cf 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. 27 January 2018, 02:40:52 UTC
37420de bpo-32678: inspect: Import ast lazily (GH-5344) 27 January 2018, 01:10:06 UTC
29a7df7 bpo-32521: nis libnsl (#5190) The nismodule is now compatible with new libnsl and headers location Signed-off-by: Christian Heimes <christian@python.org> 26 January 2018, 22:28:46 UTC
226e500 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. 26 January 2018, 22:24:52 UTC
43c47fe bpo-32670: Enforce PEP 479. (#5327) 26 January 2018, 20:24:24 UTC
dba976b 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. 26 January 2018, 19:28:31 UTC
95e4d58 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. 26 January 2018, 16:20:18 UTC
d7773d9 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(). 26 January 2018, 15:46:01 UTC
e76daeb bpo-32571: Fix reading uninitialized memory (GH-5332) Reported by Coverity Scan. 26 January 2018, 07:22:51 UTC
4112c5b bpo-32662: Try making test_asyncio.test_server more reliable (#5338) 26 January 2018, 06:30:57 UTC
863b1e4 bpo-29237: Create enum for pstats sorting options (GH-5103) 26 January 2018, 04:49:56 UTC
4666ec5 bpo-32596: Make lazy-load portable (GH-5316) Global variables should not used as import target. Use temporary variable instead. 26 January 2018, 01:53:31 UTC
back to top