def load_yaml(yaml_data, filename): """ Load YAML data extending it with line number information, nodes get a __line__ attribute """ if yaml_data is None: with open(filename, 'r') as data_file: yaml_data = data_file.read() loader = Loader(yaml_data) def compose_node(parent, index): # the line number where the previous token has ended (plus empty lines) line = loader.line node = Composer.compose_node(loader, parent, index) node.__line__ = line + 1 return node def construct_mapping(node, deep=False): mapping = Constructor.construct_mapping(loader, node, deep=deep) mapping['__line__'] = node.__line__ return mapping loader.compose_node = compose_node loader.construct_mapping = construct_mapping try: python_data = loader.get_single_data() except ParserError as error: print("YAML syntax error parsing file {} :".format(filename), file=sys.stderr) print(error, file=sys.stderr) exit(1) return python_data
def load_yaml(data): """ Load YAML data extending it with line number information, nodes get a __line__ attribute """ loader = Loader(data) def compose_node(parent, index): # the line number where the previous token has ended (plus empty lines) line = loader.line node = Composer.compose_node(loader, parent, index) node.__line__ = line + 1 return node def construct_mapping(node, deep=False): mapping = Constructor.construct_mapping(loader, node, deep=deep) mapping['__line__'] = node.__line__ return mapping loader.compose_node = compose_node loader.construct_mapping = construct_mapping data = loader.get_single_data() return data