def sophos_scan(this_file): my_sophos = sophos_engine() results = my_sophos.scan(PickleableFileSample.string_factory(this_file)) file_md5_hash = hashlib.md5(this_file).hexdigest().upper() found = is_hash_in_db(file_md5_hash) if found: found['user_uploads'][-1].setdefault('av_results', []).append(scan_to_dict(results, 'Sophos')) if results.infected: found['user_uploads'][-1]['detection_ratio']['infected'] += 1 found['user_uploads'][-1]['detection_ratio']['count'] += 1 data = found else: data = dict(md5=file_md5_hash) data['user_uploads'][-1].setdefault('av_results', []).append(scan_to_dict(results, 'Sophos')) db_insert(data) return data