Lines Matching refs:self
10 def __init__(self, column=78):
11 self.column = column
12 self.buffered = []
13 self.cline = []
14 self.clen = 0
15 self.count = 0
17 def write(self, *data):
19 if len(s) > self.column:
21 if len(s) + self.clen > self.column:
22 self.flush()
23 self.clen += len(s)
24 self.cline.append(s)
25 self.count += 1
27 def flush(self):
28 if not self.cline:
30 self.buffered.append(''.join(self.cline))
31 self.clen = 0
32 del self.cline[:]
34 def printout(self, fp):
35 self.flush()
36 for l in self.buffered:
38 del self.buffered[:]
40 def __len__(self):
41 return self.count
47 def __init__(self, fp, prefix, decode_map):
48 self.fp = fp
49 self.prefix = prefix
50 self.decode_map = decode_map
51 self.filler = self.filler_class()
53 def update_decode_map(self, c1range, c2range, onlymask=(), wide=0):
57 if c1 not in self.decode_map or (onlymask and c1 not in onlymask):
59 c2map = self.decode_map[c1]
64 c2map[self.prefix] = True
67 c2map['midx'] = len(self.filler)
71 self.filler.write('%d,' % c2map[v])
73 self.filler.write('U,')
75 def generate(self, wide=False):
77 self.fp.write(f"static const ucs2_t __{self.prefix}_decmap[{len(self.filler)}] = {{\n")
79 self.fp.write(f"static const Py_UCS4 __{self.prefix}_decmap[{len(self.filler)}] = {{\n")
81 self.filler.printout(self.fp)
82 self.fp.write("};\n\n")
85 self.fp.write(f"static const struct dbcs_index {self.prefix}_decmap[256] = {{\n")
87 self.fp.write(f"static const struct widedbcs_index {self.prefix}_decmap[256] = {{\n")
90 if i in self.decode_map and self.prefix in self.decode_map[i]:
91 m = self.decode_map
92 prefix = self.prefix
94 self.filler.write("{", "0,", "0,", "0", "},")
97 self.filler.write("{", "__%s_decmap" % prefix, "+", "%d" % m[i]['midx'],
99 self.filler.printout(self.fp)
100 self.fp.write("};\n\n")
108 def __init__(self, fp, prefix, encode_map):
109 self.fp = fp
110 self.prefix = prefix
111 self.encode_map = encode_map
112 self.filler = self.filler_class()
114 def generate(self):
115 self.buildmap()
116 self.printmap()
118 def buildmap(self):
120 if c1 not in self.encode_map:
122 c2map = self.encode_map[c1]
128 c2map[self.prefix] = True
131 c2map['midx'] = len(self.filler)
135 self.write_nochar()
137 self.write_char(c2map[v])
139 self.write_multic(c2map[v])
143 def write_nochar(self):
144 self.filler.write('N,')
146 def write_multic(self, point):
147 self.filler.write('M,')
149 def write_char(self, point):
150 self.filler.write(str(point) + ',')
152 def printmap(self):
153 self.fp.write(f"static const {self.elemtype} __{self.prefix}_encmap[{len(self.filler)}] = {{\n")
154 self.filler.printout(self.fp)
155 self.fp.write("};\n\n")
156 self.fp.write(f"static const {self.indextype} {self.prefix}_encmap[256] = {{\n")
159 if i in self.encode_map and self.prefix in self.encode_map[i]:
160 self.filler.write("{", "__%s_encmap" % self.prefix, "+",
161 "%d" % self.encode_map[i]['midx'], ",",
162 "%d," % self.encode_map[i]['min'],
163 "%d" % self.encode_map[i]['max'], "},")
165 self.filler.write("{", "0,", "0,", "0", "},")
167 self.filler.printout(self.fp)
168 self.fp.write("};\n\n")