code: def copy(srcpath, dstpath, overwrite=True):
      
      # Handle bail conditions.
      if not op.exists(srcpath):
          return False
      if not overwrite:
          if op.isfile(dstpath):
              return False
          if op.isdir(dstpath):
              chkpath = op.join(dstpath, op.basename(srcpath))
              if op.isdir(chkpath) or op.isfile(chkpath):
                  return False
      srcpath = op.abspath(srcpath)
      dstpath = op.abspath(dstpath)
  
      # Handle copying.
      if op.isdir(srcpath):
          dstdir = dstpath
          if op.isfile(dstpath):
              dstdir = op.dirname(dstpath)
          elif op.isdir(dstpath):
              # Make sure srcdir is copied INTO dstdir.
              dstdir = op.join(dstpath, op.basename(srcpath))
          makedirs(dstdir)
          for r,ds,fs in os.walk(srcpath):
              basedir = r.replace(srcpath, "").rstrip(os.sep).strip(os.sep)
              curdir = op.join(dstdir, basedir)
              makedirs(curdir)
              for f in fs:
                  if not copy(op.join(r,f), op.join(curdir, f), overwrite=overwrite):
                      return False
      elif op.isfile(srcpath):
          makedirs(dstpath)
          shutil.copy2(srcpath, dstpath)
  
      return op.exists(dstpath)
docs: Copies the file or directory at `srcpath` to `dstpath`. Returns True if
      successful, False otherwise.