Лабораторна робота 3
ЛАБОРАТОРНА РОБОТА №3
Тема: Модулі і пакети
Мета роботи:
Хід виконання роботи
1. Створити віртуальне оточення (ім'я оточення - прізвище студента). В цьому оточенні створити проект Python
2. Створити пакет, який складається з трьох модулів. (Назви пакету і модулів на розсуд студента).
3. В файлі __init__.py задати наступні змінні:
NAME = “Text translation”
AUTHOR = “Прізвище та ім’я студента, група”
4. В першому модулі створити наступні функції, використав інструментарій пакету googletrans 4.0.2:
def TransLate(text : str, scr : str, dest : str) -> str:
Функція повертає текст перекладений на задану мову, або повідомлення про помилку.
- text – текст, який необхідно перекласти;
- scr – назва або код мови заданого тексту, відповідно до стандарту ISO-639, або значення ‘auto’;
- dest – назва або код мови на яку необхідно перевести заданий текст, відповідно до стандарту ISO-639
def LangDetect(text : str, set : str) -> str:
Функція визначає мову та коефіцієнт довіри для заданого тексту, або повертає повідомлення про помилку.
- text – текст для якого потрібно визначити мову та коефіцієнт довіри;
- set = “lang” – функція повертає тільки мову тексту
- set = “confidence” – функція повертає тільки коефіцієнт довіри
- set = “all” (по замовченню) – функція повертає мову і коефіцієнт довіри
def CodeLang(lang : str) -> str:
Функція повертає код мови (відповідно до таблиці), якщо в параметрі lang міститься назва мови, або повертає назву мови, якщо в параметрі lang міститься її код, або повідомлення про помилку
- lang – назва або код мови
def LanguageList(out : str, text : str) -> str:
Виводить в файл або на екран таблицю всіх мов, що підтримуються, та їх кодів, а також текст, перекладений на цю мову. Повертає ‘Ok’, якщо всі операції виконані, або повідомлення про помилку.
- out = “screen” (по замовченню) – вивести таблицю на екран
- out = “file” – вивести таблицю в файл. (Тип файлу на розсуд студента)
- text – текст, який необхідно перекласти. Якщо параметр відсутній, то відповідна колонка в таблиці також повинна бути відсутня.
Таблиця, яка виводиться на екран повинна бути відформатована, тобто мати назви стовбців,і стовбці вирівняні по лівому краю. Приклад роботи функції
LanguageList(“screen”, “Добрий день”)

5. В другому модулі створити вище наведені функції, використав інструментарій пакету deep_translator 3.1.0a0. Додати перевірку, якщо версія Python >=3.13.
6. В третьому модулі створити вище наведені функції, використав інструментарій пакету deep_translator. Для визначення мови можна використати пакет langdetect.
7. В кореневому каталозі проекту створити чотири файли: gtrans4.py, gtrans3.py, deeptr.py, filetr.py.
8. В файлі gtrans4.py написати програму, яка демонструє роботу функцій пакету з першого модуля.
9. В файлі gtrans3.py написати програму, яка демонструє роботу функцій пакету з другого модуля. Для демонстрації роботи створити docker контейнер з Python 3.12 обо нижчою версією. (Ім'я контейнера - прізвище студента, ім'я папки проекта в контейнері - прізвище студента)
10. В файлі deeptr.py написати програму, яка демонструє роботу функцій пакету з третього модуля.
11. В файлі filetr.py написати програму для перекладу тексту з файлу. Попередньо створив файл з текстом і конфігураційний файл. Всі файли повинні знаходитись в кореневому каталозі проекту.
Файл з текстом – текстовий файл з будь яким текстом, але не менше ніж 600 символів.
Конфігураційний файл. Тип файлу обирає студент.
В файлі повинна міститись наступна інформація:
- Назва файлу з текстом
- Назва або код мови, на яку необхідно перекласти текст
- Назва модудя пакету, який буде використаний при перекладі.
- Куди вивести результат (файл, або екран)
- Кількість символів (об’єм тексту) (які треба прочитати із заданого файлу і перекласти)
- Кількість слів (які треба прочитати із заданого файлу і перекласти)
- Кількість речень. (які треба прочитати із заданого файлу і перекласти)
Робота програми:
I. Програма виводить назву файлу, яку вказано в конфігураційному файлі,
- розмір файлу,
- кількість символів,
- кількість слів,
- кількість речень (тексту, який міститься в файлі),
- мову тексу.
Або повідомлення про відсутність файлу, або повідомлення про помилку.
II. Програма зчитує текст із заданого файлу доки не виконається одна із умов:
- кінець файлу
- кількість символів перевищує вказану в конфігураційному файлі
- кількість слів перевищує вказану в конфігураційному файлі
- кількість речень перевищує вказану в конфігураційному файлі. Програма робить переклад отриманого тексту на мову, яка вказана в конфігураційному файлі, використовуючи функції створеного пакету.
IV. Якщо в конфігураційному файлі вказано вивід на екран, програма виводить на екран назву мови, на яку робився переклад, назву модуля, який був використаний для перекладу і сам перекладений текст, або повідомлення про помилку.
V. Якщо в конфігураційному файлі вказано вивід в файл, програма створює новий файл, додавши до назви вхідного файлу код мови, на яку робився переклад. Програма зберігає перекладений текст в створений файл. На екран виводить повідомлення “Ok”, якщо в процесі виконання не виникало помилок, або повідомлення про помилку.
12. Створити файл requirments.txt, в якому зберігаються всі встановлені модулі та пакети.
13. Створити файл .gitignore в якому вказати всі технічні файли і папки.
14. Завантажити проект на сервіс GitHub.
Форма подання результатів виконаної роботи: звіт в електронному форматі.
Звіт повинен містити:
- Титульний аркуш
- Текст завдання
- Скріншоти вашого екрану з кодами програм gtrans4.py, gtrans3.py, deeptr.py, filetr.py
- Скріншоти виконання програм на яких обовязково повинно бути видно, що програма працює в віруальному середовищі, створенному в п.1, або в контейнері (п. 9)
- Скріншоти термінала, в яких виводяться всі створені docker контейнери і образи.
- Скріншот термінала, в яких виводиться зміст папки з проектом в контейнері
- Скріншоти програми Docker DeskTop, на яких виводяться всі створені docker контейнери і образи.
- Посилання на GitHub з проектом.
Критерії оцінювання:
Максимальна кількість балів - 14 балів.
| N | Кількість балів | Критерій |
| 1 | 0 | Роботу не здано |
| 2 | 1 | Не виконаний пункт завдання 1. Віртуальне оточення не створено, або його назва не співпадає з призвищем студента. |
| 3 | 1 | Не виконаний пункт завдання 3. Файл __init__.py не створено, або в ньому не задані відповідні змінні. |
| 4 | 1 | Код розробленої студентом програми не працює |
| 5 | 1 | Скріншоти, що демонструють роботу програм були правлені в графічному редакторі або іншим чином. |
| 6 | 1-10 | Роботу здано після встановленого терміну |
| 7 | 2-5 | Програма працює, але не задовільняє вимогам завдання |
| 8 | 2-5 | Програма працює. Студент не може пояснити роботу коду програми. На більшість питань викладача дає неправильні відповіді. |
| 9 | 6-7 | Програма працює і задовільняє всім вимогам завдання. Звіт оформлено не належним чином (не відповідає вимогам пункту 8, скріншоти не відповідають вимогам). |
| 10 | 8-9 | Програма працює і задовільняє всім вимогам завдання. Звіт оформлено належним чином (задовільняє всім вимогам пункту 8, всі скріншоти якісні і мають праввильну орієнтацію) |
| 11 | 10-11 | Програма працює і задовільняє всім вимогам завдання, або має незначні недоліки. Звіт оформлено належним чином. Студент може пояснити роботу коду програми, правильно відповів на переважну більшість питаннь викладача під час захисту роботи. Не виконано пункт 3 завдання (замінити основний шрифт в редакторі). |
| 12 | 12-13 | Програма працює і задовільняє всім вимогам завдання, але має незначні недоліки які студент може виправити під час захисту. Всі пункти завдання виконані. Звіт оформлено належним чином. Студент може пояснити роботу коду програми і особливості роботи алгоритму, правильно відповідає на всі питання викладача під час захисту роботи. |
| 13 | 14 | Програма працює і задовільняє всім вимогам завдання. Всі пункти завдання виконані. Звіт оформлено належним чином. Студент може пояснити роботу коду програми і особливості роботи алгоритму, правильно відповідає на всі питання викладача під час захисту роботи. |
Термін подання результатів - згідно календарного плану роботи.
- 3 вересня 2023, 23:19
Шрифти
Розмір шрифта
Колір тексту
Колір тла
Кернінг шрифтів
Видимість картинок
Інтервал між літерами
Висота рядка
Виділити посилання
Text Alignment
Paragraph Width