code: def copy_rec(source, dest):
      
  
      if os.path.isdir(source):
          for child in os.listdir(source):
              new_dest = os.path.join(dest, child)
              os.makedirs(new_dest, exist_ok=True)
              copy_rec(os.path.join(source, child), new_dest)
  
      elif os.path.isfile(source):
          logging.info(' Copy "{}" to "{}"'.format(source, dest))
          shutil.copy(source, dest)
  
      else:
          logging.info(' Ignoring "{}"'.format(source))
docs: Copy files between diferent directories.
  
      Copy one or more files to an existing directory. This function is
      recursive, if the source is a directory, all its subdirectories are created
      in the destination. Existing files in destination are overwrited without
      any warning.
  
      Args:
          source (str): File or directory name.
          dest (str): Directory name.
  
      Raises:
          FileNotFoundError: Destination directory doesn't exist.