File: moduledef.py

package info (click to toggle)
pypy3 7.3.19%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 212,236 kB
  • sloc: python: 2,098,316; ansic: 540,565; sh: 21,462; asm: 14,419; cpp: 4,451; makefile: 4,209; objc: 761; xml: 530; exp: 499; javascript: 314; pascal: 244; lisp: 45; csh: 12; awk: 4
file content (28 lines) | stat: -rw-r--r-- 1,048 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from pypy.interpreter.mixedmodule import MixedModule

class Module(MixedModule):
    """High performance data structures.
- deque:        ordered collection accessible from endpoints only
- defaultdict:  dict subclass with a default value factory
"""

    appleveldefs = {
        'defaultdict': 'app_defaultdict.defaultdict',
        'OrderedDict': 'app_odict.OrderedDict',
        }

    interpleveldefs = {
        'deque' : 'interp_deque.W_Deque',
        'deque_iterator' : 'interp_deque.W_DequeIter',
        'deque_reverse_iterator' : 'interp_deque.W_DequeRevIter',
        '__missing__': 'interp_defaultdict.missing',
        }

    def setup_after_space_initialization(self):
        """NOT_RPYTHON"""
        # must remove the interp-level name '__missing__' after it has
        # been used...  otherwise, some code is not happy about seeing
        # this code object twice
        space = self.space
        space.getattr(self, space.newtext('defaultdict'))  # force importing
        space.delattr(self, space.newtext('__missing__'))