docs: def build_node_key_search(query, key) -> NodePredicate:
      """Build a node filter for nodes whose values for the given key are superstrings of the query string(s).
  
      :param query: The query string or strings to check if they're in the node name
      :type query: str or iter[str]
      :param str key: The key for the node data dictionary. Should refer only to entries that have str values
      """
      if isinstance(query, str):
          return build_node_data_search(key, lambda s: query.lower() in s.lower())
  
      if isinstance(query, Iterable):
          return build_node_data_search(key, lambda s: any(q.lower() in s.lower() for q in query))
  
      raise TypeError('query is wrong type: %s', query)