Re: PyYAML - Help with redefining to_yaml and multiple documents
Kirill Simonov <[email protected]>
| Newsgroups | gmane.text.yaml.general |
|---|---|
| Message-ID | <[email protected]> |
Sean wrote:
>
>
> I have a simple python class containing 2 dicts. I'd like to
> represent an instance of the class as two yaml documents, with the ---
> document start token separating the 2 dicts. I think I need to
> redefine to_yaml to do this, but I'm not really sure how to get both
> documents into the stream.
>
> import yaml
> class Info(yaml.YAMLObject):
> yaml_tag = u'Info'
> def __init__(self):
> self.firstDoc={1: 'one', 2: 'two', 3: 'three'}
> self.secondDoc={4: 'four', 5: 'five'}
>
> @classmethod
> def to_yaml(cls,dumper,data):
> return dumper.represent_mapping(tag=u'tag:yaml.org
> <http://yaml.org>,
> 2002:map',mapping=data.firstDoc)
>
> if __name__ == "__main__":
> print yaml.dump(Info(),default_flow_style=False)
>
You don't need to inherit your class from YAMLObject to do that. Just
call yaml.dump_all() and pass it a list of the dictionaries:
info = Info()
print yaml.dump_all([info.firstDoc, info.secondDoc],
default_flow_style=False)
Thanks,
Kirill
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev