Лабораторна робота 2
ЛАБОРАТОРНА РОБОТА №2
Тема: Технології контейнеризації Python-додатків: основи роботи з Docker
Мета роботи: ознайомитися з технологіями контейнеризації Python-додатків на базі Docker; закріпити навички створення та використання віртуальних оточень, розробки Python-програм з використанням зовнішніх бібліотек, а також навчитися адаптувати та розгортати програми у контейнерному середовищі для забезпечення портативності та відтворюваності.
Хід виконання роботи
1 Створити віртуальне оточення (ім'я - прізвище студента) з Python версії не нижче 3.13.1.
2. В цьому оточенні створити програму на мові Python для перекладу тексту за допомогою модуля googletrans (https://pypi.org/project/googletrans/)
В програмі реалізувати три функції: TransLate(str, lang), LangDetect(txt), CodeLang(lang).
2.1. TransLate(str, lang) - функція для перекладу тексту. Тут str – текстовий рядок, який необхідно перекласти, lang – текстовий параметр, який визначає мову, на яку необхідно перекласти текст str. Параметр lang може бути або назвою мови (формат: English або еnglish), або ISO-639 code мови (формат: en або En або EN) (дивись таблицю мов https://cloud.google.com/translate/docs/languages). Функція повинна повертати текстовий рядок – переклад на вибрану мову, або повідомлення про помилку.
2.2. LangDetect(txt) - функція, яка повертає мову тексту txt і його confidence.
2.3. CodeLang(lang) - функція, яка повертає код мови (відповідно до таблиці), якщо в параметрі lang міститься назва мови, або повертає назву мови, якщо в параметрі lang міститься її код.
2.4. Використав створені функції, написати програму для перекладу тексту на задану користувачем мову.
3. На платформі Docker створити контейнер (ім'я - прізвище студента та ініціали) з наступним складом: ОС Linux, Pyton версії 3.12 або нижче.
4. В корні файлової системи контейнера створити папку (ім'я - прізвище студента)
5. Переписати програму із пункту 2 використав модуль googletrans==3.1.0a0 і скопіювати в контейнер в створену папку. (Функціонал і структура програми як описано в пункті 2)
6. Запустити програму із контейнера.
7. Завантажити проект на GitHub, попередньо додавши до файлу .gitignore всі технічні папки та файли.
Приклад коду (без коду функцій):
txt = "Доброго дня. Як справи?"
lang = "en"
print(txt)
print(LangDetect(txt))
print(TransLate(txt, lang))
print(CodeLang("En"))
print(CodeLang("English"))
Виконання:
Доброго дня. Як справи?
Detected(lang=uk, confidence=1)
Good day. How are you?
Englishen
8. За результатами роботи зробити звіт, який складається з:
- Титульний аркуш,
- Текст завдання,
- Скріншот середовища VSCode з кодом програми з пункту 2 (вимоги до скріншотів),
- Повний код програми з пункту 2.
- Скріншот термінала з виводом версії Python в віртуальному середовищі (вимоги до скріншотів),
- Скріншот термінала з виводом всіх встановлених модулів та пакетів в віртуальному середовищі (pip list)(вимоги до скріншотів)
- Скріншот терміналу з результатами виконання програми з пункту 2. (Програма повинна виконуватись в віртуальному оточені, яке було створено завданні 1)(вимоги до скріншотів),
- Повний код програми з пункту 5.
- Скріншоти відповідних розділів програми Docker Desktop з назвами використаних в проекті docker образа та docker контейнера,
- Скріншоти термінала, в якому вивести за допомогою відповідних команд назву використаних в проекті docker образа та назву docker контейнера (вимоги до скріншотів),
- Скріншот терміналу з запущеним контейнером в якому виводиться версія Linux і версія Python, що встановлені в контейнері (вимоги до скріншотів),
- Скріншот термінала з виводом всіх встановлених модулів та пакетів в контейнері (вимоги до скріншотів)
- Скріншот терміналу з запущеним контейнером в якому виводиться файлова структура контейнеру (включаючи папку, що створена в пункті 4) (вимоги до скріншотів),
- Скріншот терміналу з запущеним контейнером в якому виконуєтьсія програма з пункту 5 (вимоги до скріншотів),
- Посилання на проект на GitHub
- Посилання на відео (на платформі YouTube, обліковий запис НУБіП) з демонстрацією запуску і роботи програми в віртуальному середовищі та в контейнері (за вимогою викладача).
9. Зберегти звіт в PDF або DOCX файл і завантажити в Elearn.
Форма подання результатів виконаної роботи: звіт в електронному форматі.
Відео:
Створюємо програму на Python для перекладання тексту:
Критерії оцінювання:
Максимальна кількість балів - 14 балів.
N | Кількість балів | Критерій |
1 | 0 | Роботу не здано |
2 | 1 | Не виконаний один з пунктів завдання: 1, 3, 4. Віртуальне оточення (контейнер, папка проекту в контейнері) не створено, або його назва не співпадає з призвищем студента. |
3 | 1 | Код розробленої студентом програми не працює |
4 | 1 | Скріншоти, що демонструють роботу програм були правлені в графічному редакторі або іншим чином. |
5 | 1-10 | Роботу здано після встановленого терміну |
6 | 2-5 | Програма працює, але не задовільняє вимогам завдання |
7 | 2-5 | Програма працює. Студент не може пояснити роботу коду програми. На більшість питань викладача дає неправильні відповіді. |
8 | 6-7 | Програма працює і задовільняє всім вимогам завдання. Звіт оформлено не належним чином (не відповідає вимогам пункту 8, скріншоти не відповідають вимогам). |
9 | 8-9 | Програма працює і задовільняє всім вимогам завдання. Звіт оформлено належним чином (задовільняє всім вимогам пункту 8, всі скріншоти якісні і мають праввильну орієнтацію) |
10 | 10-11 | Програма працює і задовільняє всім вимогам завдання, або має незначні недоліки. Звіт оформлено належним чином. Студент може пояснити роботу коду програми, правильно відповів на переважну більшість питаннь викладача під час захисту роботи. Не виконано пункт 3 завдання (замінити основний шрифт в редакторі). |
11 | 12-13 | Програма працює і задовільняє всім вимогам завдання, але має незначні недоліки які студент може виправити під час захисту. Всі пункти завдання виконані. Звіт оформлено належним чином. Студент може пояснити роботу коду програми і особливості роботи алгоритму, правильно відповідає на всі питання викладача під час захисту роботи. |
12 | 14 | Програма працює і задовільняє всім вимогам завдання. Всі пункти завдання виконані. Звіт оформлено належним чином. Студент може пояснити роботу коду програми і особливості роботи алгоритму, правильно відповідає на всі питання викладача під час захисту роботи. |
Термін подання результатів - згідно календарного плану роботи.
Термін подання результатів - згідно календарного плану роботи.
- 31 серпня 2024, 10:40
Шрифти
Розмір шрифта
Колір тексту
Колір тла
Кернінг шрифтів
Видимість картинок
Інтервал між літерами
Висота рядка
Виділити посилання