code: def skip_until(
      src: str,
      pos: Pos,
      expect: str,
      *,
      error_on: frozenset[str],
      error_on_eof: bool,
  ) -> Pos:
      try:
          new_pos = src.index(expect, pos)
      except ValueError:
          new_pos = len(src)
          if error_on_eof:
              raise suffixed_err(
                  src, new_pos, f"Expected {expect!r}"
              ) from None
  
      if not error_on.isdisjoint(src[pos:new_pos]):
          while src[pos] not in error_on:
              pos += 1
          raise suffixed_err(
              src, pos, f"Found invalid character {src[pos]!r}"
          )
      return new_pos
  
imports: from __future__ import annotations
  from collections.abc import Iterable
  import string
  from types import MappingProxyType
  from typing import Any, BinaryIO, NamedTuple
  from ._re import RE_DATETIME, RE_LOCALTIME, RE_NUMBER, match_to_datetime, match_to_localtime, match_to_number
  from ._types import Key, ParseFloat, Pos
label_desc: Use image node_id 4 for calling a global function with example usage: skip_until(src, pos, expect) and returns: new_pos