diff --git a/log.ipynb b/log.ipynb new file mode 100644 index 00000000..ccc77913 --- /dev/null +++ b/log.ipynb @@ -0,0 +1,22 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "251211b6", + "metadata": {}, + "source": [ + "05/08/2025\n", + "\n", + "1) разобрался с алгоритмом получения и сдачи дз\n", + "2) разобрался с гит командой stash" + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/python/commits.py b/python/commits.py new file mode 100644 index 00000000..cc18ea6b --- /dev/null +++ b/python/commits.py @@ -0,0 +1,20 @@ +# %% [markdown] +# 1. - feat - введение, изменение, удаление новой функциональности +# - fix - исправление выявленных багов +# - docs - изменение в документации +# - style - исправление опечаток и форматирования кода +# - refactor - улучшение структуры и читаемости кода без изменения смысла кода +# - test - добавление или изменение тестов +# - build - изменение того, как проходит сборка программы +# - ci - изменение в работе CI/CD +# - perf - улучшение производительности приложения +# - chore - прочие изменения (обновление настроек, задач, etc) +# 2. git commit -m"fix: fix numbers rounding" +# +# 3. git commit -m"feat: add report generation" +# +# 4. git commit -m"style: correct formatting and indentation" +# +# 5. git commit -m"docs: add new function documentation" +# +# git commit -m"test: add tests to new function" diff --git a/python/issues.py b/python/issues.py new file mode 100644 index 00000000..8ae96d8b --- /dev/null +++ b/python/issues.py @@ -0,0 +1,102 @@ +# %% [markdown] +# ### Общие вопросы +# Что такое Issues на GitHub и для чего они используются? +# Issues используется для того, чтобы можно было предложить какие-то новые функции или задать вопрос по поводу кода проекта. +# +# Чем Issues отличаются от других инструментов управления задачами? +# issues привязаны к конкретному проекту/репозиторию, можно закрыть автоматически через коммит, интегрирован с гитом +# +# Какие основные компоненты (поля) есть у каждого Issue? +# заголовок, описание, статус задачи, назначенные на выполнение(Assignee), Метки(Labels), milestones, коммиты и обсуждение +# +# ### Создание Issues +# Как создать новое Issue в репозитории? +# зайти в Issues и нажать кнопку new Issue +# +# Какие данные рекомендуется указывать в описании Issue для лучшего понимания задачи? +# в заголовок issue стоит вносить код ошибки, трассировку из терминала +# +# Какие теги (labels) можно добавить к Issue? Какие из них стандартные? +# bug — указывает на баги в работе программы +# documentation — требуется улучшение или дополнение документации +# duplicate — дубликат существующей задачи или запроса +# enhancement — запрос на новую функциональность или улучшение +# good first issue — задача, подходящая для новичков +# help wanted — автор или поддерживающие проект хотят помощи в решении задачи +# invalid — задача не является актуальной или корректной +# question — задача или обсуждение, требующее дополнительной информации +# wontfix — было решено, что работу над задачей продолжать не будут +# все теги выше являются стандартными +# +# Как прикрепить Assignees (ответственных) к Issue? +# репозиторий->issues->нужный_issue->Assignees. нажимаем assign yourself, чтобы назначить себя, Assign someone else, чтобы назначить другого +# +# ### Работа с Issues +# Как использовать Labels для классификации задач? +# +# Для чего нужен Milestone, и как связать его с Issue? +# Milestone - это какой-то важный релиз, вокруг которого группируется набор связанных issues и pull requests. +# +# Как привязать Issue к пул-реквесту (Pull Request)? +# closes #issue_number в заголовке issue +# +# Как добавить комментарий к существующему Issue? +# репозиторий->issues->нужный_issue->leave a comment... +# +# ### Закрытие и завершение Issues +# Как закрыть Issue вручную? +# Открыть Issue, нажать кнопку Close Issue +# +# Можно ли автоматически закрыть Issue с помощью сообщения в коммите или пул-реквесте? Как это сделать? +# да, closes #номер_ишьюса +# +# Как повторно открыть закрытое Issue, если работа ещё не завершена? +# Найти комментарий, в котором сказано, кем и когда закрыто issue. Нажать на кнопку Reopen issue +# +# ### Фильтрация и поиск +# Как найти все открытые или закрытые Issues в репозитории? +# Нажать на Issues в репозитории. open - открытые issues, closed - закрыте issues +# +# Как использовать фильтры для поиска Issues по меткам, исполнителям или другим критериям? +# в Issues в поисковую строку вводим label:label_name assignee:assignee_name. Идентично и для других критериев +# +# Как сортировать Issues по приоритету, дате создания или другим параметрам? +# в Issues нажимаем на ...(три точки) и выбираем способ сортировки +# +# ### Интеграции и автоматизация +# Как настроить автоматические уведомления о новых или изменённых Issues? +# репозиторий проекта->watch->custom->issues +# +# Что такое Projects в контексте GitHub, и как связать их с Issues? +# это что-то похожее на канбан-доску, интегрированную в гитхаб, привязанную к определённому репозиторию или организации. Позволяет планировать и организоввывать работу над проектом. Issues можно добавлять в этот самый project и использовать их для отслеживания выполнения задач +# +# Какие сторонние инструменты можно использовать для автоматизации работы с Issues (например, боты, Webhooks)? +# Probot - боты, которые реагируют на события в гитхабе +# github actions - встроенный инструмент гитхаба, который позволяет автоматизировать рутинные задачи +# webhooks - отправка http-запросов, если происходят какие-то события на гитхабе +# +# ### Коллаборация +# Как упомянуть другого пользователя в комментарии к Issue? +# @username +# +# Как запросить дополнительные данные или уточнения у автора Issue? +# можно оставить комментарий в самом issue по данному поводу +# +# Что делать, если Issue неактуально или его нужно объединить с другим? +# если issue неактуально, то закрываем его. Если нужно объединить два issues, то закрываем один из них с комментарием, сообщающим о том, что данный issue дублирует другой(и оставляем ссылку на этот другой issue) +# +# ### Практические аспекты +# Как использовать шаблоны для создания Issues? +# 1. создать папку ISSUE_TEMPLATE в корневой папке репозитория +# 2. создать шаблон в формате markdown или yaml +# 3. выбрать шаблон при создании issue +# +# Что такое Linked Issues, и как создать связь между задачами? +# linked issues - это функция гитхаба, позволяющая связывать ишьюсы между собой. +# Чтобы связать ишьюсы мы в ишьюсе выбираем linked issues, где вводим номер ишьюса и тип связи между ними(relates to, blocks, is blocked by) +# +# Какие метрики (например, время выполнения) можно отслеживать с помощью Issues? +# Можно отслеживать время выполнения ишьюса(от открытия до закрытия), количество открытых и закрытых задач, количество комментариев к ишьюсам, назначенные ответственные и их темп работы, соотнощение открытых и закрытых задач с течением времени +# +# Какие best practices рекомендуются при работе с Issues в команде? +# чёткие описания задач и описательные заголовки, назначение ответственных, атомарность задач, назначение ответственных(assignees) за задачи diff --git a/python/stash.py b/python/stash.py new file mode 100644 index 00000000..674b0b6d --- /dev/null +++ b/python/stash.py @@ -0,0 +1,35 @@ +# %% [markdown] +# 1. Что делает команда git stash? +# git stash сохраняет изменения в индексируемом файлах, которые ещё не готовы для коммита. +# 2. Как просмотреть список всех сохранённых изменений (стэшей)? +# git stash list +# 3. Какая команда применяется для использования верхнего стэша? +# git stash pop +# 4. Как применить конкретный стэш по его номеру? +# git stash apply stash{n} , где n - номер стэша +# 5. Чем отличается команда git stash apply от git stash pop? +# git stash pop удаляет стэш при использовании, а git stash apply оставляет его => стэш можно применить к нескольким веткам +# 6. Что делает команда git stash drop? +# удаляет определённый стеш из хранилища +# 7. Как полностью очистить все сохранённые стэши? +# git stash clear +# 8. В каких случаях удобно использовать git stash? +# git stash удобен, когда нужно переключиться на срочное задание, а текущая работа ещё не завершена. Чтобы не потерять проделанную работу, можно использовать git stash. +# 9. Что произойдёт, если выполнить git stash pop, но в проекте есть конфликтующие изменения? +# git оставит конфликтующие файлы для ручного разрешения и придётся сначала разрешить конфликты перед тем как применить git stash pop. +# 10. Можно ли восстановить удалённый стэш после выполнения git stash drop? +# да, гит сохраняет изменения stash в виде коммитов. их можно найти с помощью git reflog. можно восстановить коммандой git stash store -m "new_stash_name" commit_hash +# 11. Что делает команда git stash save "NAME_STASH" +# сохраняет стеш в хранилище под именем NAME_STASH +# 12. Что делает команда git stash apply "NUMBER_STASH" +# достаёт из хранилища стешей стеш под номером NUMBER_STASH, но не удаляет его из хранилища +# 13. Что делает команда git stash pop "NUMBER_STASH" +# достаёт из хранилища стешей стеш под номером NUMBER_STASH и удаляет его из этого хранилища +# 14. Сохраните текущие изменения в стэш под названием "SENATOROV ver1", вставьте скриншот из терминала +# https://drive.google.com/file/d/1WtMbPFrerEybUer7uDY10_7KEz6G9-o4/view?usp=drive_link +# 15. Внесите любые изменения в ваш репозиторий и сохраните второй стэш под именем "SENATOROV ver2" +# https://drive.google.com/file/d/1_2pYzipmDq6mda3D_pkHYStN8OLenAZ0/view?usp=drive_link +# 16. Восстановите ваш стэш "SENATOROV ver1", вставьте скриншот из терминала +# https://drive.google.com/file/d/1-SEKWTVY1bfkD9EHmpf8-RxrnN8JVQIC/view?usp=drive_link +# 17. Удалите все стеши из истории, вставьте скриншот из терминала +# https://drive.google.com/file/d/19K5FizydhBifPJKgd4fvgXdNPXKwYfIy/view?usp=drive_link diff --git a/python/test_module.py b/python/test_module.py new file mode 100644 index 00000000..23967514 --- /dev/null +++ b/python/test_module.py @@ -0,0 +1,9 @@ +"""module info""" +def rounding_num(num): + """this function rounds up numbers""" + round(num,3) + print(f"rounded num = {num}") + +def test_func(): + #some testing functionality + pass \ No newline at end of file diff --git a/python/venv.py b/python/venv.py new file mode 100644 index 00000000..419ad869 --- /dev/null +++ b/python/venv.py @@ -0,0 +1,43 @@ +# %% [markdown] +# 1. Что делает команда python -m venv venv? +# создаёт виртуальное окружение под названием venv +# 1.1. Что делает каждая команда в списке ниже? +# pip list - список загруженных библиотек +# pip freeze > requirements.txt - записать все загруженные библиотеки в файл requirements.txt +# pip install -r requirements.txt - установить все библиотеки из файла requirements.txt +# 2. +# conda env list - показывает все виртуальные окружения conda +# conda create -n env_name python=3.5 - создать виртуальное окружение conda +# conda env update -n env_name -f file.yml - доавить в виртуальное окружение библиотеки, записанные в file.yml +# source activate env_name - активировать виртуальную среду +# source deactivate - деактивировать виртуальную среду +# conda clean -a - очистить все временные файлы conda +# 3. вставьте скрин вашего терминала, где вы активировали сначала venv, потом conda, назовите окружение "SENATOROV" +# https://drive.google.com/file/d/10odLejOH5pezPcFEp3c7KwBXqCyf5w3Y/view?usp=drive_link +# +# 4. Как установить необходимые пакеты внутрь виртуального окружения для conda/venv? +# conda install lib_name / pip install lib_name +# 5. Что делают эти команды? +# pip freeze > requirements.txt записывает зависимости в файл requirements.txt +# conda env export > environment.yml записывает зависимости в файл environment.yml +# +# 5.1 вставьте скрин, где будет видна папка VENV в вашем репозитории а также файлы зависимостей requirements.txt и environment.yml, файлы должны содержать зависимости +# https://drive.google.com/file/d/1L8DCmBEfFWujOb-7oM1JQFzyXuw1qajg/view?usp=drive_link +# 6. Что делают эти команды? +# pip install -r requirements.txt устанавливает библиотеки, написанные в файле requirements.txt +# conda env create -f environment.yml устанавливает библиотеки, написанные в файле environment.yml +# +# 7. Что делают эти команды? +# pip list - список всех установленных библиотек +# pip show lib_name краткая информация про библиотеку +# conda list - список всех установленных библиотек conda +# +# 8. Где по умолчанию больше пакетов venv/pip или conda? и почему дата сайнинисты используют conda? +# в conda. потому что заранеее предустановлены если не все, то большинство библиотек, необходимых дата саентисту +# 9. вставьте скрин где будет видно, Выбор интерпретатора Python (conda) в VS Code/cursor +# https://drive.google.com/file/d/1XXj7UYY_YYALGNImDkuOddU_AjokNTeX/view?usp=drive_link +# 10. Зачем нужно виртуальное окружение? +# виртуальное окружение необходимо, чтобы можно было комфортно использовать различные версии одних и тех же библиотек для разных +# проектов, а также для избегания конфликтов между разными версиями библиотек +# 11. С этого момента надо работать в виртуальном окружении conda, ты научился(-ась) выгружать зависимости и работать с окружением? +# да