Пример #1
0
 def represent_data(self, data):
     # type: (Any) -> Any
     if self.ignore_aliases(data):
         self.alias_key = None
     else:
         self.alias_key = id(data)
     if self.alias_key is not None:
         if self.alias_key in self.represented_objects:
             node = self.represented_objects[self.alias_key]
             # if node is None:
             #     raise RepresenterError(
             #          "recursive objects are not allowed: %r" % data)
             return node
         # self.represented_objects[alias_key] = None
         self.object_keeper.append(data)
     data_types = type(data).__mro__
     if PY2:
         # if type(data) is types.InstanceType:
         if isinstance(data, types.InstanceType):
             data_types = get_classobj_bases(
                 data.__class__) + list(data_types)
     if data_types[0] in self.yaml_representers:
         node = self.yaml_representers[data_types[0]](self, data)
     else:
         for data_type in data_types:
             if data_type in self.yaml_multi_representers:
                 node = self.yaml_multi_representers[data_type](self, data)
                 break
         else:
             if None in self.yaml_multi_representers:
                 node = self.yaml_multi_representers[None](self, data)
             elif None in self.yaml_representers:
                 node = self.yaml_representers[None](self, data)
             else:
                 node = ScalarNode(None, text_type(data))
     # if alias_key is not None:
     #     self.represented_objects[alias_key] = node
     return node
Пример #2
0
 def represent_data(self, data):
     # type: (Any) -> Any
     if self.ignore_aliases(data):
         self.alias_key = None
     else:
         self.alias_key = id(data)
     if self.alias_key is not None:
         if self.alias_key in self.represented_objects:
             node = self.represented_objects[self.alias_key]
             # if node is None:
             #     raise RepresenterError(
             #          "recursive objects are not allowed: %r" % data)
             return node
         # self.represented_objects[alias_key] = None
         self.object_keeper.append(data)
     data_types = type(data).__mro__
     if PY2:
         # if type(data) is types.InstanceType:
         if isinstance(data, types.InstanceType):
             data_types = get_classobj_bases(data.__class__) + list(data_types)
     if data_types[0] in self.yaml_representers:
         node = self.yaml_representers[data_types[0]](self, data)
     else:
         for data_type in data_types:
             if data_type in self.yaml_multi_representers:
                 node = self.yaml_multi_representers[data_type](self, data)
                 break
         else:
             if None in self.yaml_multi_representers:
                 node = self.yaml_multi_representers[None](self, data)
             elif None in self.yaml_representers:
                 node = self.yaml_representers[None](self, data)
             else:
                 node = ScalarNode(None, text_type(data))
     # if alias_key is not None:
     #     self.represented_objects[alias_key] = node
     return node
Пример #3
0
 def represent_long(self, data):
     # type: (Any) -> Any
     return self.represent_scalar(u'tag:yaml.org,2002:int', text_type(data))