我们从Python开源项目中,提取了以下27个代码示例,用于说明如何使用yaml.parse()。
def __init__(self, event_handler): """Initialize PyYAML event listener. Constructs internal mapping directly from event type to method on actual handler. This prevents reflection being used during actual parse time. Args: event_handler: Event handler that will receive mapped events. Must implement at least one appropriate handler method named from the values of the _EVENT_METHOD_MAP. Raises: ListenerConfigurationError if event_handler is not an EventHandler. """ if not isinstance(event_handler, EventHandler): raise yaml_errors.ListenerConfigurationError( 'Must provide event handler of type yaml_listener.EventHandler') self._event_method_map = {} for event, method in _EVENT_METHOD_MAP.iteritems(): self._event_method_map[event] = getattr(event_handler, method)
def BuildObjects(default_class, stream, loader=yaml.loader.SafeLoader): """Build objects from stream. Handles the basic case of loading all the objects from a stream. Args: default_class: Class that is instantiated upon the detection of a new document. An instance of this class will act as the document itself. stream: String document or open file object to process as per the yaml.parse method. Any object that implements a 'read()' method which returns a string document will work with the YAML parser. loader_class: Used for dependency injection. Returns: List of default_class instances parsed from the stream. """ builder = ObjectBuilder(default_class) handler = yaml_builder.BuilderHandler(builder) listener = yaml_listener.EventListener(handler) listener.Parse(stream, loader) return handler.GetResults()
def BuildSingleObject(default_class, stream, loader=yaml.loader.SafeLoader): """Build object from stream. Handles the basic case of loading a single object from a stream. Args: default_class: Class that is instantiated upon the detection of a new document. An instance of this class will act as the document itself. stream: String document or open file object to process as per the yaml.parse method. Any object that implements a 'read()' method which returns a string document will work with the YAML parser. loader_class: Used for dependency injection. """ definitions = BuildObjects(default_class, stream, loader) if len(definitions) < 1: raise yaml_errors.EmptyConfigurationFile() if len(definitions) > 1: raise yaml_errors.MultipleConfigurationFile() return definitions[0]
def run(input, conf, filepath=None): """Lints a YAML source. Returns a generator of LintProblem objects. :param input: buffer, string or stream to read from :param conf: yamllint configuration object """ if conf.is_file_ignored(filepath): return () if type(input) in (type(b''), type(u'')): # compat with Python 2 & 3 return _run(input, conf, filepath) elif hasattr(input, 'read'): # Python 2's file or Python 3's io.IOBase # We need to have everything in memory to parse correctly content = input.read() return _run(content, conf, filepath) else: raise TypeError('input should be a string or a stream')
def _GenerateEventParameters(self, stream, loader_class=yaml.loader.SafeLoader): """Creates a generator that yields event, loader parameter pairs. For use as parameters to HandleEvent method for use by Parse method. During testing, _GenerateEventParameters is simulated by allowing the harness to pass in a list of pairs as the parameter. A list of (event, loader) pairs must be passed to _HandleEvents otherwise it is not possible to pass the loader instance to the handler. Also responsible for instantiating the loader from the Loader parameter. Args: stream: String document or open file object to process as per the yaml.parse method. Any object that implements a 'read()' method which returns a string document will work. Loader: Loader class to use as per the yaml.parse method. Used to instantiate new yaml.loader instance. Yields: Tuple(event, loader) where: event: Event emitted by PyYAML loader. loader_class: Used for dependency injection. """ assert loader_class is not None try: loader = loader_class(stream) while loader.check_event(): yield (loader.get_event(), loader) except yaml.error.YAMLError, e: raise yaml_errors.EventListenerYAMLError(e)
def Parse(self, stream, loader_class=yaml.loader.SafeLoader): """Call YAML parser to generate and handle all events. Calls PyYAML parser and sends resulting generator to handle_event method for processing. Args: stream: String document or open file object to process as per the yaml.parse method. Any object that implements a 'read()' method which returns a string document will work with the YAML parser. loader_class: Used for dependency injection. """ self._HandleEvents(self._GenerateEventParameters(stream, loader_class))
def get_syntax_error(buffer): try: list(yaml.parse(buffer, Loader=yaml.BaseLoader)) except yaml.error.MarkedYAMLError as e: problem = LintProblem(e.problem_mark.line + 1, e.problem_mark.column + 1, 'syntax error: ' + e.problem) problem.level = 'error' return problem