code: def add_subparser(
      self, parser: argparse._SubParsersAction
  ) -> argparse.ArgumentParser:
      description = (
          """Build a vocabulary from an experiment config file."""
      )
      subparser = parser.add_parser(
          self.name, description=description, help=description
      )
  
      subparser.add_argument(
          "param_path",
          type=str,
          help="path to an experiment config file",
      )
  
      subparser.add_argument(
          "output_path",
          type=str,
          help="path to save the vocab tar.gz file to",
      )
  
      subparser.add_argument(
          "-f",
          "--force",
          action="store_true",
          help="force write if the output_path already exists",
      )
  
      subparser.add_argument(
          "-o",
          "--overrides",
          type=str,
          default="",
          help=(
              "a json(net) structure used to override the experiment configuration, e.g., "
              "'{\"vocabulary.min_count.labels\": 10}'.  Nested parameters can be specified either"
              " with nested dictionaries or with dot syntax."
          ),
      )
  
      subparser.set_defaults(func=build_vocab_from_args)
  
      return subparser
  
file_path: allennlp/allennlp/commands/build_vocab.py
imports: import argparse
  import json
  import logging
  import os
  import tarfile
  import tempfile
  from allennlp.commands.subcommand import Subcommand
  from allennlp.common.file_utils import CacheFile
  from allennlp.common.params import Params
  from allennlp.training.util import make_vocab_from_params
label_desc: Use image node_id 1 for calling the BuildVocab obj's underlying member method code with example usage: obj.add_subparser(parser) and returns: subparser