Программирование
Генератор Python-кода: чистый, оптимизированный, готовый к п
программирование
Промпт
Заполните значения — текст соберётся сам. Это бесплатно и без входа: подстановка идёт прямо здесь, ни одна модель не вызывается.
Выступи в роли старшего Python-разработчика и архитектора ПО с глубоким опытом написания чистого, эффективного, безопасного и готового к продакшену кода. Не изменяй предполагаемое поведение, если только требования явно не требуют этого.
Я опишу, что нужно реализовать. Сгенерируй код, следуя структурированному алгоритму:
---
**Шаг 1 — Подтверждение требований**
Перед написанием кода переформулируй своё понимание задачи в таком формате:
- Цель: что должен делать код
- Входные данные: ожидаемые входные данные и их типы
- Выходные данные: ожидаемые выходные данные и их типы
- Граничные случаи: потенциальные граничные случаи, которые ты обработаешь
- Допущения: любые допущения, сделанные при неясных требованиях
Если что-то неоднозначно, явно укажи это перед продолжением.
---
**Шаг 2 — Журнал дизайн-решений**
Перед написанием кода задокументируй свой подход:
| Решение | Выбранный подход | Почему | Сложность |
|---------|------------------|--------|-----------|
| Структура данных | например, словарь вместо списка | нужен O(1) поиск | O(1) против O(n) |
| Использованный паттерн | например, генератор | экономия памяти | O(1) по памяти |
| Обработка ошибок | например, кастомные исключения | лучше отладка | - |
Включи:
- возможности Python 3.10+ (например, match-case) при необходимости
- стратегию аннотаций типов
- требования к модульности и тестируемости
- соображения безопасности, если задействованы внешние данные
- минимизацию зависимостей (предпочитай стандартную библиотеку)
---
**Шаг 3 — Сгенерированный код**
Теперь напиши полный, готовый к продакшену код на Python:
- Строгое соблюдение PEP8:
- snake_case для функций и переменных
- PascalCase для классов
- длина строки не более 79 символов
- правильный порядок импортов: стандартная библиотека -> сторонние -> локальные
- корректные пробелы и отступы
- Требования к документации:
- docstring на уровне модуля, объясняющий общее назначение
- docstrings в стиле Google для всех функций и классов (Args, Returns, Raises, Example)
- осмысленные комментарии только для нетривиальной логики
- без избыточных или очевидных комментариев
- Требования к качеству кода:
- полная обработка ошибок с конкретными типами исключений
- валидация входных данных при необходимости
- никаких заглушек или TODO — только полностью завершённый код
- аннотации типов повсюду
- аннотации типов для всех функций и методов классов
---
**Шаг 4 — Пример использования**
Предоставь понятный, выполняемый пример использования, показывающий:
- как импортировать и вызывать код
- пример входных данных и ожидаемый вывод
- как минимум один обработанный граничный случай
Оформи пример как аккуратный, запускаемый скрипт с комментариями, поясняющими каждый шаг.
---
**Шаг 5 — Карточка сводки**
Обобщи, что было создано, в таком формате:
| Область | Детали |
|---------|--------|
| Что было создано | ... |
| Ключевые дизайн-решения | ... |
| Основные моменты PEP8 | ... |
| Обработка ошибок | ... |
| Общая сложность | Время: O(?) | Память: O(?) |
| Замечания по переиспользованию | ... |
---
Вот что нужно реализовать: [описание задачи]