-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathtypes.py
More file actions
98 lines (54 loc) · 1.66 KB
/
types.py
File metadata and controls
98 lines (54 loc) · 1.66 KB
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
from rpython.annotator import model
from rpython.annotator.listdef import ListDef
from rpython.annotator.dictdef import DictDef
def none():
return model.s_None
def impossible():
return model.s_ImpossibleValue
def float():
return model.SomeFloat()
def singlefloat():
return model.SomeSingleFloat()
def longfloat():
return model.SomeLongFloat()
def int():
return model.SomeInteger()
def int_nonneg():
return model.SomeInteger(nonneg=True)
def bool():
return model.SomeBool()
def unicode():
return model.SomeUnicodeString()
def unicode0():
return model.SomeUnicodeString(no_nul=True)
def str(can_be_None=False):
return model.SomeString(can_be_None=can_be_None)
def bytearray():
return model.SomeByteArray()
def str0():
return model.SomeString(no_nul=True)
def char():
return model.SomeChar()
def ptr(ll_type):
from rpython.rtyper.lltypesystem.lltype import Ptr
from rpython.rtyper.llannotation import SomePtr
return SomePtr(Ptr(ll_type))
def list(element):
listdef = ListDef(None, element, mutated=True, resized=True)
return model.SomeList(listdef)
def array(element):
listdef = ListDef(None, element, mutated=True, resized=False)
return model.SomeList(listdef)
def dict(keytype, valuetype):
dictdef = DictDef(None, keytype, valuetype)
return model.SomeDict(dictdef)
def instance(cls, can_be_None=False):
return lambda bookkeeper: model.SomeInstance(bookkeeper.getuniqueclassdef(cls), can_be_None=can_be_None)
class SelfTypeMarker(object):
pass
def self():
return SelfTypeMarker()
class AnyTypeMarker(object):
pass
def any():
return AnyTypeMarker()