本文整理汇总了Python中yaml.constructor.SafeConstructor类的典型用法代码示例。如果您正苦于以下问题:Python SafeConstructor类的具体用法?Python SafeConstructor怎么用?Python SafeConstructor使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了SafeConstructor类的18个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: __init__
def __init__(self, stream):
Reader.__init__(self, stream)
Scanner.__init__(self)
Parser.__init__(self)
Composer.__init__(self)
SafeConstructor.__init__(self)
Resolver.__init__(self)
开发者ID:iModels,项目名称:simgen,代码行数:7,代码来源:marked_yaml.py
示例2: __init__
def __init__(self, stream):
Reader.__init__(self, stream)
Scanner12.__init__(self)
Parser.__init__(self)
Composer.__init__(self)
# PKM2014 - uses SafeConstructor instead of Constructor. This should make no
# difference, because "Is it YAML?" only gets as far as the composition stage,
# but - well: it reduces the risk of something bad happening.
# Constructor.__init__(self)
SafeConstructor.__init__(self)
Resolver.__init__(self)
开发者ID:peterkmurphy,项目名称:isityaml,代码行数:13,代码来源:views.py
示例3: __init__
def __init__(self):
self.add_multi_constructor("!vol/", self.__class__.vol_constructor)
self.add_multi_constructor("!type/", self.__class__.type_constructor)
self.add_constructor(
"!include", self.__class__.include_file_constructor)
self.add_constructor(
"!include_merge", self.__class__.include_merge_constructor)
self.add_constructor(
"!include_dir_file_mapped",
self.__class__.include_dir_file_mapped_constructor)
self.add_constructor("!env_var", self.__class__.env_var_constructor)
self.add_constructor("!path", self.__class__.path_constructor)
SafeConstructor.__init__(self)
开发者ID:lennart-k,项目名称:HomeControl,代码行数:14,代码来源:yaml_loader.py
示例4: construct_yaml_map
def construct_yaml_map(self, node):
"""
Return a node class representing a line-marked dictionary.
"""
obj, = SafeConstructor.construct_yaml_map(self, node)
return DictNode(obj, node.start_mark, node.end_mark)
开发者ID:wtpayne,项目名称:hiai,代码行数:7,代码来源:marked_yaml.py
示例5: construct_yaml_seq
def construct_yaml_seq(self, node):
"""
Return a node class representing a line-marked sequence.
"""
obj, = SafeConstructor.construct_yaml_seq(self, node)
return ListNode(obj, node.start_mark, node.end_mark)
开发者ID:wtpayne,项目名称:hiai,代码行数:7,代码来源:marked_yaml.py
示例6: construct_yaml_str
def construct_yaml_str(self, node):
"""
Return a node class representing a line-marked string.
"""
obj = SafeConstructor.construct_scalar(self, node)
assert da.util.is_string(obj)
return StringNode(obj, node.start_mark, node.end_mark)
开发者ID:wtpayne,项目名称:hiai,代码行数:8,代码来源:marked_yaml.py
示例7: construct_yaml_str
def construct_yaml_str(self, node):
obj = SafeConstructor.construct_yaml_str(self, node)
try:
obj = str(obj)
except UnicodeEncodeError:
raise DSLParsingInputTypeException(
ERROR_INVALID_CHARS,
'illegal characters in line: {0}, column: {1}. '
'Only valid ascii chars are supported.'.format(
node.start_mark.line, node.start_mark.column))
return self._holder(obj, node)
开发者ID:cloudify-cosmo,项目名称:cloudify-dsl-parser,代码行数:11,代码来源:yaml_loader.py
示例8: construct_mapping
def construct_mapping(self, node, deep=False):
if not isinstance(node, yaml.nodes.MappingNode):
raise ConstructorError(
None, None,
"expected a mapping node, but found %s" % node.id,
node.start_mark)
keys = set([])
for key_node, value_node in node.value:
key = self.construct_object(key_node, deep=deep)
if key in keys:
raise ConstructorError(
"while constructing a mapping", node.start_mark,
"found duplicate key (%s)" % key, key_node.start_mark)
keys.add(key)
return SafeConstructor.construct_mapping(self, node, deep)
开发者ID:digitalsatori,项目名称:maestro-ng,代码行数:15,代码来源:loader.py
示例9: construct_yaml_float
def construct_yaml_float(self, node):
obj = SafeConstructor.construct_scalar(self, node)
return float_node(obj, node.start_mark, node.end_mark)
开发者ID:opencord,项目名称:cord,代码行数:3,代码来源:markedyaml.py
示例10: construct_yaml_bool
def construct_yaml_bool(self, node):
obj = SafeConstructor.construct_yaml_bool(self, node)
return int_node(obj, node.start_mark, node.end_mark)
开发者ID:opencord,项目名称:cord,代码行数:3,代码来源:markedyaml.py
示例11: construct_yaml_str
def construct_yaml_str(self, node):
obj = SafeConstructor.construct_scalar(self, node)
assert isinstance(obj, unicode)
return unicode_node(obj, node.start_mark, node.end_mark)
开发者ID:opencord,项目名称:cord,代码行数:4,代码来源:markedyaml.py
示例12: construct_yaml_seq
def construct_yaml_seq(self, node):
obj, = SafeConstructor.construct_yaml_seq(self, node)
return list_node(obj, node.start_mark, node.end_mark)
开发者ID:opencord,项目名称:cord,代码行数:3,代码来源:markedyaml.py
示例13: construct_yaml_map
def construct_yaml_map(self, node):
obj, = SafeConstructor.construct_yaml_map(self, node)
return self._holder(obj, node)
开发者ID:GigaSpaces-ProfessionalServices,项目名称:cloudify-dsl-parser,代码行数:3,代码来源:yaml_loader.py
示例14: construct_yaml_timestamp
def construct_yaml_timestamp(self, node):
obj = SafeConstructor.construct_yaml_timestamp(self, node)
return self._holder(obj, node)
开发者ID:GigaSpaces-ProfessionalServices,项目名称:cloudify-dsl-parser,代码行数:3,代码来源:yaml_loader.py
示例15: construct_yaml_binary
def construct_yaml_binary(self, node):
obj = SafeConstructor.construct_yaml_binary(self, node)
return self._holder(obj, node)
开发者ID:GigaSpaces-ProfessionalServices,项目名称:cloudify-dsl-parser,代码行数:3,代码来源:yaml_loader.py
示例16: __init__
def __init__(self, filename):
SafeConstructor.__init__(self)
self.filename = filename
开发者ID:GigaSpaces-ProfessionalServices,项目名称:cloudify-dsl-parser,代码行数:3,代码来源:yaml_loader.py
示例17: construct_yaml_map_with_ordered_dict
value = self.construct_object(value_node, deep=deep)
mapping[key] = value
return mapping
BaseConstructor.construct_mapping = construct_ordered_mapping
def construct_yaml_map_with_ordered_dict(self, node):
data = OrderedDict()
yield data
value = self.construct_mapping(node)
data.update(value)
for t in [u'tag:yaml.org,2002:map', u'tag:yaml.org,2002:omap']:
SafeConstructor.add_constructor( t, construct_yaml_map_with_ordered_dict )
Constructor.add_constructor( t, construct_yaml_map_with_ordered_dict )
yaml.add_constructor( t, construct_yaml_map_with_ordered_dict )
def represent_ordered_mapping(self, tag, mapping, flow_style=None):
value = []
node = yaml.MappingNode(tag, value, flow_style=flow_style)
best_style = True
if self.alias_key is not None:
self.represented_objects[self.alias_key] = node
if hasattr(mapping, 'items'):
mapping = list(mapping.items())
开发者ID:dsc,项目名称:py-lessly,代码行数:30,代码来源:yaml_omap.py
示例18: parse
def parse(self, content, **kwargs):
""" Parses the given YAML content to create stringset and template
Steps are:
1. Load yaml content using our custom loader TxYamlLoader that
in addition to the value for each key notes the `start` and
`end` index of each node in the file and some metadata.
2. Flattens the output of the loader to be a list of the form:
```
[{
'key': 'string_key1',
'value': 'string1',
'end': <end_index_of_node>,
'start': <start_index_value>,
'style': '|, >, ...'
},
...
]
```
3. Iterates over the flattened list and for each entry creates an
OpenString object, appends it to stringset and replace its value
with the template_replacement in the template.
4. Returns the (template, stringset) tuple.
"""
template = []
stringset = []
# The first argument of the add_constructor method is the tag you want
# to handle. If you provide None as an argument, all the unknown tags
# will be handled by the constructor specified in the second argument.
# We need this in order parse all unknown custom-tagged values as
# strings.
SafeConstructor.add_constructor(None,
SafeConstructor.construct_yaml_str)
yaml_data = self._load_yaml(content, loader=TxYamlLoader)
yaml_data = self._get_yaml_data_to_parse(yaml_data)
# Helper to store the processed data while parsing the file
self._parsed_data = []
self._parse_yaml_data(yaml_data, '', '')
self._parsed_data = sorted(self._parsed_data,
key=lambda node: node.get('start'))
end = 0
order = 0
for node in self._parsed_data:
start = node.get('start')
end_ = node.get('end')
key = node.get('key')
tag = node.get('tag')
value = node.get('value')
style = node.get('style')
if not value:
continue
if isinstance(value, dict) and not all(six.itervalues(value)):
continue
string_object = OpenString(
key, value, context=tag or '', flags=style, order=order,
)
stringset.append(string_object)
order += 1
template.append(u"{}{}".format(content[end:start],
string_object.template_replacement))
comment = self._find_comment(content, end, start)
string_object.developer_comment = comment
end = end_
template.append(content[end:])
template = u''.join(template)
return template, stringset
开发者ID:transifex,项目名称:openformats,代码行数:68,代码来源:yaml.py
注:本文中的yaml.constructor.SafeConstructor类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论