code: def put(self, destination):
          
          target = get_target_path(destination, self.localpath)
          shutil.copytree(self.localpath, target)
docs: Copy the referenced directory to this path
  
          The semantics of this command are similar to unix ``cp``: if ``destination``  already
          exists, the copied directory will be put at ``[destination] // [basename(localpath)]``. If
          it does not already exist, the directory will be renamed to this path (the parent directory
          must exist).
  
          Args:
              destination (str): path to put this directory