Различия между версиями 6 и 7
Версия 6 от 2022-05-15 15:31:26
Размер: 3661
Редактор: FrBrGeorge
Комментарий: Половина темы
Версия 7 от 2022-05-27 21:06:11
Размер: 3583
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 1: Строка 1:
## page was renamed from LecturesCMC/PythonDevelopment2022/Prac/11_Packaging
= 04/25 Автоматизация =
= 04.25 Автоматизация =

04.25 Автоматизация

TODO переделать под автоматизацию, а от pyproject.toml/setu.cfg/MANIFEST.in оставить только простой пример, чтобы собрались wheel/sdist. Т. е. вот тут побольше:

  • Автоматизация на примере doit

    • Зачем нужно и когда не нужно
    • Понятие задания и составного задания
    • Понятие целевого файла и зависимости на файл
    • {i} Пример: диаграмма (векторная) → картинка → иконка (уменьшенная)

TODO: а вот тут поменьше

  • Использование setuptools (на примере GradeProject2021)

    • Настройка pyproject.toml и выбор setuptools

      • Указание сборочных зависимостей
    • Файл setup.cfg

    • Создание бинарного дистрибутива wheel
      • Указание эксплуатационных зависимостей
        • install_requires =

      • Указание дополнительных данных пакета
        • include_package_data = True и [options.package_data]

      • Задание пускового сценария
        • [options.entry_points]

    • Создание архива с исходниками:
      • Файлы по умолчанию
      • Файл MANIFEST.in

  • <!> Задача_1: создать и развернуть пакет для несложной программы

    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" - "КОРНЕЙ НЕТ"

    2. Напишите автоматизацию с помощью doit

      • Обновления и компиляции перевода
      • Запуска тестов
      • Сборки wheel с помощью build

      • Сборки архива с исходниками с помощью build

      • Очистки всех генератов, включая шаблон перевода

Д/З

  • Дописать и выложить по стандартному протоколу решение Задачи_1

LecturesCMC/PythonDevelopment2022/Prac/11_AutomationBuild (последним исправлял пользователь FrBrGeorge 2022-05-27 21:06:11)