docs: def deploy(files_list: typing.List[tuple]):
      """
      Iterates through the specified files_list and copies or writes each entry
      depending on whether its a file copy entry or a file write entry.
  
      :param files_list:
          A list of file write entries and file copy entries
      """
      def deploy_entry(entry):
          if not entry:
              return
  
          if hasattr(entry, 'source') and hasattr(entry, 'destination'):
              return copy(entry)
  
          if hasattr(entry, 'path') and hasattr(entry, 'contents'):
              return write(entry)
  
          raise ValueError('Unrecognized deployment entry {}'.format(entry))
  
      return [deploy_entry(f) for f in files_list]