code: def setup():
      clear_terminal()
      display_serpent_logo()
  
      print("")
      print("Serpent.AI Setup")
      print("")
  
      data_path = _get_data_path()
      source_path = pathlib.Path(__file__).parent
  
      if data_path.exists():
          confirm = input(
              """It appears this machine has already been set up to use Serpent.AI.
  Do you want to continue and remove all previous data? 
  (One of: 'YES', 'NO') """
          )
  
          if confirm.lower() != "yes":
              return
  
          print("")
          print("Removing previous data...")
          print("")
  
          shutil.rmtree(data_path, ignore_errors=True)
  
      print("Creating Serpent.AI data directory...")
      data_path.mkdir()
  
      print("Populating Serpent.AI data directory...")
  
      data_path.joinpath("plugins/games").mkdir(
          parents=True, exist_ok=True
      )
      data_path.joinpath("plugins/game_agents").mkdir(
          parents=True, exist_ok=True
      )
      data_path.joinpath("plugins/rl_agents").mkdir(
          parents=True, exist_ok=True
      )
  
      data_path.joinpath("game_agents").mkdir()
  
      # TODO: Also copy bundled official plugins once we have them
  
      shutil.copy(
          source_path.joinpath("serpent/config/config.json"),
          data_path.joinpath("config.json"),
      )
  
      print("")
      print("Serpent.AI Setup Complete!")
  
imports: import warnings
  import os
  import pathlib
  import shutil
  import subprocess
  import click
  from serpent.utilities import clear_terminal, display_serpent_logo, is_windows, is_linux
label_desc: Use image node_id 1 for calling a global function with example usage: setup() without return types