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

Долг за прошлую лекцию: git add --interactive (см. в плане)

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

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

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

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

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

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

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

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

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

Pip

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

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

Pip

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

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

Популярный альтернативный репозиторий и система установки — https://anaconda.org

Работа с venv

Расширения venv

Д/З

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

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

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

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

    • Допустимо не писать программу с нуля, а скопировать часть модуля с разбором командной строки и показом монолога, и потом его модифицировать
    • Дополнительно появляются ключи -E, -F и -N, задающие параметры второй коровы, и второй свободный параметр командной строки — второе сообщение

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

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

$ python twocows.py -f moose -E "^^" -F sheep "Hi there" "Ahoy!"
                            _______ 
 __________                < Ahoy! >              
< Hi there >                ------- 
 ----------                  \
  \                           \
   \   \_\_    _/_/               __     
    \      \__/                  U^^U\.'@@@@@@`.
           (oo)\_______          \__/(@@@@@@@@@@)
           (__)\       )\/\           (@@@@@@@@)
               ||----w |              `YY~~~~YY'
               ||     ||               ||    ||

LecturesCMC/PythonDevelopment2025/02_PushPip (последним исправлял пользователь FrBrGeorge 2025-02-18 13:46:39)