summaryrefslogtreecommitdiff
path: root/representer.py
diff options
context:
space:
mode:
Diffstat (limited to 'representer.py')
-rw-r--r--representer.py20
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)