| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
| |
When parsing things like `def f(*): pass` the old parser used to output `SyntaxError: named arguments must follow bare *`, which the new parser wasn't able to do.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
* Rename PyConfig.use_peg to _use_peg_parser
* Document PyConfig._use_peg_parser and mark it a deprecated
* Mark -X oldparser option and PYTHONOLDPARSER env var as deprecated
in the documentation.
* Add use_old_parser() and skip_if_new_parser() to test.support
* Remove sys.flags.use_peg: use_old_parser() uses
_testinternalcapi.get_configs() instead.
* Enhance test_embed tests
* subprocess._args_from_interpreter_flags() copies -X oldparser
|
|
|
|
| |
Co-authored-by: Guido van Rossum <guido@python.org>
Co-authored-by: Lysandros Nikolaou <lisandrosnik@gmail.com>
|
|
|
|
|
| |
(GH-19619)
Co-authored-by: Guido van Rossum <gvanrossum@gmail.com>
|
|
|
|
|
| |
Move get_recursion_depth() function from _testcapi to
_testinternalcapi to avoid accessing PyThreadState attributes
directly in _testcapi.
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Py_FatalError() function is replaced with a macro which logs
automatically the name of the current function, unless the
Py_LIMITED_API macro is defined.
Changes:
* Add _Py_FatalErrorFunc() function.
* Remove the function name from the message of Py_FatalError() calls
which included the function name.
* Update tests.
|
|
|
|
| |
* Always set the text attribute.
* Correct the offset attribute for non-ascii sources.
|
|
|
|
| |
Fix assert statement misbehavior if AssertionError is shadowed.
|
| |
|
|
|
|
|
|
| |
* Copy test_exceptions.test_unraisable() to
test_sys.UnraisableHookTest().
* Use catch_unraisable_exception() in test_coroutines,
test_exceptions, test_generators.
|
|
|
|
|
|
|
|
| |
(GH-10633)
The lineno and col_offset attributes of AST nodes for list comprehensions,
generator expressions and tuples are now point to the opening parenthesis or
square brace. For tuples without parenthesis they point to the position
of the first item.
|
|
|
|
|
|
| |
Also point to start of tokens in parsing errors.
Fixes bpo-34683
|
| |
|
| |
|
| |
|
| |
|
|
|
| |
Move exception state information from frame objects to coroutine (generator/thread) object where it belongs.
|
|
|
|
| |
Subclasses such as IndentError and TabError should not have this message
applied.
|
|
|
|
|
|
|
| |
`PyArg_ParseTuple*` (#916)
Also changed format specifier for function name from "%s" to "%.200s"
and exception messages should start with lowercase letter.
|
|
|
| |
attributes.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
test_unraisable() of test_exceptions expects that PyErr_WriteUnraisable(method)
fails on repr(method).
Before the previous change (7b8df4a5d81d), slot_tp_finalize() called
PyErr_WriteUnraisable() with a PyMethodObject. In this case, repr(method) calls
repr(self) which is BrokenRepr.__repr__() and the calls raises a new exception.
After the previous change, slot_tp_finalize() uses an unbound method: repr() is
called on a regular __del__() method which doesn't call repr(self). repr()
doesn't fail anymore.
PyErr_WriteUnraisable() doesn't call __repr__() anymore, so remove BrokenRepr
unit test.
|
| |
|
|\
| |
| |
| | |
invalid keyword args.
|
|/
|
|
| |
invalid keyword args.
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This restores details lost in revision 097f4fda61a4 (since Python 3.3,
related to the new OSError subclasses). Further additions:
* Markup for attributes and constructor signature
* Explain "winerror" and "filename2"
* Extend test to check for filename2 defaulting to None
* Clarify that the constructor can return a subclass
I have intentionally left out any details of allowing more than five
arguments, or how the "args" attribute is set for four or more arguments.
These details seem to be dependent on the Python version and platform.
|
| | |
|
|/ |
|
| |
|
| |
|
|
|
|
| |
Patch by Martin Panter.
|
| |
|
| |
|
|
|
|
| |
initialized (closes #21134)
|
| |
|
|
|
|
|
|
| |
now register both filenames in the exception on failure.
This required adding new C API functions allowing OSError exceptions
to reference two filenames instead of one.
|
|\ |
|
| | |
|
| | |
|
|\ \
| |/
| |
| |
| | |
cases when multibyte characters are in line (before "^"). This still not
works correctly with wide East Asian characters.
|
| |
| |
| |
| |
| | |
cases when multibyte characters are in line (before "^"). This still not
works correctly with wide East Asian characters.
|
| | |
|
| |
| |
| |
| | |
ModuleNotFoundError.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
ImportError.
The exception is raised by import when a module could not be found.
Technically this is defined as no viable loader could be found for the
specified module. This includes ``from ... import`` statements so that
the module usage is consistent for all situations where import
couldn't find what was requested.
This should allow for the common idiom of::
try:
import something
except ImportError:
pass
to be updated to using ModuleNotFoundError and not accidentally mask
ImportError messages that should propagate (e.g. issues with a
loader).
This work was driven by the fact that the ``from ... import``
statement needed to be able to tell the difference between an
ImportError that simply couldn't find a module (and thus silence the
exception so that ceval can raise it) and an ImportError that
represented an actual problem.
|
| | |
|
| | |
|
|\ \
| |/ |
|