/
liquid-g
/
liquid-code
Обзор
Документация
Войти
/
liquid-g
/
liquid-code
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop-0.2.0
src/liquidcode/commands/make/middleware.py
74 строки
3 KB
User
ci: настроен Black и flake8 для автоматического форматирования кода
04 июл 2026, 08:14
04 июл 2026, 08:14
4778ed6
Код
Авторство
О чём код?
""" Генератор middleware для LiquidCode. Команда: lcc make:middleware <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: """ Добавляет аргументы для команды make:middleware. Args: subparser: Объект ArgumentParser для команды. """ subparser.add_argument("name", nargs="?", help="Имя middleware (например, Auth)") subparser.add_argument( "--directory", default="src/Middleware", help="Целевая директория (по умолчанию: src/Middleware)", ) subparser.add_argument( "--force", action="store_true", help="Перезаписать файл, если он существует", ) subparser.add_argument( "--no-interactive", action="store_true", help="Отключить интерактивный режим (имя должно быть передано через аргумент)", ) def run(args: argparse.Namespace) -> None: """ Выполняет команду make:middleware. Args: args: Объект аргументов командной строки. """ try: # 1. Если имя не передано и не отключен интерактив — запрашиваем name = args.name if not name and not args.no_interactive: name = input("Введите имя middleware (например, Auth): ").strip() if not name: print("❌ Имя не может быть пустым") return # 2. Нормализуем имя (убираем дублирующий суффикс Middleware) normalized_name = normalize_class_name(name, suffix="Middleware") # 3. Генерируем файл created = generate_from_template( template_name="middleware", args=args, extra_kwargs={}, default_filename="{name}Middleware.py", default_dir="src/Middleware", ) if created: print(f"✅ Создан middleware: {normalized_name}Middleware") else: print("⚠️ Файл уже существует. Используйте --force для перезаписи.") except (TypeError, ValueError, TemplateError, IOError) as e: print(f"❌ Ошибка: {e}")