code: def make_pos_and_tag(
      tag: str, sep: str = ",", return_mode: Optional[str] = None
  ) -> Tuple[str, Union[str, list, dict, tuple]]:
      """
      Args:
          tag: the part-of-speech tag
          sep: the separator between part-of-speech tag and grammatical features
          return_mode: the type of return value, can be None, list, dict or sorted_items
      Returns:
          the part-of-speech label and grammatical features in required format
      """
      if tag.endswith(" _"):
          tag = tag[:-2]
      if sep in tag:
          pos, tag = tag.split(sep, maxsplit=1)
      else:
          pos, tag = tag, ("_" if return_mode is None else "")
      if return_mode in ["dict", "list", "sorted_items"]:
          tag = tag.split("|") if tag != "" else []
          if return_mode in ["dict", "sorted_items"]:
              tag = dict(tuple(elem.split("=")) for elem in tag)
              if return_mode == "sorted_items":
                  tag = tuple(sorted(tag.items()))
      return pos, tag
  
file_path: DeepPavlov/deeppavlov/models/morpho_syntax_parser/syntax_parsing.py
imports: from typing import List, Optional, Tuple, Union
  from deeppavlov.core.common.registry import register
  from deeppavlov.core.models.component import Component
label_desc: Use image node_id 1 for calling a global function with example usage: make_pos_and_tag(tag, sep, return_mode) and returns: pos,  tag