code: def post(self):
      task = self.get_task_arg()
      cfg = VizSeqWebView(args.data_root, task).cfg
      task_name = self.get_query_argument("n", task)
      cfg.set_task_name(task_name)
      description = self.get_query_argument("d", "")
      cfg.set_description(description)
      cfg_metrics = self.get_query_argument("m", "")
      cfg_metrics = (
          cfg_metrics.split(",") if len(cfg_metrics) > 0 else []
      )
      cfg.set_metrics(cfg_metrics)
      tokenization = self.get_query_argument("tkn", "")
      cfg.set_tokenization(tokenization)
      self.finish(f'Task "{task}" Config updated.')
  
imports: import os
  import os.path
  import argparse
  from typing import List
  from vizseq._utils.logger import logger
  from vizseq._view import VizSeqWebView, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_NO
  from vizseq._data.zip_file import VizSeqZipFile
  from vizseq._data import get_g_translate, VizSeqGlobalConfigManager
  from vizseq._visualizers import SPAN_HIGHTLIGHT_JS
  from vizseq._utils import VizSeqJson
  from vizseq import __version__
  from tornado import web, ioloop
  from jinja2 import Environment, PackageLoader, select_autoescape
label_desc: Use image node_id 1 for calling the TaskCfgHandler obj's underlying member method code with example usage: obj.post() without return types