#!/usr/bin/env python3 """ Скрипт для конвертации существующих JSON тестов в новый TXT формат. Конвертирует все тесты из JSON в TXT с разделителем ================ """ import json import os import sys from pathlib import Path # Добавляем путь к исходникам, чтобы импортировать base sys.path.insert(0, str(Path(__file__).parent.parent)) from src.benchmarks.base import TEST_SEPARATOR def convert_tests(test_dir: str) -> None: """Конвертирует все тесты в указанной директории.""" test_dir_path = Path(test_dir) if not test_dir_path.exists(): print(f"❌ Директория {test_dir} не существует") return converted_count = 0 for json_file in test_dir_path.glob("*.json"): try: # Читаем JSON файл with open(json_file, "r", encoding="utf-8") as f: data = json.load(f) # Создаем имя TXT файла txt_file = test_dir_path / f"{json_file.stem}.txt" # Сохраняем в TXT формате with open(txt_file, "w", encoding="utf-8") as f: f.write(f"{data['prompt']}{TEST_SEPARATOR}{data['expected']}") converted_count += 1 print(f"✅ Конвертирован {json_file.name} в {txt_file.name}") except Exception as e: print(f"❌ Ошибка при конвертации {json_file.name}: {str(e)}") print(f"\nРезультаты конвертации:") print(f"Конвертировано тестов: {converted_count}") def main(): """Основная функция скрипта.""" import argparse parser = argparse.ArgumentParser( description="Конвертер тестовых данных из JSON в TXT формат", epilog="Примеры использования:\n" " python scripts/convert_json_to_txt.py tests/translation\n" " python scripts/convert_json_to_txt.py tests/summarization\n" " python scripts/convert_json_to_txt.py tests/codegen" ) parser.add_argument( "test_dir", type=str, help="Директория с тестами для конвертации (например: tests/translation)" ) args = parser.parse_args() print(f"🔄 Конвертирую тесты в {args.test_dir}") convert_tests(args.test_dir) print("\n✨ Готово!") if __name__ == "__main__": main()