Brett Cannon
b1611e2772
Issue #15767 : Introduce ModuleNotFoundError, a subclass of
...
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.
2013-06-12 16:59:46 -04:00
Victor Stinner
d3dfd0e433
Fix a compilater warning on Windows 64-bit
...
idx variable is used for a tuple indexn so use Py_ssize_t (not int).
2013-05-16 23:48:01 +02:00
Benjamin Peterson
e8e14591eb
rather than passing locals to the class body, just execute the class body in the proper environment
2013-05-16 14:37:25 -05:00
Benjamin Peterson
159ae41da6
when an argument is a cell, set the local copy to NULL (see #17927 )
2013-05-12 18:16:06 -05:00
Guido van Rossum
6832c81d5d
#17927 : Keep frame from referencing cell-ified arguments.
2013-05-10 08:47:42 -07:00
Antoine Pitrou
8408cea0cd
Issue #17094 : Clear stale thread states after fork().
...
Note that this is a potentially disruptive change since it may
release some system resources which would otherwise remain
perpetually alive (e.g. database connections kept in thread-local
storage).
2013-05-05 23:47:09 +02:00
Benjamin Peterson
3b0431dc60
check local class namespace before reaching for cells ( closes #17853 )
2013-04-30 09:41:40 -04:00
R David Murray
f097f175dd
Merge #17413 : make sure settrace funcs get passed exception instances for 'value'.
...
Patch by Ingrid Cheung and Brendan McLoughlin.
2013-04-19 12:57:54 -04:00
R David Murray
3583761bcd
#17413 : make sure settrace funcs get passed exception instances for 'value'.
...
Patch by Ingrid Cheung and Brendan McLoughlin.
2013-04-19 12:56:57 -04:00
Ezio Melotti
04a29554c1
#17032 : The "global" in the "NameError: global name 'x' is not defined" error message has been removed. Patch by Ram Rachum.
2013-03-03 15:12:44 +02:00
Benjamin Peterson
1ef876cd28
evaluate positional defaults before keyword-only defaults ( closes #16967 )
2013-02-10 09:29:59 -05:00
Benjamin Peterson
51f4616f6e
revert #16672 for incorrect semantics
2013-01-23 08:38:47 -05:00
Benjamin Peterson
6f0c94df50
improve tracing performance when f_trace is NULL ( closes #16672 )
...
Patch by Xavier de Gaye.
2012-12-24 11:53:30 -06:00
Benjamin Peterson
9272279afd
use error label instead of breaking eval loop ( closes #16693 )
2012-12-15 12:51:05 -05:00
Benjamin Peterson
fe1bcb64cd
move more variable declarations to the top of blocks
2012-10-12 11:40:01 -04:00
Benjamin Peterson
f208df3618
move declaration to top of block
2012-10-12 11:37:56 -04:00
Benjamin Peterson
31a58ff1c3
ceval cleanup
...
- Make many variables local to the opcode; Kill u, v, w, and x.
- Force every opcode to end with DISPATCH or jump to error handling.
- Simplify error handling.
- Check error statuses in more places.
Closes #16191 .
2012-10-12 11:34:51 -04:00
Benjamin Peterson
00f86f2202
add some missing DISPATCH()
2012-10-10 14:10:33 -04:00
Benjamin Peterson
b37df519c7
fix yield from return value on custom iterators ( closes #15568 )
2012-08-06 17:53:09 -07:00
Nick Coghlan
c40bc09942
Issue #13783 : the PEP 380 implementation no longer expands the public C API
2012-06-17 15:15:49 +10:00
Benjamin Peterson
d1ab6089ff
check return for error
2012-06-01 11:18:22 -07:00
Benjamin Peterson
d5a1c44455
PEP 415: Implement suppression of __context__ display with an exception attribute
...
This replaces the original PEP 409 implementation. See #14133 .
2012-05-14 22:09:31 -07:00
Benjamin Peterson
1138944888
only incref when using borrowing functions
2012-04-26 00:26:37 -04:00
Benjamin Peterson
7d95e40721
Implement PEP 412: Key-sharing dictionaries ( closes #13903 )
...
Patch from Mark Shannon.
2012-04-23 11:24:50 -04:00
Antoine Pitrou
bf35c156b4
Fix refleak: PyObject_GetItem returns a new reference, not a borrowed one like PyDict_GetItem.
2012-04-19 18:21:04 +02:00
Victor Stinner
b0b224233e
Issue #14385 : Support other types than dict for __builtins__
...
It is now possible to use a custom type for the __builtins__ namespace, instead
of a dict. It can be used for sandboxing for example. Raise also a NameError
instead of ImportError if __build_class__ name if not found in __builtins__.
2012-04-19 00:57:45 +02:00
Brett Cannon
368b4b7405
Guard an LLTRACE variable to silence an unused variable warning.
2012-04-02 12:17:59 -04:00
Victor Stinner
3c1e48176e
Issue #14383 : Add _PyDict_GetItemId() and _PyDict_SetItemId() functions
...
These functions simplify the usage of static constant Unicode strings.
Generalize the usage of _Py_Identifier in ceval.c and typeobject.c.
2012-03-26 22:10:51 +02:00
Benjamin Peterson
302e7902c8
use identifier api
2012-03-20 23:17:04 -04:00
Benjamin Peterson
2afe6aeae8
perform yield from delegation by repeating YIELD_FROM opcode ( closes #14230 )
...
This allows generators that are using yield from to be seen by debuggers. It
also kills the f_yieldfrom field on frame objects.
Patch mostly from Mark Shannon with a few tweaks by me.
2012-03-15 15:37:39 -05:00
Nick Coghlan
ab7bf2143e
Close issue #6210 : Implement PEP 409
2012-02-26 17:49:52 +10:00
Benjamin Peterson
ce79852077
use the static identifier api for looking up special methods
...
I had to move the static identifier code from unicodeobject.h to object.h in
order for this to work.
2012-01-22 11:24:29 -05:00
Amaury Forgeot d'Arc
0a239e9191
Fix compilation with C89 compilers (Windows...)
2012-01-13 21:08:49 +01:00
Benjamin Peterson
0296a56520
NULL and no exception set from tp_iternext means StopIteration
2012-01-13 14:54:31 -05:00
Nick Coghlan
1f7ce62bd6
Implement PEP 380 - 'yield from' ( closes #11682 )
2012-01-13 21:43:40 +10:00
Antoine Pitrou
86a36b500a
PEP 3155 / issue #13448 : Qualified name for classes and functions.
2011-11-25 18:56:07 +01:00
Martin v. Löwis
1c67dd9b15
Port SetAttrString/HasAttrString to SetAttrId/GetAttrId.
2011-10-14 15:16:45 +02:00
Martin v. Löwis
bd928fef42
Rename _Py_identifier to _Py_IDENTIFIER.
2011-10-14 10:20:37 +02:00
Martin v. Löwis
afe55bba33
Add API for static strings, primarily good for identifiers.
...
Thanks to Konrad Schöbel and Jasper Schulz for helping with the mass-editing.
2011-10-09 10:38:36 +02:00
Victor Stinner
d2a915dbf6
ceval.c: restore str+=str optimization
2011-10-02 20:34:20 +02:00
Benjamin Peterson
811c2f1369
remove "fast-path" for (i)adding strings
...
These were just an artifact of the old unicode concatenation hack and likely
just penalized other kinds of adding. Also, this fixes __(i)add__ on string
subclasses.
2011-09-30 21:31:21 -04:00
Victor Stinner
bec0fda264
Remove commented code: str+=str is no more super-optimized
2011-10-01 01:26:08 +02:00
Martin v. Löwis
d63a3b8beb
Implement PEP 393.
2011-09-28 07:41:54 +02:00
Charles-François Natali
f23339a7bb
Issue 12620: Make pendingbusy flag static to Py_MakePendingCalls().
2011-07-23 18:15:43 +02:00
Benjamin Peterson
76f7f4d979
excise the remains of STOP_CODE, which hasn't done anything useful for years
2011-07-17 22:49:50 -05:00
Benjamin Peterson
e92cd0ce98
merge 3.2 ( #11627 )
2011-07-15 14:10:35 -05:00
Benjamin Peterson
5afa03a72e
catch nasty exception classes with __new__ that doesn't return a exception ( closes #11627 )
...
Patch from Andreas Stührk.
2011-07-15 14:09:26 -05:00
Benjamin Peterson
9bfd0dee9b
no one passes NULL here (or should anyway)
2011-07-03 17:06:32 -05:00
Benjamin Peterson
878802435d
convert generator exc state functions into static functions
2011-07-03 16:48:31 -05:00
Benjamin Peterson
536feac7f8
merge 3.2
2011-07-03 16:27:41 -05:00