Changeset 143


Ignore:
Timestamp:
04/18/06 15:33:16 (8 years ago)
Author:
xi
Message:

Fix bugs in emitter and representer.

Location:
pyyaml/trunk/lib/yaml
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • pyyaml/trunk/lib/yaml/emitter.py

    r141 r143  
    960960            if end < len(text): 
    961961                ch = text[end] 
    962             if ch is None or ch in u'"\\ \ 
     962            if ch is None or ch in u'"\\\x85\u2028\u2029\uFEFF' \ 
    963963                    or not (u'\x20' <= ch <= u'\x7E' 
    964                             or (self.allow_unicode and ch > u'\x7F' 
    965                                 and ch not in u'\x85\u2028\u2029')): 
     964                            or (self.allow_unicode and ch > u'\x7F')): 
    966965                if start < end: 
    967966                    data = text[start:end] 
     
    997996                self.whitespace = False 
    998997                self.indention = False 
    999                 if ch == u' ': 
     998                if text[start] == u' ': 
    1000999                    data = u'\\' 
    10011000                    self.column += len(data) 
  • pyyaml/trunk/lib/yaml/representer.py

    r139 r143  
    6464        data_types = type(data).__mro__ 
    6565        if type(data) is self.instance_type: 
    66             data_types = self.get_classobj_bases(data.__class__)+data_types 
     66            data_types = self.get_classobj_bases(data.__class__)+list(data_types) 
    6767        for data_type in data_types: 
    6868            if data_type in self.yaml_representers: 
     
    292292 
    293293    def represent_complex(self, data): 
    294         if data.real != 0.0: 
     294        if data.imag == 0.0: 
     295            data = u'%r' % data.real 
     296        elif data.real == 0.0: 
     297            data = u'%rj' % data.imag 
     298        elif data.imag > 0: 
    295299            data = u'%r+%rj' % (data.real, data.imag) 
    296300        else: 
    297             data = u'%rj' % data.imag 
     301            data = u'%r%rj' % (data.real, data.imag) 
    298302        return self.represent_scalar(u'tag:yaml.org,2002:python/complex', data) 
    299303 
Note: See TracChangeset for help on using the changeset viewer.