From: Éric Araujo <merwok@netwok.org> Date: Sun, 31 Jul 2011 16:33:00 +0000 (+0200) Subject: Merge fixes for #9860, #11104/#8688 and #12331 from 3.2 X-Git-Tag: v3.3.0a1~1788^2~2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ad548b8534645ebb7590eb557c04d86814bde203;p=python Merge fixes for #9860, #11104/#8688 and #12331 from 3.2 --- ad548b8534645ebb7590eb557c04d86814bde203 diff --cc Misc/ACKS index 3124099936,d345e54ef9..2b6104fe65 --- a/Misc/ACKS +++ b/Misc/ACKS @@@ -226,8 -214,8 +226,9 @@@ John DeGoo Ned Deily Vincent Delft Arnaud Delobelle +Konrad Delong Erik Demaine + John Dennis Roger Dev Raghuram Devarakonda Caleb Deveraux diff --cc Misc/NEWS index 34fdd55df9,e1060f6e41..3f5aa290f7 --- a/Misc/NEWS +++ b/Misc/NEWS @@@ -249,140 -194,47 +249,143 @@@ Core and Builtin Library ------- -- Issue #12467: warnings: fix a race condition if a warning is emitted at - shutdown, if globals()['__file__'] is None. ++- Issues #11104, #8688: Fix the behavior of distutils' sdist command with ++ manually-maintained MANIFEST files. + -Tests ------ +- Issue #11281: smtplib.STMP gets source_address parameter, which adds the + ability to bind to specific source address on a machine with multiple + interfaces. Patch by Paulo Scardine. -- Skip network tests when getaddrinfo() returns EAI_AGAIN, meaning a temporary - failure in name resolution. +- Issue #12464: tempfile.TemporaryDirectory.cleanup() should not follow + symlinks: fix it. Patch by Petri Lehtinen. -- Avoid failing in test_urllibnet.test_bad_address when some overzealous - DNS service (e.g. OpenDNS) resolves a non-existent domain name. The test - is now skipped instead. +- Issue #8887: "pydoc somebuiltin.somemethod" (or help('somebuiltin.somemethod') + in Python code) now finds the doc of the method. +- Issue #10968: Remove indirection in threading. The public names (Thread, + Condition, etc.) used to be factory functions returning instances of hidden + classes (_Thread, _Condition, etc.), because (if Guido recalls correctly) this + code pre-dates the ability to subclass extension types. It is now possible to + inherit from Thread and other classes, without having to import the private + underscored names like multiprocessing did. -What's New in Python 3.2.1 release candidate 2? -=============================================== +- Issue #9723: Add shlex.quote functions, to escape filenames and command + lines. -*Release date: 03-Jul-2011* +- Issue #12603: Fix pydoc.synopsis() on files with non-negative st_mtime. -Core and Builtins ------------------ +- Issue #12514: Use try/finally to assure the timeit module restores garbage + collections when it is done. + +- Issue #12607: In subprocess, fix issue where if stdin, stdout or stderr is + given as a low fd, it gets overwritten. -- Issue #12291: You can now load multiple marshalled objects from a stream, with - other data interleaved between marshalled objects. +- Issue #12590: IDLE editor window now always displays the first line + when opening a long file. With Tk 8.5, the first line was hidden. -- Issue #12084: os.stat on Windows now works properly with relative symbolic - links when called from any directory. +- Issue #12576: Fix urlopen behavior on sites which do not send (or obfuscates) + Connection:close header. -- Issue #1195: my_fgets() now always clears errors before calling fgets(). Fix - the following case: sys.stdin.read() stopped with CTRL+d (end of file), - raw_input() interrupted by CTRL+c. +- Issue #12102: Document that buffered files must be flushed before being used + with mmap. Patch by Steffen Daode Nurpmeso. -- Issue #9670: Increase the default stack size for secondary threads on Mac OS X - and FreeBSD to reduce the chances of a crash instead of a "maximum recursion - depth" RuntimeError exception (patch by Ronald Oussoren). +- Issue #12560: Build libpython.so on OpenBSD. Patch by Stefan Sperling. -Library -------- +- Issue #1813: Fix codec lookup under Turkish locales. + +- Issue #12591: Improve support of "universal newlines" in the subprocess + module: the piped streams can now be properly read from or written to. + +- Issue #12591: Allow io.TextIOWrapper to work with raw IO objects (without + a read1() method), and add a *write_through* parameter to mandate + unbuffered writes. + +- Issue #10883: Fix socket leaks in urllib.request when using FTP. + +- Issue #12592: Make Python build on OpenBSD 5 (and future major releases). + +- Issue #12372: POSIX semaphores are broken on AIX: don't use them. + +- Issue #12551: Provide a get_channel_binding() method on SSL sockets so as + to get channel binding data for the current SSL session (only the + "tls-unique" channel binding is implemented). This allows the implementation + of certain authentication mechanisms such as SCRAM-SHA-1-PLUS. Patch by + Jacek Konieczny. + +- Issue #665194: email.utils now has format_datetime and parsedate_to_datetime + functions, allowing for round tripping of RFC2822 format dates. + +- Issue #12571: Add a plat-linux3 directory mirroring the plat-linux2 + directory, so that "import DLFCN" and other similar imports work on + Linux 3.0. + +- Issue #7484: smtplib no longer puts <> around addresses in VRFY and EXPN + commands; they aren't required and in fact postfix doesn't support that form. + +- Issue #12273: Remove ast.__version__. AST changes can be accounted for by + checking sys.version_info or sys._mercurial. + +- Silence spurious "broken pipe" tracebacks when shutting down a + ProcessPoolExecutor. + +- Fix potential resource leaks in concurrent.futures.ProcessPoolExecutor + by joining all queues and processes when shutdown() is called. + +- Issue #11603: Fix a crash when __str__ is rebound as __repr__. Patch by + Andreas Stührk. + +- Issue #11321: Fix a crash with multiple imports of the _pickle module when + embedding Python. Patch by Andreas Stührk. + +- Issue #6755: Add get_wch() method to curses.window class. Patch by Iñigo + Serna. + +- Add cgi.closelog() function to close the log file. + +- Issue #12502: asyncore: fix polling loop with AF_UNIX sockets. + +- Issue #4376: ctypes now supports nested structures in a endian different than + the parent structure. Patch by Vlad Riscutia. + +- Raise ValueError when attempting to set the _CHUNK_SIZE attribute of a + TextIOWrapper to a huge value, not TypeError. + +- Issue #12504: Close file handles in a timely manner in packaging.database. + This fixes a bug with the remove (uninstall) feature on Windows. + +- Issues #12169 and #10510: Factor out code used by various packaging commands + to make HTTP POST requests, and make sure it uses CRLF. + +- Issue #12016: Multibyte CJK decoders now resynchronize faster. They only + ignore the first byte of an invalid byte sequence. For example, + b'\xff\n'.decode('gb2312', 'replace') gives '\ufffd\n' instead of '\ufffd'. + +- Issue #12459: time.sleep() now raises a ValueError if the sleep length is + negative, instead of an infinite sleep on Windows or raising an IOError on + Linux for example, to have the same behaviour on all platforms. + +- Issue #12451: pydoc: html_getfile() now uses tokenize.open() to support + Python scripts using a encoding different than UTF-8 (read the coding cookie + of the script). + +- Issue #12493: subprocess: Popen.communicate() now also handles EINTR errors + if the process has only one pipe. + +- Issue #12467: warnings: fix a race condition if a warning is emitted at + shutdown, if globals()['__file__'] is None. + +- Issue #12451: pydoc: importfile() now opens the Python script in binary mode, + instead of text mode using the locale encoding, to avoid encoding issues. + +- Issue #12451: runpy: run_path() now opens the Python script in binary mode, + instead of text mode using the locale encoding, to support other encodings + than UTF-8 (scripts using the coding cookie). + +- Issue #12451: xml.dom.pulldom: parse() now opens files in binary mode instead + of the text mode (using the locale encoding) to avoid encoding issues. - Issue #12147: Adjust the new-in-3.2 smtplib.send_message method for better - conformance to the RFCs: correctly handle Sender and Resent headers. + conformance to the RFCs: correctly handle Sender and Resent- headers. - Issue #12352: Fix a deadlock in multiprocessing.Heap when a block is freed by the garbage collector while the Heap lock is held. @@@ -1144,91 -798,6 +1147,94 @@@ Extension Module Tests ----- ++- Issue #12331: The test suite for lib2to3 can now run from an installed ++ Python. ++ +- Issue #12626: In regrtest, allow to filter tests using a glob filter + with the ``-m`` (or ``--match``) option. This works with all test cases + using the unittest module. This is useful with long test suites + such as test_io or test_subprocess. + +- Issue #12624: It is now possible to fail after the first failure when + running in verbose mode (``-v`` or ``-W``), by using the ``--failfast`` + (or ``-G``) option to regrtest. This is useful with long test suites + such as test_io or test_subprocess. + +- Issue #12587: Correct faulty test file and reference in test_tokenize. + (Patch by Robert Xiao) + +- Issue #12573: Add resource checks for dangling Thread and Process objects. + +- Issue #12549: Correct test_platform to not fail when OS X returns 'x86_64' + as the processor type on some Mac systems. + +- Skip network tests when getaddrinfo() returns EAI_AGAIN, meaning a temporary + failure in name resolution. + +- Avoid failing in test_robotparser when mueblesmoraleda.com is flaky and + an overzealous DNS service (e.g. OpenDNS) redirects to a placeholder + Web site. + +- Avoid failing in test_urllibnet.test_bad_address when some overzealous + DNS service (e.g. OpenDNS) resolves a non-existent domain name. The test + is now skipped instead. + +- Issue #12440: When testing whether some bits in SSLContext.options can be + reset, check the version of the OpenSSL headers Python was compiled against, + rather than the runtime version of the OpenSSL library. + +- Issue #11512: Add a test suite for the cgitb module. Patch by Robbie Clemons. + +- Issue #12497: Install test/data to prevent failures of the various codecmaps + tests. + +- Issue #12496: Install test/capath directory to prevent test_connect_capath + testcase failure in test_ssl. + +- Issue #12469: Run wakeup and pending signal tests in a subprocess to run the + test in a fresh process with only one thread and to not change signal + handling of the parent process. + +- Issue #8716: Avoid crashes caused by Aqua Tk on OSX when attempting to run + test_tk or test_ttk_guionly under a username that is not currently logged + in to the console windowserver (as may be the case under buildbot or ssh). + +- Issue #12407: Explicitly skip test_capi.EmbeddingTest under Windows. + +- Issue #12400: regrtest -W doesn't rerun the tests twice anymore, but captures + the output and displays it on failure instead. regrtest -v doesn't print the + error twice anymore if there is only one error. + +- Issue #12141: Install copies of template C module file so that + test_build_ext of test_distutils and test_command_build_ext of + test_packaging are no longer silently skipped when + run outside of a build directory. + +- Issue #8746: Add additional tests for os.chflags() and os.lchflags(). + Patch by Garrett Cooper. + +- Issue #10736: Fix test_ttk test_widgets failures with Cocoa Tk 8.5.9 + 2.8 + on Mac OS X. (Patch by Ronald Oussoren) + +- Issue #12057: Add tests for ISO 2022 codecs (iso2022_jp, iso2022_jp_2, + iso2022_kr). + +- Issue #12180: Fixed a few remaining errors in test_packaging when no + threading. + +- Issue #12120, #12119: skip a test in packaging and distutils + if sys.dont_write_bytecode is set to True. + +- Issue #12096: Fix a race condition in test_threading.test_waitfor(). Patch + written by Charles-François Natali. + +- Issue #11614: import __hello__ prints "Hello World!". Patch written by + Andreas Stührk. + +- Issue #5723: Improve json tests to be executed with and without accelerations. + +- Issue #12041: Make test_wait3 more robust. + - Issue #11873: Change regex in test_compileall to fix occasional failures when when the randomly generated temporary path happened to match the regex. diff --cc Tools/scripts/patchcheck.py index 8b0d3cdb1e,9eb367defe..b01f77cec6 --- a/Tools/scripts/patchcheck.py +++ b/Tools/scripts/patchcheck.py @@@ -36,8 -40,12 +40,8 @@@ def status(message, modal=False, info=N info=lambda x: n_files_str(len(x))) def changed_files(): """Get the list of changed or added files from the VCS.""" - if os.path.isdir('.hg'): + if os.path.isdir(os.path.join(SRCDIR, '.hg')): - vcs = 'hg' cmd = 'hg status --added --modified --no-status' - elif os.path.isdir('.svn'): - vcs = 'svn' - cmd = 'svn status --quiet --non-interactive --ignore-externals' else: sys.exit('need a checkout to get modified files') @@@ -64,8 -77,10 +68,8 @@@ def report_modified_files(file_paths) def normalize_whitespace(file_paths): """Make sure that the whitespace for .py files have been normalized.""" reindent.makebackup = False # No need to create backups. - fixed = [] - for path in (x for x in file_paths if x.endswith('.py')): - if reindent.check(os.path.join(SRCDIR, path)): - fixed.append(path) + fixed = [path for path in file_paths if path.endswith('.py') and - reindent.check(path)] ++ reindent.check(os.path.join(SRCDIR, path))] return fixed