code: def _copy_file_or_directory(self, source, destination_directory):
      
      if os.path.isdir(source):
        for item in os.listdir(source):
          full_source = os.path.join(source, item)
          full_destination = os.path.join(destination_directory, item)
          shutil.copytree(full_source, full_destination)
      else:
        shutil.copy2(source, destination_directory)
docs: Recursively copies files from source to destination_directory.
  
      Args:
          source: source file or directory to copy into destination_directory
          destination_directory: destination directory in which to copy source