Ignore:
Timestamp:
Mar 19, 2014, 11:31:01 PM (11 years ago)
Author:
dmik
Message:

python: Merge vendor 2.7.6 to trunk.

Location:
python/trunk
Files:
6 edited
2 copied

Legend:

Unmodified
Added
Removed
  • python/trunk

  • python/trunk/Lib/encodings/__init__.py

    r2 r391  
    124124                 'module "%s" (%s) failed to register' % \
    125125                  (mod.__name__, mod.__file__)
    126         if not callable(entry[0]) or \
    127            not callable(entry[1]) or \
    128            (entry[2] is not None and not callable(entry[2])) or \
    129            (entry[3] is not None and not callable(entry[3])) or \
    130            (len(entry) > 4 and entry[4] is not None and not callable(entry[4])) or \
    131            (len(entry) > 5 and entry[5] is not None and not callable(entry[5])):
     126        if not hasattr(entry[0], '__call__') or \
     127           not hasattr(entry[1], '__call__') or \
     128           (entry[2] is not None and not hasattr(entry[2], '__call__')) or \
     129           (entry[3] is not None and not hasattr(entry[3], '__call__')) or \
     130           (len(entry) > 4 and entry[4] is not None and not hasattr(entry[4], '__call__')) or \
     131           (len(entry) > 5 and entry[5] is not None and not hasattr(entry[5], '__call__')):
    132132            raise CodecRegistryError,\
    133133                'incompatible codecs in module "%s" (%s)' % \
     
    148148    else:
    149149        for alias in codecaliases:
    150             if not _aliases.has_key(alias):
     150            if alias not in _aliases:
    151151                _aliases[alias] = modname
    152152
  • python/trunk/Lib/encodings/aliases.py

    r2 r391  
    146146    'csibm857'           : 'cp857',
    147147    'ibm857'             : 'cp857',
     148
     149    # cp858 codec
     150    '858'                : 'cp858',
     151    'csibm858'           : 'cp858',
     152    'ibm858'             : 'cp858',
    148153
    149154    # cp860 codec
     
    443448    'pt154'              : 'ptcp154',
    444449    'cp154'              : 'ptcp154',
    445     'cyrillic-asian'     : 'ptcp154',
     450    'cyrillic_asian'     : 'ptcp154',
    446451
    447452    # quopri_codec codec
  • python/trunk/Lib/encodings/utf_16.py

    r2 r391  
    3535        self.encoder = None
    3636
     37    def getstate(self):
     38        # state info we return to the caller:
     39        # 0: stream is in natural order for this platform
     40        # 2: endianness hasn't been determined yet
     41        # (we're never writing in unnatural order)
     42        return (2 if self.encoder is None else 0)
     43
     44    def setstate(self, state):
     45        if state:
     46            self.encoder = None
     47        else:
     48            if sys.byteorder == 'little':
     49                self.encoder = codecs.utf_16_le_encode
     50            else:
     51                self.encoder = codecs.utf_16_be_encode
     52
    3753class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
    3854    def __init__(self, errors='strict'):
     
    5975class StreamWriter(codecs.StreamWriter):
    6076    def __init__(self, stream, errors='strict'):
    61         self.bom_written = False
    6277        codecs.StreamWriter.__init__(self, stream, errors)
     78        self.encoder = None
     79
     80    def reset(self):
     81        codecs.StreamWriter.reset(self)
     82        self.encoder = None
    6383
    6484    def encode(self, input, errors='strict'):
    65         self.bom_written = True
    66         result = codecs.utf_16_encode(input, errors)
    67         if sys.byteorder == 'little':
    68             self.encode = codecs.utf_16_le_encode
     85        if self.encoder is None:
     86            result = codecs.utf_16_encode(input, errors)
     87            if sys.byteorder == 'little':
     88                self.encoder = codecs.utf_16_le_encode
     89            else:
     90                self.encoder = codecs.utf_16_be_encode
     91            return result
    6992        else:
    70             self.encode = codecs.utf_16_be_encode
    71         return result
     93            return self.encoder(input, errors)
    7294
    7395class StreamReader(codecs.StreamReader):
  • python/trunk/Lib/encodings/utf_32.py

    r2 r391  
    9999class StreamWriter(codecs.StreamWriter):
    100100    def __init__(self, stream, errors='strict'):
    101         self.bom_written = False
     101        self.encoder = None
    102102        codecs.StreamWriter.__init__(self, stream, errors)
    103103
     104    def reset(self):
     105        codecs.StreamWriter.reset(self)
     106        self.encoder = None
     107
    104108    def encode(self, input, errors='strict'):
    105         self.bom_written = True
    106         result = codecs.utf_32_encode(input, errors)
    107         if sys.byteorder == 'little':
    108             self.encode = codecs.utf_32_le_encode
     109        if self.encoder is None:
     110            result = codecs.utf_32_encode(input, errors)
     111            if sys.byteorder == 'little':
     112                self.encoder = codecs.utf_32_le_encode
     113            else:
     114                self.encoder = codecs.utf_32_be_encode
     115            return result
    109116        else:
    110             self.encode = codecs.utf_32_be_encode
    111         return result
     117            return self.encoder(input, errors)
    112118
    113119class StreamReader(codecs.StreamReader):
  • python/trunk/Lib/encodings/utf_8_sig.py

    r2 r391  
    2626    def __init__(self, errors='strict'):
    2727        codecs.IncrementalEncoder.__init__(self, errors)
    28         self.first = True
     28        self.first = 1
    2929
    3030    def encode(self, input, final=False):
    3131        if self.first:
    32             self.first = False
     32            self.first = 0
    3333            return codecs.BOM_UTF8 + codecs.utf_8_encode(input, self.errors)[0]
    3434        else:
     
    3737    def reset(self):
    3838        codecs.IncrementalEncoder.reset(self)
    39         self.first = True
     39        self.first = 1
     40
     41    def getstate(self):
     42        return self.first
     43
     44    def setstate(self, state):
     45        self.first = state
    4046
    4147class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
Note: See TracChangeset for help on using the changeset viewer.