code: def copy(src, dst):
      
      try:
          shutil.copytree(src, dst)
      except OSError as exc:
          if exc.errno == errno.ENOTDIR:
              shutil.copy(src, dst)
          else:
              raise
docs: Handle the copying of a file or directory.
  
      The destination basedir _must_ exist.
  
      :param src: A string containing the path of the source to copy.  If the
       source ends with a '/', will become a recursive directory copy of source.
      :param dst: A string containing the path to the destination.  If the
       destination ends with a '/', will copy into the target directory.
      :return: None