def download_from_host(self, source, output_directory, filename):
result = self._run_command(<EOL>["<STR_LIT>", source["<STR_LIT:url>"], "<STR_LIT>",<EOL>output_directory, "<STR_LIT>"],<EOL>stderr=open("<STR_LIT>", "<STR_LIT:w>")<EOL>)<EOL>result['<STR_LIT>'] = source['<STR_LIT>']<EOL>if '<STR_LIT:error>' in result:<EOL><INDENT>return result<EOL><DEDENT>temporary_filename = self.parse_output(<EOL>result['<STR_LIT>'], result['<STR_LIT>'])<EOL>result['<STR_LIT:filename>'] = os.path.join(output_directory, filename)<EOL>result.pop('<STR_LIT>')<EOL>os.rename(temporary_filename, result['<STR_LIT:filename>'])<EOL>return result<EOL>
Download a file from a given host.

        This method renames the file to the given string.

        :param source: Dictionary containing information about host.
        :type source: dict
        :param output_directory: Directory to place output in.
        :type output_directory: str
        :param filename: The filename to rename to.
        :type filename: str
        :returns: Dictionary with information about downloaded file.
        :rtype: dict