diff options
Diffstat (limited to 'representer.py')
-rw-r--r-- | representer.py | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/representer.py b/representer.py index 22cf720..9d471a2 100644 --- a/representer.py +++ b/representer.py @@ -1,9 +1,8 @@ +# coding: utf-8 + from __future__ import absolute_import from __future__ import print_function -__all__ = ['BaseRepresenter', 'SafeRepresenter', 'Representer', - 'RepresenterError', 'RoundTripRepresenter'] - try: from .error import * # NOQA from .nodes import * # NOQA @@ -26,6 +25,10 @@ else: import copy_reg as copyreg +__all__ = ['BaseRepresenter', 'SafeRepresenter', 'Representer', + 'RepresenterError', 'RoundTripRepresenter'] + + class RepresenterError(YAMLError): pass @@ -818,6 +821,17 @@ class RoundTripRepresenter(SafeRepresenter): best_style = best_style return node + def represent_dict(self, data): + """write out tag if safed on loading""" + t = data.tag.value + if t: + while t and t[0] == '!': + t = t[1:] + tag = 'tag:yaml.org,2002:' + t + else: + tag = u'tag:yaml.org,2002:map' + return self.represent_mapping(tag, data) + RoundTripRepresenter.add_representer(type(None), RoundTripRepresenter.represent_none) |