summaryrefslogtreecommitdiff
path: root/Modules
Commit message (Collapse)AuthorAgeFilesLines
* bpo-33824, bpo-32030: Fix pymain_read_conf() (GH-7712)Victor Stinner2018-06-161-0/+1
| | | | | | Fix "LC_ALL=C python3.7 -V": reset properly the command line parser when the encoding changes after reading the Python configuration. Fix pymain_read_conf(): use memset(0) to reset properly cmdline.
* bpo-29456: Fix bugs in unicodedata.normalize: u1176, u11a7 and u11c3 (GH-1958)Wonsup Yoon2018-06-151-3/+7
| | | | | Hangul composition check boundaries are wrong for the second character ([0x1161, 0x1176) instead of [0x1161, 0x1176]) and third character ((0x11A7, 0x11C3) instead of [0x11A7, 0x11C3]).
* bpo-33615: Re-enable subinterpreter tests. (#7552)Eric Snow2018-06-131-37/+45
| | | All the subinterpreter tests were disabled in gh-7513. This commit re-enables them, but leaves one bad test disabled. The test is partly causing problems because it makes assumptions about the availability of a high-level interpreters module (see PEP 554). So I'm disabling the test until such a high-level module is available.
* bpo-33671: efficient zero-copy for shutil.copy* functions (Linux, OSX and ↵Giampaolo Rodola2018-06-123-2/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Win) (#7160) * have shutil.copyfileobj use sendfile() if possible * refactoring: use ctx manager * add test with non-regular file obj * emulate case where file size can't be determined * reference _copyfileobj_sendfile directly * add test for offset() at certain position * add test for empty file * add test for non regular file dst * small refactoring * leave copyfileobj() alone in order to not introduce any incompatibility * minor refactoring * remove old test * update docstring * update docstring; rename exception class * detect platforms which only support file to socket zero copy * don't run test on platforms where file-to-file zero copy is not supported * use tempfiles * reset verbosity * add test for smaller chunks * add big file size test * add comment * update doc * update whatsnew doc * update doc * catch Exception * remove unused import * add test case for error on second sendfile() call * turn docstring into comment * add one more test * update comment * add Misc/NEWS entry * get rid of COPY_BUFSIZE; it belongs to another PR * update doc * expose posix._fcopyfile() for OSX * merge from linux branch * merge from linux branch * expose fcopyfile * arg clinic for the win implementation * convert path type to path_t * expose CopyFileW * fix windows tests * release GIL * minor refactoring * update doc * update comment * update docstrings * rename functions * rename test classes * update doc * update doc * update docstrings and comments * avoid do import nt|posix modules if unnecessary * set nt|posix modules to None if not available * micro speedup * update description * add doc note * use better wording in doc * rename function using 'fastcopy' prefix instead of 'zerocopy' * use :ref: in rst doc * change wording in doc * add test to make sure sendfile() doesn't get called aymore in case it doesn't support file to file copies * move CopyFileW in _winapi and actually expose CopyFileExW instead * fix line endings * add tests for mode bits * add docstring * remove test file mode class; let's keep it for later when Istart addressing OSX fcopyfile() specific copies * update doc to reflect new changes * update doc * adjust tests on win * fix argument clinic error * update doc * OSX: expose copyfile(3) instead of fcopyfile(3); also expose flags arg to python * osx / copyfile: use path_t instead of char * do not set dst name in the OSError exception in order to remain consistent with platforms which cannot do that (e.g. linux) * add same file test * add test for same file * have osx copyfile() pre-emptively check if src and dst are the same, otherwise it will return immedialtey and src file content gets deleted * turn PermissionError into appropriate SameFileError * expose ERROR_SHARING_VIOLATION in order to raise more appropriate SameFileError * honour follow_symlinks arg when using CopyFileEx * update Misc/NEWS * expose CreateDirectoryEx mock * change C type * CreateDirectoryExW actual implementation * provide specific makedirs() implementation for win * fix typo * skeleton for SetNamedSecurityInfo * get security info for src path * finally set security attrs * add unit tests * mimick os.makedirs() behavior and raise if dst dir exists * set 2 paths for OSError object * set 2 paths for OSError object * expand windows test * in case of exception on os.sendfile() set filename and filename2 exception attributes * set 2 filenames (src, dst) for OSError in case copyfile() fails on OSX * update doc * do not use CreateDirectoryEx() in copytree() if source dir is a symlink (breaks test_copytree_symlink_dir); instead just create a plain dir and remain consistent with POSIX implementation * use bytearray() and readinto() * use memoryview() with bytearray() * refactoring + introduce a new _fastcopy_binfileobj() fun * remove CopyFileEx and other C wrappers * remove code related to CopyFileEx * Recognize binary files in copyfileobj() ...and use fastest _fastcopy_binfileobj() when possible * set 1MB copy bufsize on win; also add a global _COPY_BUFSIZE variable * use ctx manager for memoryview() * update doc * remove outdated doc * remove last CopyFileEx remnants * OSX - use fcopyfile(3) instead of copyfile(3) ...as an extra safety measure: in case src/dst are "exotic" files (non regular or living on a network fs etc.) we better fail on open() instead of copyfile(3) as we're not quite sure what's gonna happen in that case. * update doc
* bpo-31432: Revert unrelated code changes to _ssl.c and test_ssl (GH-7650)Ned Deily2018-06-111-2/+2
|
* bpo-31432: Clarify ssl CERT_NONE/OPTIONAL/REQUIRED docs. (GH-3530)Christian Heimes2018-06-111-2/+2
| | | | | | | | | The documentation for CERT_NONE, CERT_OPTIONAL, and CERT_REQUIRED were misleading and partly wrong. It fails to explain that OpenSSL behaves differently in client and server mode. Also OpenSSL does validate the cert chain everytime. With SSL_VERIFY_NONE a validation error is not fatal in client mode and does not request a client cert in server mode. Also discourage people from using CERT_OPTIONAL in client mode.
* bpo-33812: Corrected astimezone for naive datetimes. (GH-7578)Alexander Belopolsky2018-06-101-0/+11
| | | | | | | | | | | | | | | | | | | | A datetime object d is aware if d.tzinfo is not None and d.tzinfo.utcoffset(d) does not return None. If d.tzinfo is None, or if d.tzinfo is not None but d.tzinfo.utcoffset(d) returns None, d is naive. This commit ensures that instances with non-None d.tzinfo, but d.tzinfo.utcoffset(d) returning None are treated as naive. In addition, C acceleration code will raise TypeError if d.tzinfo.utcoffset(d) returns an object with the type other than timedelta. * Updated the documentation. Assume that the term "naive" is defined elsewhere and remove the not entirely correct clarification. Thanks, Tim.
* Remove unneeded PyErr_Occurred() check in os_lseek_impl() (GH-7557)Zackery Spytz2018-06-101-3/+0
| | | | | This call became unneeded after the posix module was converted to the Argument Clinic in 2f93635d342a500053e97c9c7c30f1eaf11fc3ac and should have been removed as part of that change.
* bpo-33770: improve base64 exception message for encoded inputs of invalid ↵Tal Einat2018-06-101-1/+12
| | | | length (#7416)
* update to Unicode 11.0.0 (closes bpo-33778) (GH-7439)Benjamin Peterson2018-06-063-25332/+27293
| | | Also, standardize indentation of generated tables.
* bpo-33781: audioop: enhance rounding double as int (GH-7447)Victor Stinner2018-06-061-11/+17
| | | | | | Move the floor() call into fbound() to call floor() on a double rather than an int. The change should enhance the rounding. Document also (int)double rounding mode.
* bpo-33767: Fix improper use of SystemError by mmap.mmap objects (GH-7381)Zackery Spytz2018-06-051-20/+2
| | | | Raise TypeError instead of SystemError for unsupported operations.
* bpo-33615: Re-enable a subinterpreter test. (gh-7251)Eric Snow2018-06-011-0/+1
| | | For bpo-32604 I added extra subinterpreter-related tests (see #6914), which caused a few buildbots to crash. This patch fixes the crash by ensuring that refcounts in channels are handled properly.
* bpo-33724: Use the right format code for int64_t in subinterpreters code. ↵Eric Snow2018-06-011-32/+33
| | | | | | (gh-7330)
* bpo-30654: Do not reset SIGINT handler to SIG_DFL in finisignal (GH-7146)pkerling2018-06-011-12/+2
|
* bpo-33706: Fix pymain_parse_cmdline_impl() (GH-7283)Victor Stinner2018-05-311-1/+1
| | | | | | | | | | Fix a crash in Python initialization when parsing the command line options. Fix memcpy() size parameter: previously, we read one wchar_t after the end of _PyOS_optarg. Moreover, don't copy the trailingg NUL character: we write it manually anyway. Thanks Christoph Gohlke for the bug report and the fix!
* bpo-33677: Fix signatures of tp_clear handlers for AST and deque. (GH-7196)Serhiy Storchaka2018-05-311-3/+4
|
* bpo-33622: Add checks for exceptions leaks in the garbage collector. (GH-7126)Serhiy Storchaka2018-05-291-4/+23
| | | | | * Failure in adding to gc.garbage is no longer fatal. * An exception in tp_clear() no longer lead to crash (though tp_clear() should not leave exceptions).
* bpo-32610: Fix asyncio.all_tasks() to return only pending tasks. (GH-7174)Yury Selivanov2018-05-281-2/+2
|
* bpo-33623: Fix possible SIGSGV when asyncio.Future is created in __del__ (#7080)Yury Selivanov2018-05-281-1/+7
|
* bpo-33644: Fix signatures of tp_finalize handlers in testing code. (GH-7111)Serhiy Storchaka2018-05-262-4/+2
|
* bpo-32493: Fix uuid.uuid1() on FreeBSD. (GH-7099)Serhiy Storchaka2018-05-251-1/+8
| | | Use uuid_enc_be() if available to encode UUID to bytes as big endian.
* bpo-33622: Fix issues with handling errors in the GC. (GH-7078)Serhiy Storchaka2018-05-241-8/+11
| | | | | | | * Fixed a leak when the GC fails to add an object with __del__ into the gc.garbage list. * PyGC_Collect() can now be called when an exception is set and preserves it. * Fixed an undefined behavior with comparing a dead pointer with NULL.
* bpo-33583: Add note in PyObject_GC_Resize() doc (GH-7021)INADA Naoki2018-05-211-0/+1
|
* bpo-33584: Fix several minor bugs in asyncio. (GH-7003)Serhiy Storchaka2018-05-201-15/+21
| | | | | | | | | | | | Fix the following bugs in the C implementation: * get_future_loop() silenced all exceptions raised when look up the get_loop attribute, not just an AttributeError. * enter_task() silenced all exceptions raised when look up the current task, not just a KeyError. * repr() was called for a borrowed link in enter_task() and task_step_impl(). * str() was used instead of repr() in formatting one error message (in Python implementation too). * There where few reference leaks in error cases.
* Fix typo in error message when decoding PYTHONPATH. (GH-6981)Carl Meyer2018-05-191-1/+1
|
* Fix Windows build of Python for latest WinSDK. (GH-6874)Carl Meyer2018-05-171-1/+1
|
* bpo-32604: Implement force-closing channels. (gh-6937)Eric Snow2018-05-171-21/+136
| | | This will make it easier to clean up channels (e.g. when used in tests).
* bpo-13631: Fix the order of initialization for readline libedit on macOS. ↵Zvezdan Petkovic2018-05-171-1/+3
| | | | | | (GH-6915) The editline emulation needs to be initialized *after* the name is defined. This fixes the long open issue.
* Replace _PyGC_REFS macros with higher level macros (GH-6852)INADA Naoki2018-05-171-2/+1
| | | | Only gcmodule.c uses _PyGC_REFS* macros now. This makes easy to read GC code.
* bpo-32604: Improve subinterpreter tests. (#6914)Eric Snow2018-05-161-73/+177
| | | Add more tests for subinterpreters. This patch also fixes a few small defects in the channel implementation.
* Remove an unneeded call into OpenSSL (GH-6887)Alex Gaynor2018-05-161-1/+0
|
* bpo-33454: Fix arguments parsing in _xxsubinterpreters.channel_close(). ↵Serhiy Storchaka2018-05-161-7/+3
| | | | (GH-6747)
* bpo-32257: Add ssl.OP_NO_RENEGOTIATION (GH-5904)Christian Heimes2018-05-151-0/+4
| | | | | | | | The ssl module now contains OP_NO_RENEGOTIATION constant, available with OpenSSL 1.1.0h or 1.1.1. Note, OpenSSL 1.1.0h hasn't been released yet. Signed-off-by: Christian Heimes <christian@python.org>
* bpo-16865: Support arrays >=2GB in ctypes. (GH-3006)Segev Finer2018-05-151-8/+8
|
* Fixed an unused variable warning introduced in GH-6800 (GH-6816)Alex Gaynor2018-05-141-1/+0
|
* Remove `ifdef` check for an OpenSSL version (0.9.6) we don't support (GH-6800)Alex Gaynor2018-05-141-5/+2
|
* bpo-20171: Convert the _curses and _curses_panel modules to Argument Clinic. ↵Serhiy Storchaka2018-05-104-1270/+6543
| | | | (GH-4251)
* bpo-21983: Fix a crash in ctypes.cast() when passed a ctypes structured data ↵Oren Milman2018-05-091-1/+1
| | | | type (GH-3859)
* bpo-33441: Make the sigset_t converter available in other modules. (GH-6720)Serhiy Storchaka2018-05-084-105/+138
| | | | | | | | | * Expose the sigset_t converter via private API _Py_Sigset_Converter(). * Use Argument Clinic for parsing sigset_t in signalmodule.c. * Raise ValueError instead OverflowError for integers out of the C long range. Based on patch by Pablo Galindo Salgado.
* bpo-33332: Add signal.valid_signals() (GH-6581)Antoine Pitrou2018-05-042-6/+89
|
* bpo-20104: Improve error handling and fix a reference leak in ↵Serhiy Storchaka2018-05-012-124/+125
| | | | os.posix_spawn(). (#6332)
* bpo-27645, sqlite: Fix integer overflow on sleep (#6594)Victor Stinner2018-04-301-4/+20
| | | | | | | | | Use the _PyTime_t type and round away from zero (ROUND_UP, _PyTime_ROUND_TIMEOUT) the sleep duration, when converting a Python object to seconds and then to milliseconds. Raise an OverflowError in case of overflow. Previously the (int)double conversion rounded towards zero (ROUND_DOWN).
* bpo-33012: Fix invalid function cast warnings with gcc 8 for METH_NOARGS. ↵Siddhesh Poyarekar2018-04-2925-220/+216
| | | | | | | | | (GH-6030) METH_NOARGS functions need only a single argument but they are cast into a PyCFunction, which takes two arguments. This triggers an invalid function cast warning in gcc8 due to the argument mismatch. Fix this by adding a dummy unused argument.
* bpo-33383: Fix crash in get() of the dbm.ndbm database object. (#6630)Serhiy Storchaka2018-04-292-5/+5
|
* bpo-33329: Fix multiprocessing regression on newer glibcs (GH-6575)Antoine Pitrou2018-04-231-6/+8
| | | | | | | Starting with glibc 2.27.9000-xxx, sigaddset() can return EINVAL for some reserved signal numbers between 1 and NSIG. The `range(1, NSIG)` idiom is commonly used to select all signals for blocking with `pthread_sigmask`. So we ignore the sigaddset() return value until we expose sigfillset() to provide a better idiom.
* bpo-32232: by default, Setup modules are no longer built with ↵xdegaye2018-04-212-20/+20
| | | | | | | | | -DPy_BUILD_CORE (GH-6489) Setup modules are no longer built with -DPy_BUILD_CORE by default, as using that flag may now require including additional internal-only header files. Instead, only the modules that specifically need it use that setting.
* bpo-33308: Fix a crash in the parser module when convert an ST object. (#6519)Serhiy Storchaka2018-04-191-3/+3
| | | | Converting with line_info=False and col_info=True crashed before.
* bpo-33253: Fix xxsubtype.bench() to accept correct str signature. (GH-6439)Devon R2018-04-101-1/+1
|
* bpo-23403: Bump pickle.DEFAULT_PROTOCOL to 4 (#6355)Łukasz Langa2018-04-032-11/+17
| | | This makes performance better and produces shorter pickles. This change is backwards compatible up to the oldest currently supported version of Python (3.4).