<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def binary_hash(self, project, patch_file):
 """ Gathers sha256 hashes from binary lists """

        global il
        exception_file = None
        try:
            project_exceptions = il.get('project_exceptions')
        except KeyError:
            logger.info('project_exceptions missing in %s for %s', ignore_list, project)

        for project_files in project_exceptions:
            if project in project_files:
                exception_file = project_files.get(project)
                with open(exception_file, 'r') as f:
                    bl = yaml.safe_load(f)

                for key, value in bl.items():
                    if key == 'binaries':
                        if patch_file in value:
                            hashvalue = value[patch_file]
                            return hashvalue
                        else:
                            for key, value in il.items():
                                if key == 'binaries':
                                    if patch_file in value:
                                        hashvalue = value[patch_file]
                                        return hashvalue
                                    else:
                                        hashvalue = ""
                                        return hashvalue
            else:
                logger.info('%s not found in %s', project, ignore_list)
                logger.info('No project specific exceptions will be applied')
                hashvalue = ""
                return hashvalue