ZuperAI-14B / toolkit /code_utils.py
Tyesee's picture
toolkit: code_utils.py
5a3532a verified
Raw History Blame Contribute Delete
2.34 kB
# -*- coding: utf-8 -*-
"""Преобразования кода — три режима в одном инструменте.
Запуск:
python code_utils.py docs <файл.py> — докстринги + README (№3)
python code_utils.py refactor <файл.py> — рефакторинг/чистка (№4)
python code_utils.py translate <файл.py> <язык> — перевод кода (№5)
Языки перевода: python, javascript, typescript, go, rust, java, cpp, csharp.
"""
import sys
from brain import pick, generate
def main():
args = sys.argv[1:]
if len(args) < 2:
print("usage: code_utils.py <docs|refactor|translate> <файл> [язык]")
sys.exit(2)
mode, path = args[0], args[1]
backend = pick()
try:
code = open(path, encoding="utf-8").read()
except Exception as e:
print(f"не прочитан: {e}")
sys.exit(1)
if mode == "docs":
prompt = (f"Сгенерируй документацию для этого кода: добавь докстринги и "
f"комментарии на русском, затем короткий README-блок (что делает, "
f"как запустить). Верни код с докстрингами, потом README.\n\n{code}")
elif mode == "refactor":
prompt = (f"Отрефактори этот код: понятные имена, упрощение, выделение "
f"повторяющегося в функции, чистота. Поведение сохрани. Верни ТОЛЬКО "
f"исправленный код, без пояснений и без ```.\n\n{code}")
elif mode == "translate":
lang = args[2] if len(args) > 2 else "javascript"
prompt = (f"Переведи этот код на {lang}, сохранив логику и структуру. Верни "
f"ТОЛЬКО переведённый код, без пояснений и без ```.\n\n{code}")
else:
print("неизвестный режим: docs | refactor | translate")
sys.exit(2)
print(generate(backend, [{"role": "user", "content": prompt}], 2048))
if __name__ == "__main__":
main()