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

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

Що змінилося після запису · 0:00

Що змінилося після запису

Workflow у відео окремо налаштовує uv і Python.

Поточний setup-uv може встановити Python через uv, тому actions/setup-python не є обов’язковим. Окремий setup-python може залишатися виправданим через runner tool cache.

setup-uv v9.0.0 перевірено 2026-07-31; точну дату появи Python management у цьому brief не встановлено.

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

Що змінилося після запису · 12:00

Версійна межа `removeprefix()` і `removesuffix()`

Ці methods додані у Python 3.9. Оскільки версію Python у metadata уроку не надано, автору треба підтвердити, що course runtime — Python 3.9 або новіший.

4. Типізація даних (str, int, float, bool) →

Python мануфактура · Програма курсу · 18:14–21:24

Власні скорочення для створення файлів

Створення Page Object постійно починається з нового Python-файлу. У Project view командою `⌘N` відкривається меню `New`, яке можна фільтрувати простим набором `Python` і вибрати `Python File` або `Python Package` без мишки. Щоб скоротити шлях ще більше, у `Settings → Keymap` знайдено відповідні дії й призначено власні комбінації: одну для Python-файлу, іншу для Python-пакета. Конкретні клавіші не є універсальним стандартом — їх слід обирати під власну ОС і перевіряти на конфлікти в keymap. У меню створення також видно вбудовані шаблони на кшталт Python unit test. Вони демонструють наступний рівень автоматизації: IDE може створювати не порожній файл, а одразу потрібну початкову структуру.

Майструємо IDE під себе →

Python мануфактура · Програма курсу · 5:43–6:51

Перевірка Python-інтерпретатора

У налаштуваннях проєкту потрібно відкрити список Python Interpreters і перевірити шлях до інтерпретатора. Якщо Python встановлено через Homebrew, шлях зазвичай вказуватиме на його каталог, а не на випадково завантажену копію. На одному комп’ютері можуть співіснувати кілька версій Python. Тому важливо не лише мати Python у системі, а й переконатися, що PyCharm прив’язав проєкт до потрібної версії та середовища.

1. Налаштування PyCharm, JetBrains Toolbox, створення проєкту та структура проектів →

Python мануфактура · Програма курсу · 4:18–7:54

Структура тестів і правила іменування

Тести зручно тримати в окремому Python package, а не у випадковій директорії. Package містить `__init__.py`, що явно позначає Python-структуру. Для автоматичного виявлення pytest файл і тестова функція мають відповідати домовленостям іменування, наприклад: ```python def test_open_home_page(): ... ``` Назви Python-файлів, функцій і змінних записуються у `snake_case`. Підкреслення PyCharm та індикатор проблем у правому верхньому куті не варто ігнорувати: вони часто показують синтаксичну або типізаційну помилку ще до запуску.

2. Перший автотест на Python з Playwright →

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

Встановлення інструментів через пакетні менеджери

Автор радить не завантажувати Python та інші інструменти вручну з випадкових сторінок завантаження. На macOS для цього використовується Homebrew, а на Windows — Chocolatey або Windows Package Manager. Такий підхід спрощує подальші оновлення та контроль встановлених версій. Для macOS базова команда має вигляд: ```bash brew install python ``` Після виконання команди потрібно перевірити, що встановилась стабільна версія Python і що саме цей інтерпретатор використовуватиметься у проєкті.

1. Налаштування PyCharm, JetBrains Toolbox, створення проєкту та структура проектів →

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

Структура `src` і Python package

Для експериментів створюється `src` і окремий Python package. У класичному package файл `__init__.py` явно позначає директорію як пакет для інструментів і імпортів. Сучасний Python також підтримує namespace packages без `__init__.py`, але явний пакет часто передбачуваніший для навчального проєкту. Експерименти з типами відокремлюються від тестів: короткий файл можна запускати напряму, щоб перевірити перетворення або метод перед вбудовуванням у сценарій.

4. Типізація даних (str, int, float, bool) →

Python мануфактура · Сесії: AMA та PMP · 23:01–25:36

Access modifiers і зближення мов

Java і C# формально перевіряють `public`, `private` та `protected`, тоді як Python використовує переважно conventions. Водночас суворіші мови скорочують boilerplate, а Python і JavaScript додають type hints та інструменти статичного аналізу. Python annotations допомагають IDE й type checker, але самі по собі не перетворюють Python на статично типізовану мову та не гарантують runtime-перевірку. Їхня користь — ранній зворотний зв’язок і краща навігація по API.

__init__, self, page та принципи ООП →

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

Віртуальне середовище й залежності

PyCharm зазвичай створює для нового Python-проєкту окреме віртуальне середовище `.venv`. Воно ізолює версію Python і бібліотеки конкретного проєкту від інших проєктів на комп’ютері. У вбудованому терміналі активне середовище позначається префіксом на кшталт `(.venv)`. Термінал можна відкрити через меню дій або гарячою клавішею (`Option+F12` на macOS чи `Alt+F12` у відповідній розкладці на Windows). Для інтеграції Playwright із pytest встановлюється пакет: ```bash pip install pytest-playwright ``` Плагін надає готові pytest-фікстури, зокрема `page`, і бере на себе створення браузера, контексту та сторінки для тесту.

2. Перший автотест на Python з Playwright →

Python мануфактура · Сесії: AMA та PMP · 0:00–2:45

Локальні пакети й ізоляція проєктів

Мови й екосистеми мають власні package managers або build tools: pip, npm, Maven, Gradle та інші. Вони завантажують бібліотеки з центральних репозиторіїв і можуть кешувати їх локально, але залежності конкретного проєкту визначаються окремо. Python virtual environment ізолює бібліотеки одного проєкту від іншого. На одному комп’ютері можуть співіснувати робочі й особисті репозиторії з різними версіями Playwright, pytest та інших пакетів. Конфлікт можливий, якщо запустити код не тим глобальним Python або неправильно вибрати interpreter. Самі залежності коректно створених `venv` не повинні впливати на сусідні проєкти.

Як працює проєктний білдер, ізоляція залежностей і впровадження нових інструментів →

Python мануфактура · Сесії: AMA та PMP · 8:16–11:51

Для чого потрібен `__init__.py`

Наявність `__init__.py` робить директорію звичайним Python package і може визначати його зручний публічний API через imports або `__all__`. Це допомагає IDE, імпортам і читачеві зрозуміти межу модуля. Сучасний Python також підтримує namespace packages без `__init__.py`, тому файл не є абсолютною вимогою для кожної імпортованої директорії. У навчальному проєкті явний package зазвичай простіший і передбачуваніший.

__init__, self, page та принципи ООП →

Python мануфактура · Програма курсу · 9:00–13:00

Пошук проєкту й структура Python-тесту

Картку проєкту шукають як заголовок через `get_by_role("heading", name=target_project)`. Відео порівнює це з CSS-пошуком на кшталт `ul h3`: семантичний варіант зазвичай чіткіше пояснює, що саме очікує тест. Окремо показано, що блоки Python визначає відступ. Положення курсора й відступи впливають на те, чи IDE запускає одну тестову функцію, чи весь файл. Після двокрапки тіло функції має бути послідовно відформатоване.

1. Рефакторинг та оптимізація, KISS, DRY, DAMP, YAGNI →
Запитати в чаті про «Python» →