docs: def copy_single(src, dst, overwrite=True, verbose=True, deeplink=True,
                  dryrun=False):
      r"""
      Args:
          src (str): file or directory to copy
          dst (str): directory or new file to copy to
  
      Copies src file or folder to dst.
  
      If src is a folder this copy is recursive.
      """
      try:
          if exists(src):
              if not isdir(src) and isdir(dst):
                  # copying file to directory
                  dst = join(dst, basename(src))
              if exists(dst):
                  if overwrite:
                      prefix = 'C+O'
                      if verbose:
                          print('[util_path] [Copying + Overwrite]:')
                  else:
                      prefix = 'Skip'
                      if verbose:
                          print('[%s] ->%s' % (prefix, dst))
                      return
              else:
                  prefix = 'C'
                  if verbose:
                      if dryrun:
                          print('[util_path] [DryRun]: ')
                      else:
                          print('[util_path] [Copying]: ')
              if verbose:
                  print('[%s] | %s' % (prefix, src))
                  print('[%s] ->%s' % (prefix, dst))
              if not dryrun:
                  if not deeplink and islink(src):
                      linkto = os.readlink(src)
                      symlink(linkto, dst)
                  elif isdir(src):
                      print('isdir')
                      shutil.copytree(src, dst)
                  else:
                      shutil.copy2(src, dst)
          else:
              prefix = 'Miss'
              if verbose:
                  print('[util_path] [Cannot Copy]: ')
                  print('[%s] src=%s does not exist!' % (prefix, src))
                  print('[%s] dst=%s' % (prefix, dst))
      except Exception as ex:
          from utool import util_dbg
          util_dbg.printex(ex, 'Error copying single', keys=['src', 'dst'])
          raise