code: def setup_logger_kwargs(
      exp_name, seed=None, data_dir=None, datestamp=False
  ):
      """
      Sets up the output_dir for a logger and returns a dict for logger kwargs.
  
      If no seed is given and datestamp is false,
  
      ::
  
          output_dir = data_dir/exp_name
  
      If a seed is given and datestamp is false,
  
      ::
  
          output_dir = data_dir/exp_name/exp_name_s[seed]
  
      If datestamp is true, amend to
  
      ::
  
          output_dir = data_dir/YY-MM-DD_exp_name/YY-MM-DD_HH-MM-SS_exp_name_s[seed]
  
      You can force datestamp=True by setting ``FORCE_DATESTAMP=True`` in
      ``spinup/user_config.py``.
  
      Args:
  
          exp_name (string): Name for experiment.
  
          seed (int): Seed for random number generators used by experiment.
  
          data_dir (string): Path to folder where results should be saved.
              Default is the ``DEFAULT_DATA_DIR`` in ``spinup/user_config.py``.
  
          datestamp (bool): Whether to include a date and timestamp in the
              name of the save directory.
  
      Returns:
  
          logger_kwargs, a dict containing output_dir and exp_name.
      """
  
      # Datestamp forcing
      datestamp = datestamp or FORCE_DATESTAMP
  
      # Make base path
      ymd_time = time.strftime("%Y-%m-%d_") if datestamp else ""
      relpath = "".join([ymd_time, exp_name])
  
      if seed is not None:
          # Make a seed-specific subfolder in the experiment directory.
          if datestamp:
              hms_time = time.strftime("%Y-%m-%d_%H-%M-%S")
              subfolder = "".join(
                  [hms_time, "-", exp_name, "_s", str(seed)]
              )
          else:
              subfolder = "".join([exp_name, "_s", str(seed)])
          relpath = osp.join(relpath, subfolder)
  
      data_dir = data_dir or DEFAULT_DATA_DIR
      logger_kwargs = dict(
          output_dir=osp.join(data_dir, relpath), exp_name=exp_name
      )
      return logger_kwargs
  
imports: from spinup.user_config import DEFAULT_DATA_DIR, FORCE_DATESTAMP, DEFAULT_SHORTHAND, WAIT_BEFORE_LAUNCH
  from spinup.utils.logx import colorize
  from spinup.utils.mpi_tools import mpi_fork, msg
  from spinup.utils.serialization_utils import convert_json
  import base64
  from copy import deepcopy
  import cloudpickle
  import json
  import numpy
  import os
  import os.path
  import psutil
  import string
  import subprocess
  from subprocess import CalledProcessError
  import sys
  from textwrap import dedent
  import time
  from tqdm import trange
  import zlib
label_desc: Use image node_id 1 for calling a global function with example usage: setup_logger_kwargs(exp_name, seed, data_dir, datestamp) and returns: logger_kwargs