~ibmcharmers/charms/xenial/ibm-db2/trunk

« back to all changes in this revision

Viewing changes to .tox/py35/lib/python3.5/encodings/cp65001.py

  • Committer: Rajith Venkata
  • Date: 2017-02-22 09:37:48 UTC
  • Revision ID: rajith.pv@in.ibm.com-20170222093748-fibtdsahuug31ra5
2ndcheckin for IBM-DB2 charm

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
"""
 
2
Code page 65001: Windows UTF-8 (CP_UTF8).
 
3
"""
 
4
 
 
5
import codecs
 
6
import functools
 
7
 
 
8
if not hasattr(codecs, 'code_page_encode'):
 
9
    raise LookupError("cp65001 encoding is only available on Windows")
 
10
 
 
11
### Codec APIs
 
12
 
 
13
encode = functools.partial(codecs.code_page_encode, 65001)
 
14
_decode = functools.partial(codecs.code_page_decode, 65001)
 
15
 
 
16
def decode(input, errors='strict'):
 
17
    return codecs.code_page_decode(65001, input, errors, True)
 
18
 
 
19
class IncrementalEncoder(codecs.IncrementalEncoder):
 
20
    def encode(self, input, final=False):
 
21
        return encode(input, self.errors)[0]
 
22
 
 
23
class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
 
24
    _buffer_decode = _decode
 
25
 
 
26
class StreamWriter(codecs.StreamWriter):
 
27
    encode = encode
 
28
 
 
29
class StreamReader(codecs.StreamReader):
 
30
    decode = _decode
 
31
 
 
32
### encodings module API
 
33
 
 
34
def getregentry():
 
35
    return codecs.CodecInfo(
 
36
        name='cp65001',
 
37
        encode=encode,
 
38
        decode=decode,
 
39
        incrementalencoder=IncrementalEncoder,
 
40
        incrementaldecoder=IncrementalDecoder,
 
41
        streamreader=StreamReader,
 
42
        streamwriter=StreamWriter,
 
43
    )