Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/asn1crypto/_teletex_codec.py: 85%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

27 statements  

1# coding: utf-8 

2 

3""" 

4Implementation of the teletex T.61 codec. Exports the following items: 

5 

6 - register() 

7""" 

8 

9from __future__ import unicode_literals, division, absolute_import, print_function 

10 

11import codecs 

12 

13 

14class TeletexCodec(codecs.Codec): 

15 

16 def encode(self, input_, errors='strict'): 

17 return codecs.charmap_encode(input_, errors, ENCODING_TABLE) 

18 

19 def decode(self, input_, errors='strict'): 

20 return codecs.charmap_decode(input_, errors, DECODING_TABLE) 

21 

22 

23class TeletexIncrementalEncoder(codecs.IncrementalEncoder): 

24 

25 def encode(self, input_, final=False): 

26 return codecs.charmap_encode(input_, self.errors, ENCODING_TABLE)[0] 

27 

28 

29class TeletexIncrementalDecoder(codecs.IncrementalDecoder): 

30 

31 def decode(self, input_, final=False): 

32 return codecs.charmap_decode(input_, self.errors, DECODING_TABLE)[0] 

33 

34 

35class TeletexStreamWriter(TeletexCodec, codecs.StreamWriter): 

36 

37 pass 

38 

39 

40class TeletexStreamReader(TeletexCodec, codecs.StreamReader): 

41 

42 pass 

43 

44 

45def teletex_search_function(name): 

46 """ 

47 Search function for teletex codec that is passed to codecs.register() 

48 """ 

49 

50 if name != 'teletex': 

51 return None 

52 

53 return codecs.CodecInfo( 

54 name='teletex', 

55 encode=TeletexCodec().encode, 

56 decode=TeletexCodec().decode, 

57 incrementalencoder=TeletexIncrementalEncoder, 

58 incrementaldecoder=TeletexIncrementalDecoder, 

59 streamreader=TeletexStreamReader, 

60 streamwriter=TeletexStreamWriter, 

61 ) 

62 

63 

64def register(): 

65 """ 

66 Registers the teletex codec 

67 """ 

68 

69 codecs.register(teletex_search_function) 

70 

71 

72# http://en.wikipedia.org/wiki/ITU_T.61 

73DECODING_TABLE = ( 

74 '\u0000' 

75 '\u0001' 

76 '\u0002' 

77 '\u0003' 

78 '\u0004' 

79 '\u0005' 

80 '\u0006' 

81 '\u0007' 

82 '\u0008' 

83 '\u0009' 

84 '\u000A' 

85 '\u000B' 

86 '\u000C' 

87 '\u000D' 

88 '\u000E' 

89 '\u000F' 

90 '\u0010' 

91 '\u0011' 

92 '\u0012' 

93 '\u0013' 

94 '\u0014' 

95 '\u0015' 

96 '\u0016' 

97 '\u0017' 

98 '\u0018' 

99 '\u0019' 

100 '\u001A' 

101 '\u001B' 

102 '\u001C' 

103 '\u001D' 

104 '\u001E' 

105 '\u001F' 

106 '\u0020' 

107 '\u0021' 

108 '\u0022' 

109 '\ufffe' 

110 '\ufffe' 

111 '\u0025' 

112 '\u0026' 

113 '\u0027' 

114 '\u0028' 

115 '\u0029' 

116 '\u002A' 

117 '\u002B' 

118 '\u002C' 

119 '\u002D' 

120 '\u002E' 

121 '\u002F' 

122 '\u0030' 

123 '\u0031' 

124 '\u0032' 

125 '\u0033' 

126 '\u0034' 

127 '\u0035' 

128 '\u0036' 

129 '\u0037' 

130 '\u0038' 

131 '\u0039' 

132 '\u003A' 

133 '\u003B' 

134 '\u003C' 

135 '\u003D' 

136 '\u003E' 

137 '\u003F' 

138 '\u0040' 

139 '\u0041' 

140 '\u0042' 

141 '\u0043' 

142 '\u0044' 

143 '\u0045' 

144 '\u0046' 

145 '\u0047' 

146 '\u0048' 

147 '\u0049' 

148 '\u004A' 

149 '\u004B' 

150 '\u004C' 

151 '\u004D' 

152 '\u004E' 

153 '\u004F' 

154 '\u0050' 

155 '\u0051' 

156 '\u0052' 

157 '\u0053' 

158 '\u0054' 

159 '\u0055' 

160 '\u0056' 

161 '\u0057' 

162 '\u0058' 

163 '\u0059' 

164 '\u005A' 

165 '\u005B' 

166 '\ufffe' 

167 '\u005D' 

168 '\ufffe' 

169 '\u005F' 

170 '\ufffe' 

171 '\u0061' 

172 '\u0062' 

173 '\u0063' 

174 '\u0064' 

175 '\u0065' 

176 '\u0066' 

177 '\u0067' 

178 '\u0068' 

179 '\u0069' 

180 '\u006A' 

181 '\u006B' 

182 '\u006C' 

183 '\u006D' 

184 '\u006E' 

185 '\u006F' 

186 '\u0070' 

187 '\u0071' 

188 '\u0072' 

189 '\u0073' 

190 '\u0074' 

191 '\u0075' 

192 '\u0076' 

193 '\u0077' 

194 '\u0078' 

195 '\u0079' 

196 '\u007A' 

197 '\ufffe' 

198 '\u007C' 

199 '\ufffe' 

200 '\ufffe' 

201 '\u007F' 

202 '\u0080' 

203 '\u0081' 

204 '\u0082' 

205 '\u0083' 

206 '\u0084' 

207 '\u0085' 

208 '\u0086' 

209 '\u0087' 

210 '\u0088' 

211 '\u0089' 

212 '\u008A' 

213 '\u008B' 

214 '\u008C' 

215 '\u008D' 

216 '\u008E' 

217 '\u008F' 

218 '\u0090' 

219 '\u0091' 

220 '\u0092' 

221 '\u0093' 

222 '\u0094' 

223 '\u0095' 

224 '\u0096' 

225 '\u0097' 

226 '\u0098' 

227 '\u0099' 

228 '\u009A' 

229 '\u009B' 

230 '\u009C' 

231 '\u009D' 

232 '\u009E' 

233 '\u009F' 

234 '\u00A0' 

235 '\u00A1' 

236 '\u00A2' 

237 '\u00A3' 

238 '\u0024' 

239 '\u00A5' 

240 '\u0023' 

241 '\u00A7' 

242 '\u00A4' 

243 '\ufffe' 

244 '\ufffe' 

245 '\u00AB' 

246 '\ufffe' 

247 '\ufffe' 

248 '\ufffe' 

249 '\ufffe' 

250 '\u00B0' 

251 '\u00B1' 

252 '\u00B2' 

253 '\u00B3' 

254 '\u00D7' 

255 '\u00B5' 

256 '\u00B6' 

257 '\u00B7' 

258 '\u00F7' 

259 '\ufffe' 

260 '\ufffe' 

261 '\u00BB' 

262 '\u00BC' 

263 '\u00BD' 

264 '\u00BE' 

265 '\u00BF' 

266 '\ufffe' 

267 '\u0300' 

268 '\u0301' 

269 '\u0302' 

270 '\u0303' 

271 '\u0304' 

272 '\u0306' 

273 '\u0307' 

274 '\u0308' 

275 '\ufffe' 

276 '\u030A' 

277 '\u0327' 

278 '\u0332' 

279 '\u030B' 

280 '\u0328' 

281 '\u030C' 

282 '\ufffe' 

283 '\ufffe' 

284 '\ufffe' 

285 '\ufffe' 

286 '\ufffe' 

287 '\ufffe' 

288 '\ufffe' 

289 '\ufffe' 

290 '\ufffe' 

291 '\ufffe' 

292 '\ufffe' 

293 '\ufffe' 

294 '\ufffe' 

295 '\ufffe' 

296 '\ufffe' 

297 '\ufffe' 

298 '\u2126' 

299 '\u00C6' 

300 '\u00D0' 

301 '\u00AA' 

302 '\u0126' 

303 '\ufffe' 

304 '\u0132' 

305 '\u013F' 

306 '\u0141' 

307 '\u00D8' 

308 '\u0152' 

309 '\u00BA' 

310 '\u00DE' 

311 '\u0166' 

312 '\u014A' 

313 '\u0149' 

314 '\u0138' 

315 '\u00E6' 

316 '\u0111' 

317 '\u00F0' 

318 '\u0127' 

319 '\u0131' 

320 '\u0133' 

321 '\u0140' 

322 '\u0142' 

323 '\u00F8' 

324 '\u0153' 

325 '\u00DF' 

326 '\u00FE' 

327 '\u0167' 

328 '\u014B' 

329 '\ufffe' 

330) 

331ENCODING_TABLE = codecs.charmap_build(DECODING_TABLE)