102575 Commits

Author SHA1 Message Date
Pablo Galindo
7cd2543416
bpo-34890: Make iscoroutinefunction, isgeneratorfunction and isasyncgenfunction work with functools.partial (GH-9903)
inspect.isfunction() processes both inspect.isfunction(func) and
inspect.isfunction(partial(func, arg)) correctly but some other functions in the
inspect module (iscoroutinefunction, isgeneratorfunction and isasyncgenfunction)
lack this functionality. This commits adds a new check in the mentioned functions
in the inspect module so they can work correctly with arbitrarily nested partial
functions.
2018-10-26 12:19:14 +01:00
Stéphane Wirtel
e483f02423 bpo-35044, doc: Use the :exc: role for the exceptions (GH-10037) 2018-10-26 12:52:11 +02:00
Serhiy Storchaka
ddb961d2ab
bpo-35054: Add more index entries for symbols. (GH-10064) 2018-10-26 09:00:49 +03:00
Victor Stinner
3ec9af75f6
bpo-9263: _Py_NegativeRefcount() use _PyObject_AssertFailed() (GH-10109)
_Py_NegativeRefcount() now uses _PyObject_AssertFailed() to dump the
object to help debugging.
2018-10-26 02:12:34 +02:00
Victor Stinner
c89a932714
bpo-35053: Define _PyTraceMalloc_NewReference in object.h (GH-10107)
_PyTraceMalloc_NewReference() is now called by _Py_NewReference(), so
move its definition to object.h. Moreover, define it even if
Py_LIMITED_API is defined, since _Py_NewReference() is also exposed
even if Py_LIMITED_API is defined.
2018-10-26 00:01:56 +02:00
Max Bélanger
6c83d9f4a7 bpo-35022: unittest.mock.MagicMock now also supports __fspath__ (GH-9960)
The MagicMock class supports many magic methods, but not __fspath__. To ease
testing with modules such as os.path, this function is now supported by default.
2018-10-25 23:48:58 +02:00
Stéphane Wirtel
1770d1c512 bpo-35038: AttributeError: 'frame' object has no attribute 'f_restricted'. (GH-10098)
https://bugs.python.org/issue35038
2018-10-25 14:13:45 -07:00
Stéphane Wirtel
9e95eb0d60 Fix grammar in using/unix build instruction docs (GH-10009) 2018-10-25 10:32:30 -05:00
Victor Stinner
626bff8568
bpo-9263: Dump Python object on GC assertion failure (GH-10062)
Changes:

* Add _PyObject_AssertFailed() function.
* Add _PyObject_ASSERT() and _PyObject_ASSERT_WITH_MSG() macros.
* gc_decref(): replace assert() with _PyObject_ASSERT_WITH_MSG() to
  dump the faulty object if the assertion fails.

_PyObject_AssertFailed() calls:

* _PyMem_DumpTraceback(): try to log the traceback where the object
  memory has been allocated if tracemalloc is enabled.
* _PyObject_Dump(): log repr(obj).
* Py_FatalError(): log the current Python traceback.

_PyObject_AssertFailed() uses _PyObject_IsFreed() heuristic to check
if the object memory has been freed by a debug hook on Python memory
allocators.

Initial patch written by David Malcolm.

Co-Authored-By: David Malcolm <dmalcolm@redhat.com>
2018-10-25 17:31:10 +02:00
Victor Stinner
18618e652c
bpo-35059: Add Py_STATIC_INLINE() macro (GH-10093)
* Add Py_STATIC_INLINE() macro to declare a "static inline" function.
  If the compiler supports it, try to always inline the function even if no
  optimization level was specified.
* Modify pydtrace.h to use Py_STATIC_INLINE() when WITH_DTRACE is
  not defined.
* Add an unit test on Py_DECREF() to make sure that
  _Py_NegativeRefcount() reports the correct filename.
2018-10-25 17:28:11 +02:00
Tim Graham
d03b775781 bpo-31047: Fix ntpath.abspath to trim ending separator (GH-10082)
Regression in b0bf51b32240369ccb736dc32ff82bb96f375402.
2018-10-25 11:26:37 -04:00
madman-bob
e25d5fc18e bpo-32321: Add pure Python fallback for functools.reduce (GH-8548) 2018-10-25 16:02:10 +02:00
Victor Stinner
6279c1c500
bpo-35053: Add Include/tracemalloc.h (GH-10091)
* Modify object.h to ensure that pymem.h is included,
  to get _Py_tracemalloc_config variable.
* Move _PyTraceMalloc_XXX() functions to tracemalloc.h,
  they need PyObject type. Break circular dependency between pymem.h
  and object.h.
2018-10-25 15:54:13 +02:00
Victor Stinner
9e00e80e21
bpo-35053: Enhance tracemalloc to trace free lists (GH-10063)
tracemalloc now tries to update the traceback when an object is
reused from a "free list" (optimization for faster object creation,
used by the builtin list type for example).

Changes:

* Add _PyTraceMalloc_NewReference() function which tries to update
  the Python traceback of a Python object.
* _Py_NewReference() now calls _PyTraceMalloc_NewReference().
* Add an unit test.
2018-10-25 13:31:16 +02:00
Quentin
d7c3e5f0e8 importlib: Fix typo in SourceLoader.path_stats docstring (GH-10052) 2018-10-25 13:04:28 +02:00
serge-sans-paille
5ad36f9b21 bpo-28015: Support LTO build with clang (GH-9908)
.o generated by clang in LTO mode actually are LLVM bitcode files, which
leads to a few errors during configure/build step:

- add lto flags to the BASECFLAGS instead of CFLAGS, as CFLAGS are used
  to build autoconf test case, and some are not compatible with clang LTO
  (they assume binary in the .o, not bitcode)
- force llvm-ar instead of ar, as ar is not aware of .o files generated
  by clang -flto
2018-10-25 01:54:22 +02:00
Ned Batchelder
890423f796 configparser doc: Properly label ConfigParser attributes (GH-9930) 2018-10-25 01:47:01 +02:00
orlnub123
78401f7156 importlib doc: Fix approximated import_module() code (GH-9945)
The spec gets stored on modules with the __spec__ attribute, not spec.
2018-10-25 01:32:26 +02:00
TilmanK
e80e77a484 bpo-35027, distutils doc: Correct note on setup.py change in Python 3.7 (GH-10032) 2018-10-25 00:50:25 +02:00
Srinivas Thatiparthy (శ్రీనివాస్ తాటిపర్తి)
9f270a2423 turtledemo/penrose.py: remove unused clock() calls (GH-10033)
Actually time calculations were remove in commit 891a1f8.
2018-10-25 00:43:39 +02:00
Mariatta
9f43fbbd9d Use f-strings in asyncio-task code examples (GH-10035)
Replace str.format with f-strings in the code examples of asyncio-task documentation.
2018-10-25 00:37:12 +02:00
jdemeyer
057f4078b0 bpo-32797: improve documentation of linecache.getline (GH-9540) 2018-10-24 14:44:41 +02:00
Tal Einat
dfba1f67e7 bpo-33899: Mention tokenize behavior change in What's New (GH-10073) 2018-10-24 00:20:05 -07:00
Serhiy Storchaka
c46db9232f
bpo-30863: Rewrite PyUnicode_AsWideChar() and PyUnicode_AsWideCharString(). (GH-2599)
They no longer cache the wchar_t* representation of string objects.
2018-10-23 22:58:24 +03:00
Serhiy Storchaka
df13df41a2
bpo-34794: Fix a leak in Tkinter. (GH-10025)
Based on the investigation by Xiang Zhang.
2018-10-23 22:40:54 +03:00
Zackery Spytz
9f3ed3e213 Fix error handling bugs in _elementtree.c. (GH-10060)
References could leak, NULL could be dereferenced, and the Expat parser could
be double freed when some errors raised.
2018-10-23 22:28:06 +03:00
Victor Stinner
82af0b63b0
bpo-9263: _PyObject_Dump() detects freed memory (GH-10061)
_PyObject_Dump() now uses an heuristic to check if the object memory
has been freed: log "<freed object>" in that case.

The heuristic rely on the debug hooks on Python memory allocators
which fills the memory with DEADBYTE (0xDB) when memory is
deallocated. Use PYTHONMALLOC=debug to always enable these debug
hooks.
2018-10-23 17:39:40 +02:00
Ned Deily
96f2c73954
Add macos-team as a code owner (GH-10045) 2018-10-23 09:37:02 -04:00
Jeremy Kloth
fa5329424f bpo-34980: P/Invoke QueryFullProcessImageName to get process names (GH-9901) 2018-10-23 07:41:48 -04:00
Zsolt Cserna
4f399be0e7 bpo-34260, shutil: fix copy2 and copystat documentation (GH-8523)
Fix the documentation of copy2, as it does not copy file ownership (user and
group), only mode, mtime, atime and flags.

The original text was confusing to developers as it suggested that this
command is the same as 'cp -p', but according to cp(1), '-p' copies file
ownership as well.

Clarify which metadata is copied by shutil.copystat in its docstring.
2018-10-23 12:09:50 +02:00
matthewbelisle-wf
b79b5c0949 bpo-35028: cgi: Fix max_num_fields off by one error (GH-9973)
https://bugs.python.org/issue35028
2018-10-23 01:14:35 -07:00
Josh Snyder
b7d62050e7 bpo-35046: do only one system call per line (logging.StreamHandler) (GH-10042) 2018-10-23 07:48:38 +01:00
Alexey Izbyshev
3b0047d8e9 bpo-34482: test datetime classes' handling of non-UTF-8-encodable strings (GH-8878) 2018-10-23 09:36:08 +03:00
Andrei Petre
83a07652e0 bpo-34748: link to :ref:partial-objects in functools.partial doc. (GH-9809) 2018-10-23 14:11:20 +08:00
Paul Ganssle
3df85404d4 bpo-34454: Clean up datetime.fromisoformat surrogate handling (GH-8959)
* Use _PyUnicode_Copy in sanitize_isoformat_str

* Use repr in fromisoformat error message

This reverses commit 67b74a98b2 per Serhiy Storchaka's suggestion:

     I suggested to use %R in the error message because including the raw
     string can be confusing in the case of empty string, or string
     containing trailing whitespaces, invisible or unprintable characters.

We agree that it is better to change both the C and pure Python versions
to use repr.

* Retain non-sanitized dtstr for error printing

This does not create an extra string, it just holds on to a reference to
the original input string for purposes of creating the error message.

* PEP 7 fixes to from_isoformat

* Separate handling of Unicode and other errors

In the initial implementation, errors other than encoding errors would
both raise an error indicating an invalid format, which would not be
true for errors like MemoryError.

* Drop needs_decref from _sanitize_isoformat_str

Instead _sanitize_isoformat_str returns a new reference, even to the
original string.
2018-10-22 18:32:52 +02:00
Eric Lippert
5a95ba29da Fix issue 34551 - remove redundant store (#9009)
The assignment of i/2 to nk is redundant because on this code path, nk is already the size of the dictionary, and i is already twice the size of the dictionary. I've replaced the store with an assertion that i/2 is nk.
2018-10-22 16:52:46 +01:00
Tal Einat
2447773573
bpo-29843: raise AttributeError if given negative _length_ (GH-10029)
Raise ValueError OverflowError in case of a negative
_length_ in a ctypes.Array subclass.  Also raise TypeError
instead of AttributeError for non-integer _length_.


Co-authored-by: Oren Milman <orenmn@gmail.com>
2018-10-22 18:33:10 +03:00
Xtreak
121eb1694c bpo-34081: Fix wrong example link that was linking to distutils (GH-8248) 2018-10-21 16:54:52 +02:00
Xtreak
c3f52a59ce bpo-35036: Remove empty log line in the suspicious.py tool (GH-10024)
Previous to commit ee171a2 the logline was working because of self.info() (now
deprecated) defaults to an empty message.
2018-10-21 13:57:32 +01:00
Serhiy Storchaka
2c2044e789
bpo-34984: Improve error messages for bytes and bytearray constructors. (GH-9874) 2018-10-21 15:29:12 +03:00
Serhiy Storchaka
914f9a078f
bpo-34973: Fix crash in bytes constructor. (GH-9841)
Constructing bytes from mutating list could cause a crash.
2018-10-21 15:25:53 +03:00
Sanyam Khurana
a323cdcb33 bpo-8525: help() on a type now shows builtin subclasses (GH-5066)
For builtin types with builtin subclasses, help() on the type now shows up
to 4 of the subclasses. This partially replaces the exception hierarchy
information previously displayed in Python 2.7.
2018-10-21 17:22:02 +10:00
Serhiy Storchaka
d31e7730cd
bpo-35029: Replace the SyntaxWarning exception with a SyntaxError. (GH-9999)
If SyntaxWarning was raised as an exception, it will be replaced
with a SyntaxError for better error reporting.
2018-10-21 10:09:39 +03:00
Nick Coghlan
2f73ed6913
Update codeowners to match experts list change (#10022) 2018-10-21 14:22:15 +10:00
Max Bélanger
94451182cc closes bpo-35025: Properly guard the CLOCK_GETTIME et al macros in timemodule.c. (GH-9961)
Guard the `CLOCK_GETTIME` et al macros in `timemodule` based on the availability of the parent functions
2018-10-20 17:07:54 -07:00
Benjamin Peterson
12d0ff1230
Remove ">>>" from testsetup. (GH-10017)
Fixes doc build breakage from 890a4b92933be8e7c554222d99ef829c88fa8637.
2018-10-20 16:51:05 -07:00
Xtreak
890a4b9293 bpo-35020: Link to sorting examples from list.sort() (GH-9931) 2018-10-20 14:39:03 -07:00
Senthil Kumaran
eeab510bb7
bpo-34576 - Fix the formatting for security considerations in http.server.rst (#10005)
* bpo-34576 - Fix the formatting for security considerations in http.server.rst

* Address review comment.
2018-10-20 11:32:07 -07:00
Zachary Ware
0bd4826d2d
Encrypt Zulip webhook address (GH-10010)
This should reduce false failure reports to the Zulip 'core/test runs'
stream from Travis failures on private forks.
2018-10-20 11:35:21 -05:00
Stéphane Wirtel
d262250d07 bpo-35032: Remove inaccessible videos from faq/Windows (GH-10004)
https://bugs.python.org/issue35032
2018-10-20 08:27:03 -07:00