code: def setup_subparser(cls, subparser):
      # FIXME (derek.wang) Refactor this into a more robust command-nesting framework
      template = """\
  Available Sub-Commands:
  
  {}
  
  Examples:
  
      manage.py lookup-tables [describe-tables|get|set]
  """
      subcommands = cls._subcommands()
      set_parser_epilog(
          subparser,
          epilog=(
              template.format(
                  "\n".join(
                      [
                          "\t{command: <{pad}}{description}".format(
                              command=command,
                              pad=30,
                              # FIXME (Derek.wang)
                              #   Ryan suggested that we could implement a __str__ or __repr__ function
                              #   for each of the CLICommand classes
                              description=subcommand.description,
                          )
                          for command, subcommand in subcommands.items()
                      ]
                  )
              )
          ),
      )
  
      lookup_tables_subparsers = subparser.add_subparsers()
  
      for subcommand in subcommands.values():
          subcommand.setup_subparser(lookup_tables_subparsers)
  
imports: import copy
  import json
  from streamalert.shared.logger import get_logger
  from streamalert.shared.lookup_tables.core import LookupTables
  from streamalert.shared.lookup_tables.utils import LookupTablesMagic
  from streamalert_cli.utils import CLICommand, generate_subparser, set_parser_epilog
label_desc: Use image node_id 1 for calling the LookupTablesCommand obj's underlying member method code with example usage: obj.setup_subparser(cls, subparser) without return types