Check to see if the download has previously been completed. Run the download if necessary. Create the
        completefile if required
        :param output_file: Name and path of local copy of downloaded target
        :param target_url: URL of the target to download
        :param database_path: Path on the local filesystem in which the file is to be downloaded
        :param complete: Boolean to determine whether a completefile should be created

def database_download(self, output_file, target_url, database_path, complete=False):
        """
        Check to see if the download has previously been completed. Run the download if necessary. Create the
        completefile if required
        :param output_file: Name and path of local copy of downloaded target
        :param target_url: URL of the target to download
        :param database_path: Path on the local filesystem in which the file is to be downloaded
        :param complete: Boolean to determine whether a completefile should be created
        """
        # Create a file to store the logs; it will be used to determine if the database was downloaded and set-up
        completefile = os.path.join(database_path, 'complete')
        if not os.path.isfile(completefile):
            self.url_request(target_url=target_url,
                             output_file=output_file)
            if complete:
                # Create the completefile
                with open(completefile, 'w') as complete:
                    complete.write('')