code: def build_widget(arc_root):
      js_dir = os.path.join(
          arc_root,
          "catboost",
          "python-package",
          "catboost",
          "widget",
          "js",
      )
      subprocess.check_call(
          '"{}" -m pip install -U jupyterlab'.format(sys.executable),
          shell=True,
          cwd=js_dir,
      )
      subprocess.check_call("yarn clean", shell=True, cwd=js_dir)
      subprocess.check_call("yarn install", shell=True, cwd=js_dir)
      subprocess.check_call("yarn build", shell=True, cwd=js_dir)
      # workaround for https://github.com/yarnpkg/yarn/issues/6685
      for directory in glob.glob(
          os.path.join(tempfile.gettempdir(), "yarn--*")
      ):
          shutil.rmtree(directory, ignore_errors=True)
  
imports: from __future__ import print_function
  import glob
  import subprocess
  import shutil
  import os
  import stat
  import sys
  import platform
  import tempfile
  import hashlib
  from base64 import urlsafe_b64encode
  from argparse import ArgumentParser
  from enum import Enum
label_desc: Use image node_id 13 for calling a global function with example usage: build_widget(arc_root) without return types