Ignore:
Timestamp:
04/10/06 20:34:16 (8 years ago)
Author:
xi
Message:

Implement yaml.dump().

File:
1 edited

Legend:

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

    r116 r133  
    11 
    2 __all__ = ['BaseConstructor', 'Constructor', 'ConstructorError', 
    3     'YAMLObject', 'YAMLObjectMetaclass'] 
     2__all__ = ['BaseConstructor', 'SafeConstructor', 'Constructor', 
     3    'ConstructorError'] 
    44 
    55from error import * 
     
    155155    yaml_constructors = {} 
    156156 
    157 class Constructor(BaseConstructor): 
     157class SafeConstructor(BaseConstructor): 
    158158 
    159159    def construct_yaml_null(self, node): 
     
    333333                node.start_mark) 
    334334 
    335 Constructor.add_constructor( 
     335SafeConstructor.add_constructor( 
    336336        u'tag:yaml.org,2002:null', 
    337         Constructor.construct_yaml_null) 
    338  
    339 Constructor.add_constructor( 
     337        SafeConstructor.construct_yaml_null) 
     338 
     339SafeConstructor.add_constructor( 
    340340        u'tag:yaml.org,2002:bool', 
    341         Constructor.construct_yaml_bool) 
    342  
    343 Constructor.add_constructor( 
     341        SafeConstructor.construct_yaml_bool) 
     342 
     343SafeConstructor.add_constructor( 
    344344        u'tag:yaml.org,2002:int', 
    345         Constructor.construct_yaml_int) 
    346  
    347 Constructor.add_constructor( 
     345        SafeConstructor.construct_yaml_int) 
     346 
     347SafeConstructor.add_constructor( 
    348348        u'tag:yaml.org,2002:float', 
    349         Constructor.construct_yaml_float) 
    350  
    351 Constructor.add_constructor( 
     349        SafeConstructor.construct_yaml_float) 
     350 
     351SafeConstructor.add_constructor( 
    352352        u'tag:yaml.org,2002:binary', 
    353         Constructor.construct_yaml_binary) 
     353        SafeConstructor.construct_yaml_binary) 
    354354 
    355355if datetime_available: 
    356     Constructor.add_constructor( 
     356    SafeConstructor.add_constructor( 
    357357            u'tag:yaml.org,2002:timestamp', 
    358             Constructor.construct_yaml_timestamp) 
    359  
    360 Constructor.add_constructor( 
     358            SafeConstructor.construct_yaml_timestamp) 
     359 
     360SafeConstructor.add_constructor( 
    361361        u'tag:yaml.org,2002:omap', 
    362         Constructor.construct_yaml_omap) 
    363  
    364 Constructor.add_constructor( 
     362        SafeConstructor.construct_yaml_omap) 
     363 
     364SafeConstructor.add_constructor( 
    365365        u'tag:yaml.org,2002:pairs', 
    366         Constructor.construct_yaml_pairs) 
    367  
    368 Constructor.add_constructor( 
     366        SafeConstructor.construct_yaml_pairs) 
     367 
     368SafeConstructor.add_constructor( 
    369369        u'tag:yaml.org,2002:set', 
    370         Constructor.construct_yaml_set) 
    371  
    372 Constructor.add_constructor( 
     370        SafeConstructor.construct_yaml_set) 
     371 
     372SafeConstructor.add_constructor( 
    373373        u'tag:yaml.org,2002:str', 
    374         Constructor.construct_yaml_str) 
    375  
    376 Constructor.add_constructor( 
     374        SafeConstructor.construct_yaml_str) 
     375 
     376SafeConstructor.add_constructor( 
    377377        u'tag:yaml.org,2002:seq', 
    378         Constructor.construct_yaml_seq) 
    379  
    380 Constructor.add_constructor( 
     378        SafeConstructor.construct_yaml_seq) 
     379 
     380SafeConstructor.add_constructor( 
    381381        u'tag:yaml.org,2002:map', 
    382         Constructor.construct_yaml_map) 
    383  
    384 Constructor.add_constructor(None, 
    385         Constructor.construct_undefined) 
    386  
    387 class YAMLObjectMetaclass(type): 
    388  
    389     def __init__(cls, name, bases, kwds): 
    390         super(YAMLObjectMetaclass, cls).__init__(name, bases, kwds) 
    391         if 'yaml_tag' in kwds and kwds['yaml_tag'] is not None: 
    392             cls.yaml_constructor.add_constructor(cls.yaml_tag, cls.from_yaml) 
    393  
    394 class YAMLObject(object): 
    395  
    396     __metaclass__ = YAMLObjectMetaclass 
    397  
    398     yaml_constructor = Constructor 
    399  
    400     yaml_tag = None 
    401  
    402     def from_yaml(cls, constructor, node): 
    403         raise ConstructorError(None, None, 
    404                 "found undefined constructor for the tag %r" 
    405                 % node.tag.encode('utf-8'), node.start_mark) 
    406     from_yaml = classmethod(from_yaml) 
    407  
    408     def to_yaml(self): 
    409         assert False    # needs dumper 
    410  
     382        SafeConstructor.construct_yaml_map) 
     383 
     384SafeConstructor.add_constructor(None, 
     385        SafeConstructor.construct_undefined) 
     386 
     387class Constructor(SafeConstructor): 
     388    pass 
     389 
Note: See TracChangeset for help on using the changeset viewer.