File: interp_defaultdict.py

package info (click to toggle)
pypy3 7.0.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 111,848 kB
  • sloc: python: 1,291,746; ansic: 74,281; asm: 5,187; cpp: 3,017; sh: 2,533; makefile: 544; xml: 243; lisp: 45; csh: 21; awk: 4
file content (12 lines) | stat: -rw-r--r-- 556 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
from pypy.interpreter.error import OperationError

def missing(space, w_self, w_key):
    # An interp-level version of this method.  This is mostly only
    # useful because it can be executed atomically in the presence of
    # threads.
    w_default_factory = space.getattr(w_self, space.newtext('default_factory'))
    if space.is_w(w_default_factory, space.w_None):
        raise OperationError(space.w_KeyError, space.newtuple([w_key]))
    w_value = space.call_function(w_default_factory)
    space.setitem(w_self, w_key, w_value)
    return w_value