Ignore:
Timestamp:
12/29/08 12:24:05 (5 years ago)
Author:
xi
Message:

Added basic support for Python 3 (Thanks idadesub(at)users(dot)sourceforge(dot)net).

Location:
pyyaml/trunk/lib3
Files:
1 edited
1 copied

Legend:

Unmodified
Added
Removed
  • pyyaml/trunk/lib3/yaml/resolver.py

    r260 r328  
    22__all__ = ['BaseResolver', 'Resolver'] 
    33 
    4 from error import * 
    5 from nodes import * 
     4from .error import * 
     5from .nodes import * 
    66 
    77import re 
     
    1010    pass 
    1111 
    12 class BaseResolver(object): 
    13  
    14     DEFAULT_SCALAR_TAG = u'tag:yaml.org,2002:str' 
    15     DEFAULT_SEQUENCE_TAG = u'tag:yaml.org,2002:seq' 
    16     DEFAULT_MAPPING_TAG = u'tag:yaml.org,2002:map' 
     12class BaseResolver: 
     13 
     14    DEFAULT_SCALAR_TAG = 'tag:yaml.org,2002:str' 
     15    DEFAULT_SEQUENCE_TAG = 'tag:yaml.org,2002:seq' 
     16    DEFAULT_MAPPING_TAG = 'tag:yaml.org,2002:map' 
    1717 
    1818    yaml_implicit_resolvers = {} 
     
    2323        self.resolver_prefix_paths = [] 
    2424 
     25    @classmethod 
    2526    def add_implicit_resolver(cls, tag, regexp, first): 
    2627        if not 'yaml_implicit_resolvers' in cls.__dict__: 
     
    3031        for ch in first: 
    3132            cls.yaml_implicit_resolvers.setdefault(ch, []).append((tag, regexp)) 
    32     add_implicit_resolver = classmethod(add_implicit_resolver) 
    33  
     33 
     34    @classmethod 
    3435    def add_path_resolver(cls, tag, path, kind=None): 
    3536        # Note: `add_path_resolver` is experimental.  The API could be changed. 
     
    6768                node_check = MappingNode 
    6869            elif node_check not in [ScalarNode, SequenceNode, MappingNode]  \ 
    69                     and not isinstance(node_check, basestring) \ 
     70                    and not isinstance(node_check, str) \ 
    7071                    and node_check is not None: 
    7172                raise ResolverError("Invalid node checker: %s" % node_check) 
    72             if not isinstance(index_check, (basestring, int))   \ 
     73            if not isinstance(index_check, (str, int))  \ 
    7374                    and index_check is not None: 
    7475                raise ResolverError("Invalid index checker: %s" % index_check) 
     
    8485            raise ResolverError("Invalid node kind: %s" % kind) 
    8586        cls.yaml_path_resolvers[tuple(new_path), kind] = tag 
    86     add_path_resolver = classmethod(add_path_resolver) 
    8787 
    8888    def descend_resolver(self, current_node, current_index): 
     
    118118            current_node, current_index): 
    119119        node_check, index_check = path[depth-1] 
    120         if isinstance(node_check, basestring): 
     120        if isinstance(node_check, str): 
    121121            if current_node.tag != node_check: 
    122122                return 
     
    129129                and current_index is None: 
    130130            return 
    131         if isinstance(index_check, basestring): 
     131        if isinstance(index_check, str): 
    132132            if not (isinstance(current_index, ScalarNode) 
    133133                    and index_check == current_index.value): 
     
    140140    def resolve(self, kind, value, implicit): 
    141141        if kind is ScalarNode and implicit[0]: 
    142             if value == u'': 
    143                 resolvers = self.yaml_implicit_resolvers.get(u'', []) 
     142            if value == '': 
     143                resolvers = self.yaml_implicit_resolvers.get('', []) 
    144144            else: 
    145145                resolvers = self.yaml_implicit_resolvers.get(value[0], []) 
     
    166166 
    167167Resolver.add_implicit_resolver( 
    168         u'tag:yaml.org,2002:bool', 
    169         re.compile(ur'''^(?:yes|Yes|YES|no|No|NO 
     168        'tag:yaml.org,2002:bool', 
     169        re.compile(r'''^(?:yes|Yes|YES|no|No|NO 
    170170                    |true|True|TRUE|false|False|FALSE 
    171171                    |on|On|ON|off|Off|OFF)$''', re.X), 
    172         list(u'yYnNtTfFoO')) 
    173  
    174 Resolver.add_implicit_resolver( 
    175         u'tag:yaml.org,2002:float', 
    176         re.compile(ur'''^(?:[-+]?(?:[0-9][0-9_]*)\.[0-9_]*(?:[eE][-+][0-9]+)? 
     172        list('yYnNtTfFoO')) 
     173 
     174Resolver.add_implicit_resolver( 
     175        'tag:yaml.org,2002:float', 
     176        re.compile(r'''^(?:[-+]?(?:[0-9][0-9_]*)\.[0-9_]*(?:[eE][-+][0-9]+)? 
    177177                    |\.[0-9_]+(?:[eE][-+][0-9]+)? 
    178178                    |[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]* 
    179179                    |[-+]?\.(?:inf|Inf|INF) 
    180180                    |\.(?:nan|NaN|NAN))$''', re.X), 
    181         list(u'-+0123456789.')) 
    182  
    183 Resolver.add_implicit_resolver( 
    184         u'tag:yaml.org,2002:int', 
    185         re.compile(ur'''^(?:[-+]?0b[0-1_]+ 
     181        list('-+0123456789.')) 
     182 
     183Resolver.add_implicit_resolver( 
     184        'tag:yaml.org,2002:int', 
     185        re.compile(r'''^(?:[-+]?0b[0-1_]+ 
    186186                    |[-+]?0[0-7_]+ 
    187187                    |[-+]?(?:0|[1-9][0-9_]*) 
    188188                    |[-+]?0x[0-9a-fA-F_]+ 
    189189                    |[-+]?[1-9][0-9_]*(?::[0-5]?[0-9])+)$''', re.X), 
    190         list(u'-+0123456789')) 
    191  
    192 Resolver.add_implicit_resolver( 
    193         u'tag:yaml.org,2002:merge', 
    194         re.compile(ur'^(?:<<)$'), 
     190        list('-+0123456789')) 
     191 
     192Resolver.add_implicit_resolver( 
     193        'tag:yaml.org,2002:merge', 
     194        re.compile(r'^(?:<<)$'), 
    195195        ['<']) 
    196196 
    197197Resolver.add_implicit_resolver( 
    198         u'tag:yaml.org,2002:null', 
    199         re.compile(ur'''^(?: ~ 
     198        'tag:yaml.org,2002:null', 
     199        re.compile(r'''^(?: ~ 
    200200                    |null|Null|NULL 
    201201                    | )$''', re.X), 
    202         [u'~', u'n', u'N', u'']) 
    203  
    204 Resolver.add_implicit_resolver( 
    205         u'tag:yaml.org,2002:timestamp', 
    206         re.compile(ur'''^(?:[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] 
     202        ['~', 'n', 'N', '']) 
     203 
     204Resolver.add_implicit_resolver( 
     205        'tag:yaml.org,2002:timestamp', 
     206        re.compile(r'''^(?:[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9] 
    207207                    |[0-9][0-9][0-9][0-9] -[0-9][0-9]? -[0-9][0-9]? 
    208208                     (?:[Tt]|[ \t]+)[0-9][0-9]? 
    209209                     :[0-9][0-9] :[0-9][0-9] (?:\.[0-9]*)? 
    210210                     (?:[ \t]*(?:Z|[-+][0-9][0-9]?(?::[0-9][0-9])?))?)$''', re.X), 
    211         list(u'0123456789')) 
    212  
    213 Resolver.add_implicit_resolver( 
    214         u'tag:yaml.org,2002:value', 
    215         re.compile(ur'^(?:=)$'), 
     211        list('0123456789')) 
     212 
     213Resolver.add_implicit_resolver( 
     214        'tag:yaml.org,2002:value', 
     215        re.compile(r'^(?:=)$'), 
    216216        ['=']) 
    217217 
     
    219219# because plain scalars cannot start with '!', '&', or '*'. 
    220220Resolver.add_implicit_resolver( 
    221         u'tag:yaml.org,2002:yaml', 
    222         re.compile(ur'^(?:!|&|\*)$'), 
    223         list(u'!&*')) 
    224  
     221        'tag:yaml.org,2002:yaml', 
     222        re.compile(r'^(?:!|&|\*)$'), 
     223        list('!&*')) 
     224 
Note: See TracChangeset for help on using the changeset viewer.