/
liquid-g
/
liquid-code
Обзор
Документация
Войти
/
liquid-g
/
liquid-code
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop-0.4
src/liquidcode/commands/make/dto.py
60 строк
2 KB
User
0.4.13 - Request/Response DTO с генератором make:dto и полная структура документации по маршрутизации" -m "- Добавлен генератор DTO: lcc make:dto <name> с валидацией через Pydantic
06 июл 2026, 16:08
06 июл 2026, 16:08
01392a9
Код
Авторство
О чём код?
"""Генератор DTO для LiquidCode. Команда: lcc make:dto <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='Имя DTO (например, User)' ) subparser.add_argument( '--directory', default='src/DTO', help='Целевая директория (по умолчанию: src/DTO)' ) 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("Введите имя DTO (например, User): ").strip() if not name: print("[ERROR] Имя не может быть пустым") return # Нормализуем имя без суффикса DTO normalized_name = normalize_class_name(name) args.name = normalized_name created = generate_from_template( template_name='dto', args=args, extra_kwargs={}, default_filename=f'{normalized_name}DTO.py', default_dir='src/DTO', ) if created: print(f"[OK] Создан DTO: {normalized_name}DTO") else: print("[WARN] Файл уже существует. Используйте --force для перезаписи.") except (TypeError, ValueError, TemplateError, IOError) as e: print(f"[ERROR] Ошибка: {e}")