docs: def validate(yaml, raise_exc=True):
      """
      Validate the given YAML document and return a list of errors.
  
      :param yaml: YAML data (either a string, a stream, or pre-parsed Python dict/list)
      :type yaml: list|dict|str|file
      :param raise_exc: Whether to raise a meta-exception containing all discovered errors after validation.
      :type raise_exc: bool
      :return: A list of errors encountered.
      :rtype: list[jsonschema.exceptions.ValidationError]
      """
      data = read_yaml(yaml)
      validator = get_validator()
      # Nb: this uses a list instead of being a generator function in order to be
      # easier to call correctly. (Were it a generator function, a plain
      # `validate(..., raise_exc=True)` would not do anything.
      errors = list(validator.iter_errors(data))
      if errors and raise_exc:
          raise ValidationErrors(errors)
      return errors