← До фільтрів та технологій

← До списку лабораторних по Python

Python Лабораторна 37: Динамічне завантаження модулів

Технологія: Python

Номер лабораторної: 37 · Рівень: middle

Тема: Проста система плагінів

Повний опис / сценарій лабораторної:

Meta: навчитися будувати розширювані системи де нові можливості додаються через плагіни.



Krok 1. Створити каталог src/plugins з файлом __init__.py.

Komandi: cd ~/python_lab1/src; mkdir -p plugins; touch plugins/__init__.py



Krok 2. Створити кілька модулів плагінів наприклад echo.py і upper.py з функцією run.



Krok 3. Написати менеджер плагінів app/plugins37.py який знаходить модулі у каталозі plugins.

Poyasnennya: використай pathlib і importlib.import module.



Krok 4. Завантажити кожен модуль і викликати його функцію run з тестовим рядком.



Krok 5. Додати обробку помилок коли у модулі немає потрібних атрибутів.



Krok 6. Зробити простий протокол плагінів, наприклад обовʼязковий атрибут name і функція run.



Krok 7. Занотувати ризики динамічного імпорту з невідомих джерел.



Krok 8. Продумати як підключати плагіни через entry point у пакеті замість каталогу.



Krok 9. Зробити конфігураційний файл який визначає які плагіни активні.



Krok 10. Mini zvit.

Zavdannya: опиши приклад реальної системи де модель плагінів спрощує підтримку.