code: def _random_unicode_letters(n, seed=42):
      """
      Generate a string of random unicode letters (slow).
      """
  
      def _get_more_candidates():
          return rnd.randint(0, sys.maxunicode, size=n).tolist()
  
      rnd = np.random.RandomState(seed)
      out = []
      candidates = []
  
      while len(out) < n:
          if not candidates:
              candidates = _get_more_candidates()
          ch = chr(candidates.pop())
          # XXX Do we actually care that the code points are valid?
          if unicodedata.category(ch)[0] == "L":
              out.append(ch)
      return out
  
imports: import codecs
  import decimal
  from functools import partial
  import itertools
  import sys
  import unicodedata
  import numpy
  import pyarrow
label_desc: Use image node_id 4 for calling a global function with example usage: _random_unicode_letters(n, seed) and returns: out, rnd