code: def build_parser_pipes(
      lang, models, package="default", foundation_cache=None
  ):
      """
      Build separate pipelines for each parser model we want to use
  
      It is highly recommended to pass in a FoundationCache to reuse bottom layers
      """
      parser_pipes = []
      for model_name in models.split(","):
          if os.path.exists(model_name):
              # if the model name exists as a file, treat it as the path to the model
              pipe = stanza.Pipeline(
                  lang,
                  processors="constituency",
                  package=package,
                  constituency_model_path=model_name,
                  constituency_pretagged=True,
                  foundation_cache=foundation_cache,
              )
          else:
              # otherwise, assume it is a package name?
              pipe = stanza.Pipeline(
                  lang,
                  processors={"constituency": model_name},
                  constituency_pretagged=True,
                  package=None,
                  foundation_cache=foundation_cache,
              )
          parser_pipes.append(pipe)
      return parser_pipes
  
file_path: stanza/stanza/utils/datasets/constituency/selftrain.py
imports: import logging
  import os
  import random
  import re
  import stanza
  from stanza.models.common import utils
  from stanza.models.common.bert_embedding import TextTooLongError
  from stanza.utils.get_tqdm import get_tqdm
label_desc: Use image node_id 5 for calling a global function with example usage: build_parser_pipes(lang, models, package, foundation_cache) and returns: parser_pipes