/
socialgraph
/
dataset
Обзор
Документация
Войти
/
socialgraph
/
dataset
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
apply/agent.py
48 строк
1 KB
socialgraph
parse
09 авг 2026, 10:22
09 авг 2026, 10:22
76cada1
Код
Авторство
О чём код?
from collections import defaultdict import pandas as pd from tools.const import get_work_dir, SRC_DIR from tools.utils import load_examples, save_examples def run(language): work_dir = get_work_dir(language) examples = load_examples(work_dir) before = {q['before']['commit'] for q in examples} answers = defaultdict(list) src = pd.read_csv(f'{SRC_DIR}/answers.csv') for i, q in src.fillna('').iterrows(): id = q['vuln_id'] if id: answers[id].append({ 'id': q['task_id'], 'state': 'before' if q['checked_commit'] in before else 'after', 'commit': q['checked_commit'], 'project': q['checked_project'], 'paths': list(set(path.strip(' ./') for path in q['files'].split(',') if path)), 'score': q['verdict'].strip() == 'vulnerable', 'cwe_ids': [cwe_id.strip() for cwe_id in q['cwe'].split(',') if cwe_id] }) print(len(answers)) for q in examples: q['answers'] = answers.get(q['id'], []) save_examples(examples, work_dir) if __name__ == '__main__': import argparse args = argparse.ArgumentParser() args.add_argument( "--language", type=str, default="java" ) args = args.parse_args() run(args.language)