Python мануфактураJavaDesign Patterns для автоматизаторів

Терміни, нюанси та джерела

Що змінилося після запису · 32:40

Ruff naming rules треба вибирати явно

У відео Ruff описано як спільний інструмент перевірки naming і Python style.

Ruff configuration керує rule selection через lint.select/extend-select; target-version означає мінімальну підтримувану версію Python, а не обов’язково поточний interpreter.

1. Фіксаємо назви файлів, рефакторинг та оптимізація під Python, підключаємо Ruff та uv →

Практика · 0:00

Малий vertical slice рефакторингу

Оберіть один несправний або короткий тест.
Перейменуйте лише його модулі за PEP 8 та оновіть імпорти.
Запустіть Ruff і один цільовий тест, потім перегляньте diff.
Один тест проходить, Ruff не знаходить нових помилок, diff не містить сторонніх змін.

1. Фіксаємо назви файлів, рефакторинг та оптимізація під Python, підключаємо Ruff та uv →

Python мануфактура · Програма курсу · 32:40–38:05

Ruff як спільне правило якості коду

IDE inspections залежать від локальних налаштувань кожного інженера. `Ruff` переносить правила у репозиторій: перевіряє naming, невикористані імпорти, частину потенційних помилок і може форматувати код значно швидше за традиційний набір Python-інструментів. У PyCharm вмикається інтеграція Ruff, а в Actions on Save — reformat та optimize imports. Налаштування зберігаються в `ruff.toml` або секції `pyproject.toml`; версія Python у конфігурації має відповідати реальному runtime проєкту.

1. Фіксаємо назви файлів, рефакторинг та оптимізація під Python, підключаємо Ruff та uv →

Python мануфактура · Програма курсу · 14:00–20:30

Масове додавання decorators і перевірка diff

Для наявного набору Page Objects decorators додаються через project-wide search/replace. Демонстрація показує ризик такого скорочення: regex зачіпає `__init__`, properties та неправильні відступи, після чого зміни доводиться вручну чистити й додавати imports. Після механічної зміни запускаються format check і Ruff. Це обов’язкова межа безпеки для bulk edit: результат пошуку не вважається правильним, доки diff не переглянуто, код не форматується й статичні checks не проходять.

4. Allure репорт, основи та інтеграція в CI →

Python мануфактура · Програма курсу · 0:00–4:30

Створення workflow та умови запуску

Workflow починається з назви та triggers. Для перевірки змін використовується `pull_request`, для регулярного прогону — `schedule`, а `workflow_dispatch` дозволяє запустити вибраний набір вручну. Scheduled run є прийнятним компромісом, коли deployment events або сам delivery pipeline ще нестабільні, але команді вже потрібен регулярний feedback. Перша job виконує checkout репозиторію, налаштовує `uv` і Python, встановлює dependencies, запускає Ruff та format check. Checkout обов’язковий, бо runner стартує без коду проєкту.

2. Практика та написання пайплану CI/CD →

Python мануфактура · Програма курсу · 44:30–50:45

Console-like verification і README

Після міграції тест запускається через команду `uv run ...` з консолі, бо це ближче до майбутнього CI-запуску, ніж Run Configuration IDE. Треба перевірити, що виконався потрібний тест і що очікуване падіння справді належить тестовій логіці, а не відсутній залежності чи неправильному шляху. Фінальний крок — створити короткий `README` з мінімальною версією Python, установкою, командами запуску, структурою та правилами внесення змін. Commit message перевіряється вручну: він має називати реальну міграцію на `uv` і підключення Ruff, а не перелічувати випадкові деталі diff.

1. Фіксаємо назви файлів, рефакторинг та оптимізація під Python, підключаємо Ruff та uv →
Запитати в чаті про «Ruff» →