/
liquid-g
/
liquid-code
Обзор
Документация
Войти
/
liquid-g
/
liquid-code
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/liquidcode/commands/make/validator.py
60 строк
2 KB
User
0.3.0-RC - Добавлена система валидации (Validator, базовые валидаторы, интеграция с ArgumentResolver, генератор `make:validator`)
04 июл 2026, 13:30
04 июл 2026, 13:30
6b33e13
Код
Авторство
О чём код?
""" Генератор валидаторов для LiquidCode. Команда: lcc make:validator <name> [--directory DIR] [--force] [--no-interactive] """ import argparse from ..base import generate_from_template, TemplateError, normalize_class_name def configure_parser(subparser: argparse.ArgumentParser) -> None: subparser.add_argument( 'name', nargs='?', help='Имя валидатора (например, User)' ) subparser.add_argument( '--directory', default='src/Validator', help='Целевая директория (по умолчанию: src/Validator)' ) subparser.add_argument( '--force', action='store_true', help='Перезаписать файл, если он существует' ) subparser.add_argument( '--no-interactive', action='store_true', help='Отключить интерактивный режим (имя должно быть передано через аргумент)' ) def run(args: argparse.Namespace) -> None: try: name = args.name if not name and not args.no_interactive: name = input("Введите имя валидатора (например, User): ").strip() if not name: print("❌ Имя не может быть пустым") return normalized_name = normalize_class_name(name, suffix='Validator') # Обновляем args.name для generate_from_template args.name = normalized_name created = generate_from_template( template_name='validator', args=args, extra_kwargs={}, default_filename='{name}Validator.py', default_dir='src/Validator', ) if created: print(f"✅ Создан валидатор: {normalized_name}") else: print("⚠️ Файл уже существует. Используйте --force для перезаписи.") except (TypeError, ValueError, TemplateError, IOError) as e: print(f"❌ Ошибка: {e}")