Публичный репозиторий. Сторонние модули из pypi

Особенность нынешней лекции: публичный репозиторий без рассказа о механизмах публикации.

Git: публичный репозиотрий

Цикл разработки:

  1. Создание или выбор удалёного репозитория и clone

  2. Синхронизация (pull) = fetch + merge
  3. Стандартный цикл разработки (следующие три пункта могут повторяться по кругу):
    1. Изменение
    2. Оформление коммита (add и т. п.)
    3. Коммит (commit)
  4. Публикация (push)

Перед публикацией стоит убедиться, что и файлы, и сообщения соответствуют принятой дисциплине

/!\ Проблема «удалённого init»: нет такой команды при доступе без командной строки.

Ответственная публикация и переписывание локальной истории

Перезапись истории: введение

Pip

Структура дистрибутива python

Источник пакетов: PyPI

Как ставить: pip install --user имя

Проблемы pip install с правами администратора

Откуда брать pip: python3 -m ensurepip — как раз установится в .local/…

Работа с venv

Расширения venv

Д/З

На забудьте зарегистрировать свой репозиторий с Д/З.

  1. Исследовать стандартный модуль argparse (учебник) и сторонний модуль python-cowsay ( /!\ есть несколько аналогичных модулей, нужен именно этот)

  2. Создать в репозитории с Д/З подкаталог 02_PushPip (по последнему фрагменту URL данной лекции) и поместить туда решение следующей задачи:

  3. Написать программу cow_say.py, которая работает аналогично исходной программе cowsay — запускается из командной строки и принимает такие же параметры.

    • Как минимум должны поддерживаться те ключи исходного cowsay, поведение которых можно задать параметрами функция cowsay.cowsay() из модуля (она уже реализует всю логику, кроме ключа "-l", см документацию по ней)

    • Обрабатывая ключ "-l" нужно вызывать другую функцию — cowsay.list_cows().

    • На надо заботиться о том, чтобы cow_say.py работала в точности так же, как cowsay — например, -h в argparse точно работает по-другому.

    • При написании придерживаться дисциплины «одно изменение (не ломающее работу программы) — один коммит» и аккуратно оформлять коммит-сообщения
    • Предполагается, что модуль python-cowsay уже установлен (например, в ~/.local с помощью pip), его не надо копировать / класть в 02_PushPip и т. п.

  4. <!> Опубликуйте результат. Не забывайте о шестидневном (до воскресенья включительно) дедлайне на решения!

LecturesCMC/PythonDevelopment2024/02_PushPip (последним исправлял пользователь FrBrGeorge 2024-02-25 18:20:04)