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 (64 lines) | stat: -rw-r--r-- 2,445 bytes parent folder | download | duplicates (2)
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64

from pypy.interpreter.mixedmodule import MixedModule
from .interp_time import HAS_THREAD_TIME
from rpython.rlib import rtime
import os

_WIN = os.name == "nt"

class Module(MixedModule):
    applevel_name = 'time'

    interpleveldefs = {
        'time': 'interp_time.time_time',
        'time_ns': 'interp_time.time_time_ns',
        'ctime': 'interp_time.ctime',
        'asctime': 'interp_time.asctime',
        'gmtime': 'interp_time.gmtime',
        'localtime': 'interp_time.localtime',
        'mktime': 'interp_time.mktime',
        'strftime': 'interp_time.strftime',
        'sleep' : 'interp_time.time_sleep',
        '_STRUCT_TM_ITEMS': 'space.wrap(interp_time._STRUCT_TM_ITEMS)',
        'perf_counter': 'interp_time.perf_counter',
        'perf_counter_ns': 'interp_time.perf_counter_ns',
        'process_time': 'interp_time.process_time',
        'process_time_ns': 'interp_time.process_time_ns',
        '_get_time_info': 'interp_time._get_time_info',
        'monotonic': 'interp_time.monotonic',
        'monotonic_ns': 'interp_time.monotonic_ns',
    }

    if rtime.HAS_CLOCK_GETTIME_RUNTIME:
        interpleveldefs['clock_gettime'] = 'interp_time.clock_gettime'
        interpleveldefs['clock_gettime_ns'] = 'interp_time.clock_gettime_ns'
        interpleveldefs['clock_settime'] = 'interp_time.clock_settime'
        interpleveldefs['clock_settime_ns'] = 'interp_time.clock_settime_ns'
        interpleveldefs['clock_getres'] = 'interp_time.clock_getres'
        for constant in rtime.ALL_DEFINED_CLOCKS:
            interpleveldefs[constant] = 'space.wrap(%d)' % (
                getattr(rtime, constant),)
    if HAS_THREAD_TIME:
        interpleveldefs['thread_time'] = 'interp_time.thread_time'
        interpleveldefs['thread_time_ns'] = 'interp_time.thread_time_ns'
    if os.name == "posix":
        interpleveldefs['tzset'] = 'interp_time.tzset'

    appleveldefs = {
        'struct_time': 'app_time.struct_time',
        '__doc__': 'app_time.__doc__',
        'strptime': 'app_time.strptime',
        'get_clock_info': 'app_time.get_clock_info'
    }

    def startup(self, space):
        if _WIN:
            from pypy.module.time.interp_time import State
            space.fromcache(State).startup(space)

        # this machinery is needed to expose constants
        # that have to be initialized one time only
        from pypy.module.time import interp_time

        interp_time._init_timezone(space)