3053
Комментарий:
|
← Версия 5 от 2021-05-17 14:12:33 ⇥
3723
|
Удаления помечены так. | Добавления помечены так. |
Строка 9: | Строка 9: |
* Настройка `pyproject.toml` и выбор `setuptools` | * Настройка [[https://git.sr.ht/~frbrgeorge/GradeProject2021/tree/master/item/pyproject.toml|pyproject.toml]] и выбор `setuptools` |
Строка 11: | Строка 11: |
* Файл `setup.cfg` | * Файл [[https://git.sr.ht/~frbrgeorge/GradeProject2021/tree/master/item/setup.cfg|setup.cfg]] |
Строка 14: | Строка 14: |
* `install_requires =` | |
Строка 15: | Строка 16: |
* `include_package_data = True` и `[options.package_data]` | |
Строка 16: | Строка 18: |
* `[options.entry_points]` | |
Строка 18: | Строка 21: |
* Файл `MANIFEST.in` | * Файл [[https://git.sr.ht/~frbrgeorge/GradeProject2021/tree/master/item/MANIFEST.in|MANIFEST.in]] |
Строка 35: | Строка 38: |
* что wheel устанавливается и работает вместе с переводом отдельном `venv` * что в архив с исходниками попали тесты и исходник перевода |
* что wheel устанавливается, тянет по зависимостям `pyfiglet`, и работает ''вместе с переводом'' в отдельном `venv` * что в архив с исходниками попали исходники модуля, тесты и исходник перевода (но не шаблон и не скомпилированный перевод) == Д/З == * Дописать и выложить по стандартному протоколу решение Задачи_1 |
05/17 Пакетирование
Автоматизация на примере doit
- Зачем нужно и когда не нужно
- Понятие задания и составного задания
- Понятие целевого файла и зависимости на файл
Пример: диаграмма (векторная) → картинка → иконка (уменьшенная)
Использование setuptools (на примере GradeProject2021)
Настройка pyproject.toml и выбор setuptools
- Указание сборочных зависимостей
Файл setup.cfg
- Создание бинарного дистрибутива wheel
- Указание эксплуатационных зависимостей
install_requires =
- Указание дополнительных данных пакета
include_package_data = True и [options.package_data]
- Задание пускового сценария
[options.entry_points]
- Указание эксплуатационных зависимостей
- Создание архива с исходниками:
- Файлы по умолчанию
Файл MANIFEST.in
Задача_1: создать и развернуть пакет для несложной программы
- Напишите программу, решающую линейное уравнение a*x+b=0.
- Эта программа должна:
- получать на вход значения a и b
выполнять решение уравнения в функции solve(a,b), которая при a!=0 возвращает корень уравнения, а при a==0 возвращает None
если a!=0, вычислять и выводить текст "Root: <корень_уравнения>", в противном случае выводить "NO ROOTS"
вывод текста должен быть осуществлён при помощи pyfiglet
напишите для функции solve() несколько тестов, включая тест для a==0
локализуйте программу при помощи babel: программа должна вместо "Root:" выводить "Корень:", а вместо "NO ROOTS" - "КОРНЕЙ НЕТ"
- Эта программа должна:
Напишите автоматизацию с помощью doit
- Проверьте
что wheel устанавливается, тянет по зависимостям pyfiglet, и работает вместе с переводом в отдельном venv
- что в архив с исходниками попали исходники модуля, тесты и исходник перевода (но не шаблон и не скомпилированный перевод)
- Напишите программу, решающую линейное уравнение a*x+b=0.
Д/З
- Дописать и выложить по стандартному протоколу решение Задачи_1