code: def _split_text_for_juman(text: str) -> Iterator[str]:
      """Juman denies long text (maybe >4096 bytes) so split text"""
      n = 1000
      if len(text) == 0:
          return
      if len(text) < n:
          yield text
          return
      for sep in _SEPS:
          if sep in text:
              i = text.index(sep)
              head, tail = text[: i + 1], text[i + 1 :]
              if len(head) < n:
                  yield from _split_text_for_juman(head)
                  yield from _split_text_for_juman(tail)
                  return
      # If any separator is not found in text, split roughly
      yield text[:n]
      yield from _split_text_for_juman(text[n:])
  
imports: from dataclasses import dataclass
  from camphr.doc import Doc, UserDataProto
  import itertools
  import distutils.spawn
  from typing import Any, Callable, Dict, Iterator, List, Optional
  from typing_extensions import Literal
  from camphr.serde import SerializationMixin
label_desc: Use image node_id 3 for calling a global function with example usage: _split_text_for_juman(text) without return types