diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 6341a1aa..5c83b8cf 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -15,7 +15,7 @@ repos: - --warn-only exclude: '.*\.md$' - repo: https://github.com/PyCQA/docformatter - rev: "eb1df347edd128b30cd3368dddc3aa65edcfac38" + rev: "v1.7.7" hooks: - id: docformatter args: [--in-place, --wrap-descriptions=120, --style=google] diff --git a/log.ipynb b/log.ipynb new file mode 100644 index 00000000..3704f784 --- /dev/null +++ b/log.ipynb @@ -0,0 +1,71 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "a5c7f761", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Module for logging experiment results.'" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"Module for logging experiment results.\"\"\"\n" + ] + }, + { + "cell_type": "markdown", + "id": "33ff615f", + "metadata": {}, + "source": [ + "04/01\n", + "1. Закончила выполнение intro, c Cursor разобралась.\n", + "2. Начала проходить курс по Python.\n" + ] + }, + { + "cell_type": "markdown", + "id": "f6cb4978", + "metadata": {}, + "source": [ + "7/01\n", + "1. Выполнила quiz 1 b quiz 2" + ] + }, + { + "cell_type": "markdown", + "id": "3ceda156", + "metadata": {}, + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/log.py b/log.py new file mode 100644 index 00000000..b3bfb8fd --- /dev/null +++ b/log.py @@ -0,0 +1,11 @@ +"""Module for logging experiment results.""" + +# 04/01 +# 1. Закончила выполнение intro, c Cursor разобралась. +# 2. Начала проходить курс по Python. +# + +# 7/01 +# 1. Выполнила quiz 1 b quiz 2 + +# diff --git a/python/commits.ipynb b/python/commits.ipynb new file mode 100644 index 00000000..711712e8 --- /dev/null +++ b/python/commits.ipynb @@ -0,0 +1,95 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "84aa8d56", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Commits 5.'" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"Commits 5.\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "a5fe8ea0", + "metadata": {}, + "source": [ + "1.\tОпишите своими словами назначение каждого из этих типов коммитов:\n", + "feat, fix, docs, style, refactor, test, build, ci, perf, chore. \n", + "feat - добавление новой функциональности, то есть добавление новых модулей, изменение существующего кода, добавление UI-элементов.\n", + " Пример: \n", + "feat(web): add new icon\n", + "fix - используются для обозначения исправления ошибок(багов) в коде.\n", + "Пример: \n", + "fix(auth): fix token validation issue\n", + "docs - изменения в документации \n", + "Пример:\n", + "docs(readme): добавлена инструкция по установке \n", + "style - внесение правок по стилю(форматирование, пробелы, запятые и т.д.)\n", + "Пример: \n", + "style: форматирование отступов в модуле авторизации \n", + "refactor - изменения(наведение порядка) в коде без изменения его исходной функциональности.\n", + "test - добавление или изменение тестов\n", + "build - изменения, касающиеся сборки проекта - обновление версий библиотек, изменение скриптов сборки, настройки webpack/npm/gulp, обновление конфигурации Docker (связанной со сборкой).\n", + "Пример:\n", + "build: add dependencies for UI components\n", + "ci - настройка или изменение CI/CD (Continuous Integration/Continuous Delivery)\n", + "perl - оптимизация производительности - структурные, синтаксические или функциональные правки в Perl-коде, часто применяемые в рамках обслуживания систем (chore) или исправления ошибок (fix). \n", + "Пример: \n", + "●\tperl: Fix dependency check in script.pl\n", + "chore - прочие задачи (например, изменения в .gitignore),не меняющие код приложения, не исправляющие ошибки и не меняющие функциональности продукта.\n", + "2.\tПредставьте, что вы исправили баг в функции, которая некорректно округляет числа. Сделайте фиктивный коммит и напишите для него сообщение в соответствии с Conventional Commits (используя тип fix).\n", + "Ответ: \n", + "git commit -m “fix: financial rounding“\n", + "3.\tДобавление новой функциональности:\n", + "Допустим, вы реализовали новую функцию generateReport в проекте. Сделайте фиктивный коммит с типом feat, отражающий добавление этой функциональности\n", + "Ответ: \n", + "git commit -m “feat: add function generateReport“\n", + "4.\tМодификация формата кода или стилей:\n", + "Представьте, что вы поправили отступы и форматирование во всём проекте, не меняя логики кода. Сделайте фиктивный коммит с типом style. \n", + "Ответ: \n", + "git commit -m “style: replace style errors “\n", + "5.\tДокументация и тестирование:\n", + "Сделайте фиктивный коммит с типом docs, добавляющий или улучшающий документацию для вашей новой функции.\n", + "Ответ: \n", + "git commit -m “docs: update README with new contribution guidelines”\n", + "Сделайте фиктивный коммит с типом test, добавляющий тесты для этой же функции.\n", + "Ответ: \n", + "git commit -m “add mock tests”\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/python/commits.py b/python/commits.py new file mode 100644 index 00000000..ad27d6fe --- /dev/null +++ b/python/commits.py @@ -0,0 +1,45 @@ +"""Commits 5.""" + +# 1. Опишите своими словами назначение каждого из этих типов коммитов: +# feat, fix, docs, style, refactor, test, build, ci, perf, chore. +# feat - добавление новой функциональности, то есть добавление новых модулей, изменение существующего кода, добавление UI-элементов. +# Пример: +# feat(web): add new icon +# fix - используются для обозначения исправления ошибок(багов) в коде. +# Пример: +# fix(auth): fix token validation issue +# docs - изменения в документации +# Пример: +# docs(readme): добавлена инструкция по установке +# style - внесение правок по стилю(форматирование, пробелы, запятые и т.д.) +# Пример: +# style: форматирование отступов в модуле авторизации +# refactor - изменения(наведение порядка) в коде без изменения его исходной функциональности. +# test - добавление или изменение тестов +# build - изменения, касающиеся сборки проекта - обновление версий библиотек, изменение скриптов сборки, настройки webpack/npm/gulp, обновление конфигурации Docker (связанной со сборкой). +# Пример: +# build: add dependencies for UI components +# ci - настройка или изменение CI/CD (Continuous Integration/Continuous Delivery) +# perl - оптимизация производительности - структурные, синтаксические или функциональные правки в Perl-коде, часто применяемые в рамках обслуживания систем (chore) или исправления ошибок (fix). +# Пример: +# ● perl: Fix dependency check in script.pl +# chore - прочие задачи (например, изменения в .gitignore),не меняющие код приложения, не исправляющие ошибки и не меняющие функциональности продукта. +# 2. Представьте, что вы исправили баг в функции, которая некорректно округляет числа. Сделайте фиктивный коммит и напишите для него сообщение в соответствии с Conventional Commits (используя тип fix). +# Ответ: +# git commit -m “fix: financial rounding“ +# 3. Добавление новой функциональности: +# Допустим, вы реализовали новую функцию generateReport в проекте. Сделайте фиктивный коммит с типом feat, отражающий добавление этой функциональности +# Ответ: +# git commit -m “feat: add function generateReport“ +# 4. Модификация формата кода или стилей: +# Представьте, что вы поправили отступы и форматирование во всём проекте, не меняя логики кода. Сделайте фиктивный коммит с типом style. +# Ответ: +# git commit -m “style: replace style errors “ +# 5. Документация и тестирование: +# Сделайте фиктивный коммит с типом docs, добавляющий или улучшающий документацию для вашей новой функции. +# Ответ: +# git commit -m “docs: update README with new contribution guidelines” +# Сделайте фиктивный коммит с типом test, добавляющий тесты для этой же функции. +# Ответ: +# git commit -m “add mock tests” +# diff --git a/python/cpython.ipynb b/python/cpython.ipynb new file mode 100644 index 00000000..59e646f1 --- /dev/null +++ b/python/cpython.ipynb @@ -0,0 +1,179 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "c1ccfa97", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Quiz 4.'" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"Quiz 4.\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "01f96160", + "metadata": {}, + "source": [ + "1. Что такое CPython и чем он отличается от Python?\n", + "Python - это язык программирования, а CPython - это и язык программирования, и интерпретатор одновременно. \n", + "3. Сколько существует реализаций Python, и какая из них самая популярная?\n", + "Существует 6 реализаций Python, самая популярная из них-CPython\n", + "4. На каком языке написан CPython?\n", + "CPython написан на языке С.\n", + "5. (опционально) Кто создал CPython?\n", + "CPython создал голландский программист Гвидо ван Россум.\n", + "\n", + "6. Почему Python считается быстрым, несмотря на то, что это интерпретируемый язык?\n", + "Потому что ядро CPython написано на языке С, и он вызывает инструкции из С.\n", + "\n", + "7. Напишите путь к Интерпретатору CPython на вашем компьютере\n", + "C:\\Users\\user\\anaconda3\\python.exe\n", + "\n", + "8. Что содержится в папке include в CPython?\n", + "В папке include в CPython находятся заголовочные файлы на языке С.\n", + "\n", + "9. Где можно найти исходный код CPython дайте ссылку на репозиторий гитхаб.\n", + "Ссылка на репозиторий гитхаб: https://github.com/python/cpython\n", + "\n", + "10. (опционально) Как работает интерпретатор CPython при выполнении кода?\n", + "Интерпретатор CPython выполняет код пошагово, преобразуя его в машинные инструкции для компьютера.\n", + "\n", + "11. Какая команда используется для запуска файла с помощью CPython?\n", + "python filename\n", + "\n", + "12. Можно ли запускать текстовые файлы через интерпретатор Python? Почему?\n", + "Можно, так как интерпретатору неважно, какие файлы запускать, главное – валидный пайтон-код.\n", + "\n", + "13. Как указать путь к интерпретатору и файлу для выполнения кода?\n", + "Через абсолютный или относительный путь. \n", + "\n", + "14. Чем PyPy отличается от CPython?\n", + "Этот интерпретатор работает в 10 раз быстрее, чем CPython.\n", + "\n", + "15. Почему PyPy не может использоваться для всех проектов на Python?\n", + "Это достаточно новый интерпретатор, и он ещё не совместим со всеми проектами на Python. \n", + "\n", + "16. Где можно скачать PyPy?\n", + "По ссылке: https://pypy.org/download.html\n", + "\n", + "17. Как установить PyPy после скачивания?\n", + "Извлечь папку и прописать пути в переменных средах.\n", + "\n", + "18. Как запустить файл с помощью PyPy?\n", + "В командной строке Windows ввести абсолютный путь до интерпретатора, пробел, абсолютный путь до файла, нажать Enter.\n", + "\n", + "19. Почему PyPy выполняет код быстрее, чем CPython?\n", + "PyPy использует Just-In-Time компилятор для компиляции Python в машинный код во время выполнения, что ускоряет работу.\n", + "\n", + "Практические задания\n", + "Задание 1: Поиск и установка CPython\n", + "Проверьте, установлен ли CPython на вашем компьютере:\n", + " Используйте поиск в меню \"Пуск\" (Windows) или терминале (Linux/Mac).\n", + " Введите команду python --version или python3 --version в терминале.\n", + "Если CPython не установлен, скачайте его с официального сайта Python https://www.python.org/downloads/ и установите.\n", + "\n", + "C:\\Users\\user>python --version\n", + "Python 3.13.9\n", + "\n", + "\n", + "Задание 2: Исследование структуры CPython\n", + "Найдите папку, где установлен Python (например, через команду where python в терминале или свойства ярлыка).\n", + "Откройте папку include и изучите её содержимое. Какое количество файлов на C там есть?\n", + "Перейдите на [GitHub-репозиторий CPython](https://github.com/python/cpython) и найдите файл README. Прочитайте информацию о проекте.\n", + "\n", + "В папке include количество файлов на C: 77.\n", + "\n", + "C:\\Users\\user>where python\n", + "C:\\Users\\user\\anaconda3\\python.exe\n", + "C:\\Users\\user\\AppData\\Local\\Programs\\Python\\Python310\\python.exe\n", + "C:\\Users\\user\\AppData\\Local\\Programs\\Python\\Python312\\python.exe\n", + "C:\\Users\\user\\AppData\\Local\\Microsoft\\WindowsApps\\python.exe\n", + "\n", + "C:\\Users\\user>\n", + "\n", + "Задание 3: Запуск файла с помощью CPython\n", + "Создайте текстовый файл example.txt с содержимым:\n", + "print(\"Hello from CPython!\")\n", + "Запустите файл через команду python <путь_до_файла> (замените <путь_до_файла> на фактический путь к вашему файлу).\n", + "Проверьте, что выводится на экран. Попробуйте изменить расширение файла на .py и повторите запуск.\n", + "C:\\Users\\user>C:\\Users\\user\\anaconda3\\Scripts\\ipython3.exe C:\\Users\\user\\Desktop\\Test1\\example.txt\n", + "Hello from CPython!\n", + "\n", + "C:\\Users\\user>C:\\Users\\user\\anaconda3\\Scripts\\ipython3.exe\n", + "C:\\Users\\user\\Desktop\\Test1\\example.py\n", + "Hello from CPython!\n", + "\n", + "\n", + "Задание 4: Установка и использование PyPy\n", + "Перейдите на [официальный сайт PyPy](https://www.pypy.org/) и скачайте подходящую версию для вашей операционной системы.\n", + "Распакуйте скачанный архив в удобное место.\n", + "Создайте файл example_pypy.py с кодом:\n", + "print(\"Hello from pypy!\")\n", + "Запустите файл через PyPy\n", + "pypy <путь_до_файла> (замените <путь_до_файла> на фактический путь к вашему файлу).\n", + "Проверьте, что выводится на экран. Попробуйте изменить расширение файла на .py и повторите запуск.\n", + "Вывод:\n", + "C:\\Users\\user>C:\\Users\\user\\Downloads\\pypy3.11-v7.3.20-win64\\pypy.exe C:\\Users\\user\\Desktop\\Test1\\example_pypy.py\n", + "Hello from PyPy\n", + "C:\\Users\\user>\n", + "Задание 5: Сравнение производительности CPython и PyPy\n", + "Создайте файл performance_test.py с кодом:\n", + " import time\n", + " start_time = time.time()\n", + " total = 0\n", + " for i in range(1, 10000000):\n", + " total += i\n", + " end_time = time.time()\n", + " \n", + " print(\"Result:\", total)\n", + " print(\"Execution time:\", end_time - start_time, \"seconds\")\n", + "Запустите этот файл сначала через CPython, а затем через PyPy. Запишите результаты времени выполнения для обоих интерпретаторов.\n", + "Сделайте вывод о разнице в производительности.\n", + "\n", + "Результат запуска через PyPy:\n", + "C:\\Users\\user>C:\\Users\\user\\Downloads\\pypy3.11-v7.3.20-win64\\pypy.exe C:\\Users\\user\\Desktop\\Test1\\performance_test.py\n", + "Result: 49999995000000\n", + "Execution time: 0.015625715255737305 seconds\n", + "\n", + "Результат запуска через iPython:\n", + "C:\\Users\\user>C:\\Users\\user\\anaconda3\\Scripts\\ipython.exe C:\\Users\\user\\Desktop\\Test1\\ performance_test.py\n", + "Result: 49999995000000\n", + "Execution time: 2.2144627571105957 seconds\n", + "Вывод: Время выполнения через интерпретатор iPython в 142 раза больше.\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/python/issues.ipynb b/python/issues.ipynb new file mode 100644 index 00000000..3c86586c --- /dev/null +++ b/python/issues.ipynb @@ -0,0 +1,190 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "719c7baf", + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"Issues Task 2.\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "7af62bfb", + "metadata": {}, + "source": [ + "[TASK] issues #2\n", + "Общие вопросы\n", + "1. Что такое Issues на GitHub и для чего они используются?\n", + "Ответ: Issues — это встроенная на GitHub система учёта задач, багов и предложений,\n", + "позволяющая как разработчикам, так и пользователям сообщать о проблемах,\n", + "предлагать улучшения и обсуждать различные аспекты проекта.\n", + "2. Чем Issues отличаются от других инструментов управления задачами?\n", + "Ответ: Issues связаны непосредственно с репозиторием, автоматически связываются с\n", + "коммитами и пулл-реквестами, имеют встроенную систему меток и milestone’ов, и\n", + "доступны всем участникам репозитория.\n", + "3. Какие основные компоненты (поля) есть у каждого Issue?\n", + "Ответ: Title (заголовок) и Description(описание), теги(Labels), исполнителя (Assignees),\n", + "Milestone, связанные Pull Requests, комментарии, статус, дата создания и последнего\n", + "обновления.\n", + "Создание Issues\n", + "4. Как создать новое Issue в репозитории?\n", + "Ответ: чтобы создать новый Issue, нужно зайти в репозиторий. Допустим, мы нашли\n", + "файл с проблемным кодом. Выделяем строки проблемной кода в файле, копируем\n", + "permalink. Затем нужно открыть вкладку “Issues” нажать зеленую кнопку “New Issue”.\n", + "Далее заполняем заголовок(Title) и описание (Description), при необходимости можно\n", + "использовать шаблоны, затем нажимаем на кнопку «Submit new issue».\n", + "5. Какие данные рекомендуется указывать в описании Issue для лучшего\n", + "понимания задачи?\n", + "Ответ: содержание задачи. Например, файл и строки кода, которые нужно\n", + "прокомментировать.\n", + "6. Какие теги (labels) можно добавить к Issue? Какие из них стандартные?\n", + "Ответ: по умолчанию, GitHub предлагает следующие метки:\n", + "bug - что-то не работает\n", + "documentation - улучшение или добавление документации\n", + "duplicate - указывает на то, что такой Issue уже существует.\n", + "enhancement - указывает на новые запросы функций\n", + "good first Issue - для тех, кто создаёт Issue впервые\n", + "help wanted - указывает на то, что нужна помощь по какому-либо вопросу или запросу\n", + "на слияние\n", + "invalid - указывает на неактуальность\n", + "question - указывает на необходимость получения информации\n", + "wontfix - указывает на то, что работа над проблемой продолжаться не будет.\n", + "Эти метки могут быть отредактированы или удалены, а также можно создать\n", + "собственные метки.\n", + "7. Как прикрепить Assignees (ответственных) к Issue?\n", + "Ответ: справа на панели в разделе “Assignees” выберите “Редактировать”. Из\n", + "выпадающего списка нужно выбрать пользователя, которого хотите назначить в\n", + "качестве ответственного.\n", + "Работа с Issues\n", + "8. Как использовать Labels для классификации задач?\n", + "В каждом новом репозитории есть набор стандартных labels, их можно редактировать\n", + "или удалять, также можно создать новые labels. Теги должны соответствовать целям\n", + "Issue.\n", + "9. Для чего нужен Milestone, и как связать его с Issue?\n", + "Ответ: Milestones - это контрольные точки, способ группировки связанных задач,\n", + "направленных на достижение конкретного результата. Например, можно сгруппировать\n", + "Issues по дате.\n", + "Чтобы связать Milestone c Issue, нужно:\n", + "- перейти на страницу репозитория\n", + "- нажать на вкладку Issues и выбрать Issue, которое вы хотите связать\n", + "- выбрать наверху в меню Milestones\n", + "- в поле “Filter Milestones” начните вводить название существующего Milestone,\n", + "затем щёлкните по названию, чтобы связать его с элементом.\n", + "10. Как привязать Issue к пул-реквесту (Pull Request)?\n", + "Ответ: в описании или комментарии к Pull Request написать “Closes #11 или Fixed #11\n", + "(здесь 11 - номер Issue). Issue автоматически закроется при слиянии PR.\n", + "11. Как добавить комментарий к существующему Issue?\n", + "Ответ: внизу есть поле для комментариев.\n", + "Закрытие и завершение Issues\n", + "12. Как закрыть Issue вручную?\n", + "Ответ: открыть нужный Issue, прокрутить вниз и нажать кнопку “Close issue”.\n", + "13. Можно ли автоматически закрыть Issue с помощью сообщения в коммите или\n", + "пул-реквесте? Как это сделать?\n", + "Ответ: зайти в файл, сделать исправления, на верхней панели в правом углу выбрать\n", + "“Commit changes“. Заполнить заголовок и описание коммита и нажать на “Sign off and\n", + "commit changes“.\n", + "14. Как повторно открыть закрытое Issue, если работа ещё не завершена?\n", + "Ответ: перейти на страницу репозитория, нажать на вкладку Issues и в списке Closed\n", + "выбрать Issue, которое вы хотите открыть заново. Нажатием на заголовок перейдите в\n", + "Issue и внизу кликните по кнопке “Reopen issue”.\n", + "Фильтрация и поиск\n", + "15. Как найти все открытые или закрытые Issues в репозитории?\n", + "Ответ: перейти на страницу репозитория, нажать на вкладку Issues. Появится список с\n", + "двумя вкладками: Open и Closed.\n", + "16. Как использовать фильтры для поиска Issues по меткам, исполнителям или\n", + "другим критериям?\n", + "Ответ: рядом с вкладками Open и Closed есть вкладки “Author”, “Labels”, “Projects”,\n", + "“Milestones”.\n", + "17. Как сортировать Issues по приоритету, дате создания или другим параметрам?\n", + "Ответ: на верхней панели в правом верхнем углу нажать на три точки, появится\n", + "ниспадающее меню, выбрать Sort by …(Created on, last updated, Total comments, Best\n", + "match, Reactions)\n", + "Интеграции и автоматизация\n", + "18. Как настроить автоматические уведомления о новых или изменённых Issues?\n", + "Ответ: в профиле пользователя можно на вкладке Notifications настроить уведомления.\n", + "19. Что такое Projects в контексте GitHub, и как связать их с Issues?\n", + "Ответ: GitHub Projects - инструменты для создания Канбан-досок и таблиц,\n", + "позволяющие визуализировать рабочие процессы и отслеживать прогресс выполнения\n", + "задач.\n", + "Чтобы связать project c issue, нужно перейти в проект, в нижней строке любого столбца\n", + "или списка (рядом со знаком «+») нажмите знак плюса или просто поместить туда\n", + "курсор. Затем можно:\n", + "- вставить URL существующей Issue и нажать Enter.\n", + "- Найти существующую issue, набрав #, а затем номер или заголовок задачи, и\n", + "выбрать ее из результатов.\n", + "- создать новую issue, ввести заголовок и нажать Enter. Вы можете щелкнуть по\n", + "новому элементу, чтобы добавить дополнительные сведения (описание,\n", + "ответственные, метки).\n", + "20. Какие сторонние инструменты можно использовать для автоматизации работы с\n", + "Issues (например, боты, Webhooks)?\n", + "Ответ:\n", + "Zapier - сервис автоматизации рабочих действий, включает отслеживание новых\n", + "Issue/комментариев, автоматическое назначение задач, обновление статусов и\n", + "уведомления в мессенджерах (Slack, Discord) при пушах или релизах\n", + "Probot - платформа для создания GitHub ботов, которые могут автоматически\n", + "реагировать на действия в репозитории, например на создание Issues.\n", + "IFTTT (If This Then That) — это облачная платформа и приложение для\n", + "автоматизации взаимодействия между различными веб-сервисами и\n", + "приложениями, включая GitHub.\n", + "Webhooks - встроенная функция GitHub, которая позволяет отправлять HTTP\n", + "POST запросы на указанный URL при определённых событиях (например,\n", + "создание или изменение Issues).\n", + "21.\n", + "Коллаборация\n", + "21. Как упомянуть другого пользователя в комментарии к Issue?\n", + "Ответ: нужно использовать символ @, после которого вводится имя пользователя,\n", + "например @svetlana-s88. Упомянутый пользователь получит уведомление о том, что\n", + "его упомянули в комментарии.\n", + "22. Как запросить дополнительные данные или уточнения у автора Issue?\n", + "Ответ: все вопросы можно задать в комментарии к Issue.\n", + "23. Что делать, если Issue неактуально или его нужно объединить с другим?\n", + "Ответ: если Issue неактуально, его можно закрыть с помощью кнопки Close issue,\n", + "написав при этом комментарий об неактуальности.\n", + "Для объединения Issue с другим можно использовать метку “duplicate”. В комментарии\n", + "к этому Issue нужно вставить ссылку на основной Issue, затем этот Issue закрыть.\n", + "Практические аспекты\n", + "24. Как использовать шаблоны для создания Issues?\n", + "Ответ: В репозитории нужно создать папку .github/ISSUE_TEMPLATE. В этой папке\n", + "нужно создать файлы формата .mb для каждого шаблона, например, bug_report.mb,\n", + "feature_request.mb. В каждом файле описать структуру шаблона, включая заголовки и\n", + "инструкцию по заполнению.\n", + "25. Что такое Linked Issues, и как создать связь между задачами?\n", + "Ответ: Чтобы создать связь между задачами, нужно: \n", + "- Открыть Issue или пул-реквест,\n", + "который хотим связать с другим.\n", + "- На правой боковой панели найти раздел \"Linked\n", + "issues\". \n", + "- Нажать \"Link an issue\" и выбрать Issue из списка или ввести его номер. \n", + "- Выбрать тип связи, например, \"blocks\" (блокирует), \"is blocked by\" (заблокирован) или\n", + "\"relates to\" (связан с).\n", + "- Нажать \"Link\" для создания связи.\n", + "26. Какие метрики (например, время выполнения) можно отслеживать с помощью\n", + "Issues?\n", + "Ответ:\n", + "- Time to Close: Время, прошедшее с момента создания Issue до его закрытия.\n", + "- Количество комментариев\n", + "- Количество открытых и закрытых Issues\n", + "- Среднее время ответа: Время, которое проходит между созданием Issue и первым\n", + "комментарием или ответом от команды.\n", + "- Количество переоткрытий: Сколько раз Issue было закрыто и затем повторно открыто,\n", + "что может указывать на сложность задачи или недостаток информации.\n", + "- Распределение по меткам: Анализ количества Issues по разным меткам (например,\n", + "баги, улучшения) для понимания основных проблем в проекте.\n", + "27. Какие best practices рекомендуются при работе с Issues в команде?\n", + "Ответ:\n", + "- закрывать устаревшие Issue и дубликаты;\n", + "- ссылаться на связанные Pull Requests или коммиты." + ] + } + ], + "metadata": { + "language_info": { + "name": "python" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/python/issues.py b/python/issues.py new file mode 100644 index 00000000..bc8dba50 --- /dev/null +++ b/python/issues.py @@ -0,0 +1,164 @@ +"""Issues Task 2.""" + +# [TASK] issues #2 +# Общие вопросы +# 1. Что такое Issues на GitHub и для чего они используются? +# Ответ: Issues — это встроенная на GitHub система учёта задач, багов и предложений, +# позволяющая как разработчикам, так и пользователям сообщать о проблемах, +# предлагать улучшения и обсуждать различные аспекты проекта. +# 2. Чем Issues отличаются от других инструментов управления задачами? +# Ответ: Issues связаны непосредственно с репозиторием, автоматически связываются с +# коммитами и пулл-реквестами, имеют встроенную систему меток и milestone’ов, и +# доступны всем участникам репозитория. +# 3. Какие основные компоненты (поля) есть у каждого Issue? +# Ответ: Title (заголовок) и Description(описание), теги(Labels), исполнителя (Assignees), +# Milestone, связанные Pull Requests, комментарии, статус, дата создания и последнего +# обновления. +# Создание Issues +# 4. Как создать новое Issue в репозитории? +# Ответ: чтобы создать новый Issue, нужно зайти в репозиторий. Допустим, мы нашли +# файл с проблемным кодом. Выделяем строки проблемной кода в файле, копируем +# permalink. Затем нужно открыть вкладку “Issues” нажать зеленую кнопку “New Issue”. +# Далее заполняем заголовок(Title) и описание (Description), при необходимости можно +# использовать шаблоны, затем нажимаем на кнопку «Submit new issue». +# 5. Какие данные рекомендуется указывать в описании Issue для лучшего +# понимания задачи? +# Ответ: содержание задачи. Например, файл и строки кода, которые нужно +# прокомментировать. +# 6. Какие теги (labels) можно добавить к Issue? Какие из них стандартные? +# Ответ: по умолчанию, GitHub предлагает следующие метки: +# bug - что-то не работает +# documentation - улучшение или добавление документации +# duplicate - указывает на то, что такой Issue уже существует. +# enhancement - указывает на новые запросы функций +# good first Issue - для тех, кто создаёт Issue впервые +# help wanted - указывает на то, что нужна помощь по какому-либо вопросу или запросу +# на слияние +# invalid - указывает на неактуальность +# question - указывает на необходимость получения информации +# wontfix - указывает на то, что работа над проблемой продолжаться не будет. +# Эти метки могут быть отредактированы или удалены, а также можно создать +# собственные метки. +# 7. Как прикрепить Assignees (ответственных) к Issue? +# Ответ: справа на панели в разделе “Assignees” выберите “Редактировать”. Из +# выпадающего списка нужно выбрать пользователя, которого хотите назначить в +# качестве ответственного. +# Работа с Issues +# 8. Как использовать Labels для классификации задач? +# В каждом новом репозитории есть набор стандартных labels, их можно редактировать +# или удалять, также можно создать новые labels. Теги должны соответствовать целям +# Issue. +# 9. Для чего нужен Milestone, и как связать его с Issue? +# Ответ: Milestones - это контрольные точки, способ группировки связанных задач, +# направленных на достижение конкретного результата. Например, можно сгруппировать +# Issues по дате. +# Чтобы связать Milestone c Issue, нужно: +# - перейти на страницу репозитория +# - нажать на вкладку Issues и выбрать Issue, которое вы хотите связать +# - выбрать наверху в меню Milestones +# - в поле “Filter Milestones” начните вводить название существующего Milestone, +# затем щёлкните по названию, чтобы связать его с элементом. +# 10. Как привязать Issue к пул-реквесту (Pull Request)? +# Ответ: в описании или комментарии к Pull Request написать “Closes #11 или Fixed #11 +# (здесь 11 - номер Issue). Issue автоматически закроется при слиянии PR. +# 11. Как добавить комментарий к существующему Issue? +# Ответ: внизу есть поле для комментариев. +# Закрытие и завершение Issues +# 12. Как закрыть Issue вручную? +# Ответ: открыть нужный Issue, прокрутить вниз и нажать кнопку “Close issue”. +# 13. Можно ли автоматически закрыть Issue с помощью сообщения в коммите или +# пул-реквесте? Как это сделать? +# Ответ: зайти в файл, сделать исправления, на верхней панели в правом углу выбрать +# “Commit changes“. Заполнить заголовок и описание коммита и нажать на “Sign off and +# commit changes“. +# 14. Как повторно открыть закрытое Issue, если работа ещё не завершена? +# Ответ: перейти на страницу репозитория, нажать на вкладку Issues и в списке Closed +# выбрать Issue, которое вы хотите открыть заново. Нажатием на заголовок перейдите в +# Issue и внизу кликните по кнопке “Reopen issue”. +# Фильтрация и поиск +# 15. Как найти все открытые или закрытые Issues в репозитории? +# Ответ: перейти на страницу репозитория, нажать на вкладку Issues. Появится список с +# двумя вкладками: Open и Closed. +# 16. Как использовать фильтры для поиска Issues по меткам, исполнителям или +# другим критериям? +# Ответ: рядом с вкладками Open и Closed есть вкладки “Author”, “Labels”, “Projects”, +# “Milestones”. +# 17. Как сортировать Issues по приоритету, дате создания или другим параметрам? +# Ответ: на верхней панели в правом верхнем углу нажать на три точки, появится +# ниспадающее меню, выбрать Sort by …(Created on, last updated, Total comments, Best +# match, Reactions) +# Интеграции и автоматизация +# 18. Как настроить автоматические уведомления о новых или изменённых Issues? +# Ответ: в профиле пользователя можно на вкладке Notifications настроить уведомления. +# 19. Что такое Projects в контексте GitHub, и как связать их с Issues? +# Ответ: GitHub Projects - инструменты для создания Канбан-досок и таблиц, +# позволяющие визуализировать рабочие процессы и отслеживать прогресс выполнения +# задач. +# Чтобы связать project c issue, нужно перейти в проект, в нижней строке любого столбца +# или списка (рядом со знаком «+») нажмите знак плюса или просто поместить туда +# курсор. Затем можно: +# - вставить URL существующей Issue и нажать Enter. +# - Найти существующую issue, набрав #, а затем номер или заголовок задачи, и +# выбрать ее из результатов. +# - создать новую issue, ввести заголовок и нажать Enter. Вы можете щелкнуть по +# новому элементу, чтобы добавить дополнительные сведения (описание, +# ответственные, метки). +# 20. Какие сторонние инструменты можно использовать для автоматизации работы с +# Issues (например, боты, Webhooks)? +# Ответ: +# Zapier - сервис автоматизации рабочих действий, включает отслеживание новых +# Issue/комментариев, автоматическое назначение задач, обновление статусов и +# уведомления в мессенджерах (Slack, Discord) при пушах или релизах +# Probot - платформа для создания GitHub ботов, которые могут автоматически +# реагировать на действия в репозитории, например на создание Issues. +# IFTTT (If This Then That) — это облачная платформа и приложение для +# автоматизации взаимодействия между различными веб-сервисами и +# приложениями, включая GitHub. +# Webhooks - встроенная функция GitHub, которая позволяет отправлять HTTP +# POST запросы на указанный URL при определённых событиях (например, +# создание или изменение Issues). +# 21. +# Коллаборация +# 21. Как упомянуть другого пользователя в комментарии к Issue? +# Ответ: нужно использовать символ @, после которого вводится имя пользователя, +# например @svetlana-s88. Упомянутый пользователь получит уведомление о том, что +# его упомянули в комментарии. +# 22. Как запросить дополнительные данные или уточнения у автора Issue? +# Ответ: все вопросы можно задать в комментарии к Issue. +# 23. Что делать, если Issue неактуально или его нужно объединить с другим? +# Ответ: если Issue неактуально, его можно закрыть с помощью кнопки Close issue, +# написав при этом комментарий об неактуальности. +# Для объединения Issue с другим можно использовать метку “duplicate”. В комментарии +# к этому Issue нужно вставить ссылку на основной Issue, затем этот Issue закрыть. +# Практические аспекты +# 24. Как использовать шаблоны для создания Issues? +# Ответ: В репозитории нужно создать папку .github/ISSUE_TEMPLATE. В этой папке +# нужно создать файлы формата .mb для каждого шаблона, например, bug_report.mb, +# feature_request.mb. В каждом файле описать структуру шаблона, включая заголовки и +# инструкцию по заполнению. +# 25. Что такое Linked Issues, и как создать связь между задачами? +# Ответ: Чтобы создать связь между задачами, нужно: +# - Открыть Issue или пул-реквест, +# который хотим связать с другим. +# - На правой боковой панели найти раздел "Linked +# issues". +# - Нажать "Link an issue" и выбрать Issue из списка или ввести его номер. +# - Выбрать тип связи, например, "blocks" (блокирует), "is blocked by" (заблокирован) или +# "relates to" (связан с). +# - Нажать "Link" для создания связи. +# 26. Какие метрики (например, время выполнения) можно отслеживать с помощью +# Issues? +# Ответ: +# - Time to Close: Время, прошедшее с момента создания Issue до его закрытия. +# - Количество комментариев +# - Количество открытых и закрытых Issues +# - Среднее время ответа: Время, которое проходит между созданием Issue и первым +# комментарием или ответом от команды. +# - Количество переоткрытий: Сколько раз Issue было закрыто и затем повторно открыто, +# что может указывать на сложность задачи или недостаток информации. +# - Распределение по меткам: Анализ количества Issues по разным меткам (например, +# баги, улучшения) для понимания основных проблем в проекте. +# 27. Какие best practices рекомендуются при работе с Issues в команде? +# Ответ: +# - закрывать устаревшие Issue и дубликаты; +# - ссылаться на связанные Pull Requests или коммиты. diff --git a/python/venv.ipynb b/python/venv.ipynb new file mode 100644 index 00000000..94e8c6d1 --- /dev/null +++ b/python/venv.ipynb @@ -0,0 +1,100 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "id": "a6e9c430", + "metadata": {}, + "outputs": [], + "source": [ + "\"\"\"Quiz 7.\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "c01338ff", + "metadata": {}, + "source": [ + "1.\tЧто делает команда python -m venv venv? \n", + "\n", + "Ответ: создаёт виртуальное окружение, название окружения venv\n", + "\n", + "1.1 Что делает каждая команда в списке ниже?\n", + "\n", + "pip list - отображает пакеты, находящиеся в pip\n", + "pip freeze > requirements.txt - выгружает все пакеты в один файл, который называется requirements.txt.\n", + "pip install -r requirements.txt - устанавливает все пакеты из файла requirements.txt одним махом.\n", + "\n", + "2.\tЧто делает каждая команда в списке ниже?\n", + "\n", + "conda env list - используется для отображения списка всех существующих окружений conda вместе с путями к ним в файловой системе. \n", + "conda create -n env_name python=3.5 - создаёт виртуальное окружение conda с именем env_name, здесь python=3.5 - версия питона.\n", + "conda env update -n env_name -f file.yml - обновляет окружение env_name зависимостями из yaml-файла.\n", + "source activate env_name - активирует виртуальное окружение с именем env_name. \n", + "source deactivate - деактивирует виртуальное окружение \n", + "conda clean -all - удаляет кэш и неиспользуемые пакеты. \n", + "\n", + "3.\tВставьте скрин вашего терминала, где вы активировали сначала venv, потом conda, назовите окружение “Senatorov”.\n", + "\n", + "Ответ: image.png\n", + "4.\tКак установить необходимые пакеты внутрь виртуального окружения для conda/venv?\n", + "\n", + "Ответ: 1) для venv: \n", + "-активация нужного окружения и установка нужных зависимостей с помощью команды pip install “имя зависимости”.\n", + "-создать файл requirements.txt, записать туда все необходимые зависимости и с помощью команды pip install -r requirements.txt установить их.\n", + "2) для conda: \n", + "-активация нужного окружения и установка нужных зависимостей с помощью команды conda install “имя зависимости”.\n", + "-создать файл environment.yml, записать туда все необходимые зависимости и с помощью команды conda env update -f environment.yml установить их или обновить. \n", + "\n", + "5.\tЧто делают эти команды?\n", + "\n", + "pip freeze > requirements.txt -выгружает все пакеты venv в один файл, который называется requirements.txt.\n", + "conda env export > environment.yml - выгружает файлы зависимостей conda в файл environment.yml \n", + "\n", + "5.1 вставьте скрин, где будет видна папка VENV в вашем репозитории а также файлы зависимостей requirements.txt и environment.yml, файлы должны содержать зависимости\n", + "Ответ: image.png \n", + " image.png\n", + "6.\tЧто делают эти команды?\n", + "\n", + "pip install -r requirements.txt - устанавливает файлы зависимостей, находящиеся в requirements.txt, через пакетный менеджер pip.\n", + "conda env create -f environment.yml - устанавливает файлы зависимостей, находящиеся в environment.yml через пакетный менеджер conda.\n", + "\n", + "7.\tЧто делают эти команды?\n", + "\n", + "pip list - отображает список зависимостей выбранного окружения в venv.\n", + "pip show - выводит подробную информацию об установленном пакете: его версии, авторе, лицензии, месте установки, описании и зависимостях.\n", + "conda list - отображает список зависимостей выбранного окружения в conda. \n", + "\n", + "8.\tГде по умолчанию больше пакетов venv/pip или conda? и почему дата сайентисты используют conda? \n", + "\n", + "Ответ: больше пакетов в conda. В pip нет пакетов для Data science,поэтому дата сайентисты используют conda.\n", + "\n", + "9.\tвставьте скрин где будет видно, Выбор интерпретатора Python (conda) в VS Code/cursor\n", + "Ответ: image.png\n", + "\n", + "10.\tдобавьте в .gitignore папку SENATOROV\n", + "\n", + "11.\tЗачем нужно виртуальное окружение? \n", + "Ответ: виртуальное окружение - это изолированное пространство, в котором можно установить необходимую версию Python и пакеты, отличные от тех, которые установлены в системе. Это позволяет предотвратить конфликты между различными версиями Python и пакетов. Позволяет создавать “чистый” проект без лишних зависимостей. \n", + "\n", + "12.\tС этого момента надо работать в виртуальном окружении conda, ты научился(-ась) выгружать зависимости и работать с окружением?\n", + "Ответ: да\n", + "13.\tУдалите папку VENV, она больше не нужна, мы же не разрабы, нам нужна только conda\n", + "Ответ: удалила\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "name": "python", + "version": "3.13.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/python/venv.py b/python/venv.py new file mode 100644 index 00000000..b7ed7741 --- /dev/null +++ b/python/venv.py @@ -0,0 +1,69 @@ +"""Quiz 7.""" + +# 1. Что делает команда python -m venv venv? +# +# Ответ: создаёт виртуальное окружение, название окружения venv +# +# 1.1 Что делает каждая команда в списке ниже? +# +# pip list - отображает пакеты, находящиеся в pip +# 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 с именем env_name, здесь python=3.5 - версия питона. +# conda env update -n env_name -f file.yml - обновляет окружение env_name зависимостями из yaml-файла. +# source activate env_name - активирует виртуальное окружение с именем env_name. +# source deactivate - деактивирует виртуальное окружение +# conda clean -all - удаляет кэш и неиспользуемые пакеты. +# +# 3. Вставьте скрин вашего терминала, где вы активировали сначала venv, потом conda, назовите окружение “Senatorov”. +# +# Ответ: image.png +# 4. Как установить необходимые пакеты внутрь виртуального окружения для conda/venv? +# +# Ответ: 1) для venv: +# -активация нужного окружения и установка нужных зависимостей с помощью команды pip install “имя зависимости”. +# -создать файл requirements.txt, записать туда все необходимые зависимости и с помощью команды pip install -r requirements.txt установить их. +# 2) для conda: +# -активация нужного окружения и установка нужных зависимостей с помощью команды conda install “имя зависимости”. +# -создать файл environment.yml, записать туда все необходимые зависимости и с помощью команды conda env update -f environment.yml установить их или обновить. +# +# 5. Что делают эти команды? +# +# pip freeze > requirements.txt -выгружает все пакеты venv в один файл, который называется requirements.txt. +# conda env export > environment.yml - выгружает файлы зависимостей conda в файл environment.yml +# +# 5.1 вставьте скрин, где будет видна папка VENV в вашем репозитории а также файлы зависимостей requirements.txt и environment.yml, файлы должны содержать зависимости +# Ответ: image.png +# image.png +# 6. Что делают эти команды? +# +# pip install -r requirements.txt - устанавливает файлы зависимостей, находящиеся в requirements.txt, через пакетный менеджер pip. +# conda env create -f environment.yml - устанавливает файлы зависимостей, находящиеся в environment.yml через пакетный менеджер conda. +# +# 7. Что делают эти команды? +# +# pip list - отображает список зависимостей выбранного окружения в venv. +# pip show - выводит подробную информацию об установленном пакете: его версии, авторе, лицензии, месте установки, описании и зависимостях. +# conda list - отображает список зависимостей выбранного окружения в conda. +# +# 8. Где по умолчанию больше пакетов venv/pip или conda? и почему дата сайентисты используют conda? +# +# Ответ: больше пакетов в conda. В pip нет пакетов для Data science,поэтому дата сайентисты используют conda. +# +# 9. вставьте скрин где будет видно, Выбор интерпретатора Python (conda) в VS Code/cursor +# Ответ: image.png +# +# 10. добавьте в .gitignore папку SENATOROV +# +# 11. Зачем нужно виртуальное окружение? +# Ответ: виртуальное окружение - это изолированное пространство, в котором можно установить необходимую версию Python и пакеты, отличные от тех, которые установлены в системе. Это позволяет предотвратить конфликты между различными версиями Python и пакетов. Позволяет создавать “чистый” проект без лишних зависимостей. +# +# 12. С этого момента надо работать в виртуальном окружении conda, ты научился(-ась) выгружать зависимости и работать с окружением? +# Ответ: да +# 13. Удалите папку VENV, она больше не нужна, мы же не разрабы, нам нужна только conda +# Ответ: удалила +# diff --git a/quiz1.ipynb b/quiz1.ipynb new file mode 100644 index 00000000..f1e7afec --- /dev/null +++ b/quiz1.ipynb @@ -0,0 +1,208 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "id": "839d001a", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Quiz 1.'" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"Quiz 1.\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "7c4ea25e", + "metadata": {}, + "source": [ + "Список вопросов к видео https://youtu.be/hW_7hodGxVU?si=tCEVs00xGt2q61eW (АЛГОРИТМ ПРИНЯТИЯ И ОТДАЧИ ДОМАШКИ):\n", + " \n", + "(По желанию )В ответе подробно всё опишите и обязательно нужно указывать тайм код из видео где я это сказал, по желанию, дополнительно прикладываем скриншот из видео.\n", + "Если вы знаете ответы на вопросы из Вашего опыта, то таймкоды из видео не надо указывать и т.д.\n", + "\n", + "1) Как понять, что домашка пришла?\n", + "В чате homework будет сообщение @а прими пул\n", + "2) Как принять домашку?\n", + "Заходим а Гитхаб десктоп, нажимаем Fetch origin, заходим в history и смотрим самый верхний коммит.\n", + "3) Зачем нужна кнопка history и какие функции появляются при нажатии правой кнопки мыши на коммит?\n", + "Кнопка history показывает коммиты. Если нажать правой кнопкой на коммит, то выйдет контекстное меню. \n", + "\n", + "3.1) Где брать ссылку на коммит? куда её отправлять? \n", + "Ссылку брать с Гитхаба и отправлять в чат homework, пишем \"Коммит отдал\"\n", + "4) Что такое файл лога? \n", + "В файле лога нужно заполнять в конце каждого урока. В этом файле нужно писать дату и что запомнилось в течение урока. \n", + "4.1) Когда нужно его пушить?\n", + "После заполнения и проверки на ошибки.\n", + "5) Что такое интерпритатор? \n", + "Это программа, которая построчно выполняет команды, написанные на языке программирования. \n", + "6) Где можно выбрать интерпритатор?\n", + "В правом верхнем углу. \n", + "7) Что такое модуль? \n", + "Это файл с расширением .py или .ipynb.\n", + "8) Как создать и отправить коммит?\n", + "Создать файл с расширением .ipynb, заполнить, проверить на ошибки, Commit&sync, Commit&push\n", + "9) Как посмотреть что коммит точно отправлен и находится в github?\n", + "Коммит должен быть виден на гитхабе и в Hidtory в кошке. \n", + "10) Какая команда показывает что код не прошёл проверки на ошибки? \n", + "Команда в терминале pre-commit run --all-files\n", + "10.1) Напишите список линтеров которые используются для проверки кода и дайте их краткую характеристику.\n", + "Mypy - проверяет типы\n", + "Pylint - проверяет соответствие стандартам кодирования.\n", + "Pydocstyle - ищет отсутствие docstring\n", + "Flake8 - обнаруживает стилистические ошибки\n", + "\n", + "\n", + "11) Как узнать какой именно линтер не прошёл проверку?\n", + "При проверке через терминал командой pre-commit run --all-files выйдет статус Failed.\n", + "12) Линтер Pylint видит markdown?\n", + "нет\n", + "13) Номер ячейки в терминале и номер ячейки в vs code может отличаться? в каком случае?\n", + "Может. Линтер не видит ячейки markdown.\n", + "14) Где посмотреть номер ячейки в vscode?\n", + "Можно посмотреть внизу справа. \n", + "15) В каком формате ipynb отправляется в гитхаб? причём здесь JSON?\n", + "Файлы ipynb отпраляются на гитхаб в формате JSON.\n", + "16) Где посмотреть в какой ячейке ошибка?\n", + "По коду ошибки или Ctrl+F.\n", + "17) Как запустить терминал?\n", + "Terminal - New Terminal\n", + "18) Что такое линтер?\n", + "Это программа, которая проверяет файл на корректность.\n", + "19) В какой сайт нужно вставлять код ошибки если ошибка связана с pylint?\n", + "На сайт pylint.readthedocs.io\n", + "20) Секция pydocstyle в большинстве случае автоматический закрывается после исправления ошибок в каком линтере?\n", + "В pylint\n", + "21) Что такое описание модуля? Оно должно отражать информацию о том что находится в модуле?\n", + "Это описание того, что находится в модуле. Должно отражвть информацию о том, что находится в модуле. \n", + "21.1) С какой git команды начинается утро программиста?\n", + "С команды Fetch origin. \n", + "22) После внесения изменений в файлах, кнопка open in vs code пропадает в кошке, как по другому открыть vs code из кошки?\n", + "Нажать правой кнопкой на Current repository и выбрать open in VS code.\n", + "23) Что такое stash? \n", + " Общее объяснение концепции.\n", + " stash - буфер обмена, где можно спрятать локальные изменения. \n", + " Мы можем временно сохранить наши изменения, не коммитя их а репозиторий, для дальнейших изменений. \n", + "23.1) Как сохранить стэш?\n", + " git командa(подсказка: https://t.me/c/1937296927/3602/19531): \n", + "git stash save \"Name_stash\" - сохранение в буфер обмена\n", + "git stash apply \"Number_stash\" - извлечение из буфера обмена.\n", + " Кнопка в vs code:\n", + "Stash changes and continue\n", + "23.2) Как восстановить стэш(подсказка: https://t.me/c/1937296927/3602/25747)?:\n", + "\n", + "\n", + " git команда(подсказка: https://t.me/c/1937296927/3602/19531)?:\n", + "git stash apply \"Number_stash\"\n", + "23.3) Различие между стэшем и коммитом. \n", + " Когда лучше сохранить изменения в стэше, а когда коммитить.\n", + " Коммитить - когда мы завершили действия и можем вылоожить в ветку.\n", + " Стэшить - когда мы не завершили работу и хотим вернуться, чтобы доделать. \n", + "23.4) Как просмотреть список сохраненных стэшей? \n", + " git команда (подсказка: https://t.me/c/1937296927/3602/19531):\n", + "git stash list \n", + "23.5) Как удалить стэш? \n", + " Команды для удаления отдельных стэшей или всех сразу.\n", + " git команда (подсказка: https://t.me/c/1937296927/3602/19531):\n", + "git stash drop\n", + "git stash clean\n", + "23.6) Практические примеры использования стэша. \n", + " Краткие сценарии, где стэш помогает.\n", + "Спрятать изменения в моменте, когда нужно поработать над другой задачей\n", + "Спрятать измения, когда возник конфликт.\n", + "24) Где посмотреть что есть конфликт в файлах? \n", + "Рядом с файлом readme будет стоять треугольник с восклицательным знаком. Нажимаем Open in VS Code. Зеленым цветом будет выделено то, что с гитхаба, синим - локальные изменения. \n", + "24.1) Когда он появляется?\n", + "Когда в файле работвют одновременно два человека. \n", + "25) Как решить конфликт в файлах?\n", + "Нажать Reserve in Merge Editor, Complete Merge. \n", + "26) Напишиие правильное утверждение\n", + "-Зелёное то что пришло с гитхаба и синее локальные изменения или синее то что пришло с гитхаба и зелёное это локальные изменения \n", + "Зеленое - с гитхаба\n", + "Синее - локальные изменения.\n", + "27) Если мы работаем в одном файле, можно ли принять pull после того как вы спрячете в стэш свои изменения? \n", + "да, можно.\n", + "27.1) Что может произойти когда stash восстановите после принятия pull?\n", + "Может произойти конфликт. \n", + "28) Сколько способов решения конфликтов было показано в видео? Напишите ЧИСЛО и укажите их способы.\n", + "2 способа\n", + "1 способ - с помощью Accept Incoming Change,Accept Current Change, Accept Both Changes\n", + "2 способ - вручную удалить то что не нужно. \n", + "29) Что делает кнопка complete merge?\n", + "Смерживает конечные изменения из конфликтов в один.\n", + "30) В какой чат нужно писать если остались вопросы?\n", + "в чат HELP ME\n", + "31) Что такое FORK? Зачем его делают? \n", + "Форк - это копия чужого репозитория. Делают, чтобы вносить изменения, не затрагивая оригинала. \n", + "32) Как скачать форкнутый репозиторий на локальный компьютер?\n", + "Нажать на него, выбрать Open in GitHub Desktop, затем Clone\n", + "33) С какой вероятностью ваши ошибки были уже решены? и кто их решил?\n", + "C вероятностью 90%. Их решил Сенаторов Руслан Олегович.\n", + "34) Как создать файл в vs code?\n", + "Нажать на листочек с плюсиком и ввести название и формат файла. \n", + "35) Файл лога нужно заполнять в конце каждого урока?\n", + "Да.\n", + "==================\n", + "\n", + "Дополнительные вопросы:\n", + "1)Какая команда конвертирует файл в py из ipynb? \n", + "подсказка https://t.me/c/1937296927/1/26527 \n", + "jupitex --to py \n", + "2) Что такое пакетный менеджер? Вы пользуетесь пакетным менеджером conda или pip? Какой лучше использовать для дата сайнс?\n", + "Пакетный менеджер - инструмент для установки и управления библиотеками/пакетами\n", + "Для Data Science лучше использовать Conda - он упраляет не только Python-пакетами, но и зависимостями системы, библиотеками (NumPy, SciPy) с нативными расширениями.\n", + "3) Почему расширение py лучше чем ipynb?\n", + "- удобнее для версионирования (Git лучше работает с текстом)\n", + "- Линтеры (Pilint, Pidocstyle) корректно работают только .py\n", + "- проще ревью кода\n", + "- лучше для продакшн-кода и автоматизации\n", + "4) Что такое pep8? \n", + "подсказка:https://peps.python.org/pep-0008/\n", + "pep8 - официальный стиль кода Python.\n", + "4.1) линтеры проверяют на соблюдение pep8?\n", + "Да. Flake8 и Pylint проверяют на соответствие pep8. \n", + "4.2) Какая нотация используется для создания переменных? \n", + "ответ на 85-95 страницы https://t.me/c/1937296927/1/16676\n", + "snake_case (нижнее подчеркивание), например, first_variable\n", + "4.3) Может ли переменная состоять из одной буквы например андерскор \"_\" ?\n", + "Да.\n", + "4.4) Зачем и где мы используем андерскор _ \n", + "в начале два и конце переменных\n", + "4.5) По PEP8 допустима переменная в одну букву?\n", + "ответ на 85-95 страницы https://t.me/c/1937296927/1/16676\n", + "да, но не рекомендовано для обычных переменных. Лучше использовать понятные имена. Исключения - в циклах, в малых областях видимости. \n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/quiz1.py b/quiz1.py new file mode 100644 index 00000000..3d3cc0e9 --- /dev/null +++ b/quiz1.py @@ -0,0 +1,158 @@ +"""Quiz 1.""" + +# Список вопросов к видео https://youtu.be/hW_7hodGxVU?si=tCEVs00xGt2q61eW (АЛГОРИТМ ПРИНЯТИЯ И ОТДАЧИ ДОМАШКИ): +# +# (По желанию )В ответе подробно всё опишите и обязательно нужно указывать тайм код из видео где я это сказал, по желанию, дополнительно прикладываем скриншот из видео. +# Если вы знаете ответы на вопросы из Вашего опыта, то таймкоды из видео не надо указывать и т.д. +# +# 1) Как понять, что домашка пришла? +# В чате homework будет сообщение @а прими пул +# 2) Как принять домашку? +# Заходим а Гитхаб десктоп, нажимаем Fetch origin, заходим в history и смотрим самый верхний коммит. +# 3) Зачем нужна кнопка history и какие функции появляются при нажатии правой кнопки мыши на коммит? +# Кнопка history показывает коммиты. Если нажать правой кнопкой на коммит, то выйдет контекстное меню. +# +# 3.1) Где брать ссылку на коммит? куда её отправлять? +# Ссылку брать с Гитхаба и отправлять в чат homework, пишем "Коммит отдал" +# 4) Что такое файл лога? +# В файле лога нужно заполнять в конце каждого урока. В этом файле нужно писать дату и что запомнилось в течение урока. +# 4.1) Когда нужно его пушить? +# После заполнения и проверки на ошибки. +# 5) Что такое интерпритатор? +# Это программа, которая построчно выполняет команды, написанные на языке программирования. +# 6) Где можно выбрать интерпритатор? +# В правом верхнем углу. +# 7) Что такое модуль? +# Это файл с расширением .py или .ipynb. +# 8) Как создать и отправить коммит? +# Создать файл с расширением .ipynb, заполнить, проверить на ошибки, Commit&sync, Commit&push +# 9) Как посмотреть что коммит точно отправлен и находится в github? +# Коммит должен быть виден на гитхабе и в Hidtory в кошке. +# 10) Какая команда показывает что код не прошёл проверки на ошибки? +# Команда в терминале pre-commit run --all-files +# 10.1) Напишите список линтеров которые используются для проверки кода и дайте их краткую характеристику. +# Mypy - проверяет типы +# Pylint - проверяет соответствие стандартам кодирования. +# Pydocstyle - ищет отсутствие docstring +# Flake8 - обнаруживает стилистические ошибки +# +# +# 11) Как узнать какой именно линтер не прошёл проверку? +# При проверке через терминал командой pre-commit run --all-files выйдет статус Failed. +# 12) Линтер Pylint видит markdown? +# нет +# 13) Номер ячейки в терминале и номер ячейки в vs code может отличаться? в каком случае? +# Может. Линтер не видит ячейки markdown. +# 14) Где посмотреть номер ячейки в vscode? +# Можно посмотреть внизу справа. +# 15) В каком формате ipynb отправляется в гитхаб? причём здесь JSON? +# Файлы ipynb отпраляются на гитхаб в формате JSON. +# 16) Где посмотреть в какой ячейке ошибка? +# По коду ошибки или Ctrl+F. +# 17) Как запустить терминал? +# Terminal - New Terminal +# 18) Что такое линтер? +# Это программа, которая проверяет файл на корректность. +# 19) В какой сайт нужно вставлять код ошибки если ошибка связана с pylint? +# На сайт pylint.readthedocs.io +# 20) Секция pydocstyle в большинстве случае автоматический закрывается после исправления ошибок в каком линтере? +# В pylint +# 21) Что такое описание модуля? Оно должно отражать информацию о том что находится в модуле? +# Это описание того, что находится в модуле. Должно отражвть информацию о том, что находится в модуле. +# 21.1) С какой git команды начинается утро программиста? +# С команды Fetch origin. +# 22) После внесения изменений в файлах, кнопка open in vs code пропадает в кошке, как по другому открыть vs code из кошки? +# Нажать правой кнопкой на Current repository и выбрать open in VS code. +# 23) Что такое stash? +# Общее объяснение концепции. +# stash - буфер обмена, где можно спрятать локальные изменения. +# Мы можем временно сохранить наши изменения, не коммитя их а репозиторий, для дальнейших изменений. +# 23.1) Как сохранить стэш? +# git командa(подсказка: https://t.me/c/1937296927/3602/19531): +# git stash save "Name_stash" - сохранение в буфер обмена +# git stash apply "Number_stash" - извлечение из буфера обмена. +# Кнопка в vs code: +# Stash changes and continue +# 23.2) Как восстановить стэш(подсказка: https://t.me/c/1937296927/3602/25747)?: +# +# +# git команда(подсказка: https://t.me/c/1937296927/3602/19531)?: +# git stash apply "Number_stash" +# 23.3) Различие между стэшем и коммитом. +# Когда лучше сохранить изменения в стэше, а когда коммитить. +# Коммитить - когда мы завершили действия и можем вылоожить в ветку. +# Стэшить - когда мы не завершили работу и хотим вернуться, чтобы доделать. +# 23.4) Как просмотреть список сохраненных стэшей? +# git команда (подсказка: https://t.me/c/1937296927/3602/19531): +# git stash list +# 23.5) Как удалить стэш? +# Команды для удаления отдельных стэшей или всех сразу. +# git команда (подсказка: https://t.me/c/1937296927/3602/19531): +# git stash drop +# git stash clean +# 23.6) Практические примеры использования стэша. +# Краткие сценарии, где стэш помогает. +# Спрятать изменения в моменте, когда нужно поработать над другой задачей +# Спрятать измения, когда возник конфликт. +# 24) Где посмотреть что есть конфликт в файлах? +# Рядом с файлом readme будет стоять треугольник с восклицательным знаком. Нажимаем Open in VS Code. Зеленым цветом будет выделено то, что с гитхаба, синим - локальные изменения. +# 24.1) Когда он появляется? +# Когда в файле работвют одновременно два человека. +# 25) Как решить конфликт в файлах? +# Нажать Reserve in Merge Editor, Complete Merge. +# 26) Напишиие правильное утверждение +# -Зелёное то что пришло с гитхаба и синее локальные изменения или синее то что пришло с гитхаба и зелёное это локальные изменения +# Зеленое - с гитхаба +# Синее - локальные изменения. +# 27) Если мы работаем в одном файле, можно ли принять pull после того как вы спрячете в стэш свои изменения? +# да, можно. +# 27.1) Что может произойти когда stash восстановите после принятия pull? +# Может произойти конфликт. +# 28) Сколько способов решения конфликтов было показано в видео? Напишите ЧИСЛО и укажите их способы. +# 2 способа +# 1 способ - с помощью Accept Incoming Change,Accept Current Change, Accept Both Changes +# 2 способ - вручную удалить то что не нужно. +# 29) Что делает кнопка complete merge? +# Смерживает конечные изменения из конфликтов в один. +# 30) В какой чат нужно писать если остались вопросы? +# в чат HELP ME +# 31) Что такое FORK? Зачем его делают? +# Форк - это копия чужого репозитория. Делают, чтобы вносить изменения, не затрагивая оригинала. +# 32) Как скачать форкнутый репозиторий на локальный компьютер? +# Нажать на него, выбрать Open in GitHub Desktop, затем Clone +# 33) С какой вероятностью ваши ошибки были уже решены? и кто их решил? +# C вероятностью 90%. Их решил Сенаторов Руслан Олегович. +# 34) Как создать файл в vs code? +# Нажать на листочек с плюсиком и ввести название и формат файла. +# 35) Файл лога нужно заполнять в конце каждого урока? +# Да. +# ================== +# +# Дополнительные вопросы: +# 1)Какая команда конвертирует файл в py из ipynb? +# подсказка https://t.me/c/1937296927/1/26527 +# jupitex --to py +# 2) Что такое пакетный менеджер? Вы пользуетесь пакетным менеджером conda или pip? Какой лучше использовать для дата сайнс? +# Пакетный менеджер - инструмент для установки и управления библиотеками/пакетами +# Для Data Science лучше использовать Conda - он упраляет не только Python-пакетами, но и зависимостями системы, библиотеками (NumPy, SciPy) с нативными расширениями. +# 3) Почему расширение py лучше чем ipynb? +# - удобнее для версионирования (Git лучше работает с текстом) +# - Линтеры (Pilint, Pidocstyle) корректно работают только .py +# - проще ревью кода +# - лучше для продакшн-кода и автоматизации +# 4) Что такое pep8? +# подсказка:https://peps.python.org/pep-0008/ +# pep8 - официальный стиль кода Python. +# 4.1) линтеры проверяют на соблюдение pep8? +# Да. Flake8 и Pylint проверяют на соответствие pep8. +# 4.2) Какая нотация используется для создания переменных? +# ответ на 85-95 страницы https://t.me/c/1937296927/1/16676 +# snake_case (нижнее подчеркивание), например, first_variable +# 4.3) Может ли переменная состоять из одной буквы например андерскор "_" ? +# Да. +# 4.4) Зачем и где мы используем андерскор _ +# в начале два и конце переменных +# 4.5) По PEP8 допустима переменная в одну букву? +# ответ на 85-95 страницы https://t.me/c/1937296927/1/16676 +# да, но не рекомендовано для обычных переменных. Лучше использовать понятные имена. Исключения - в циклах, в малых областях видимости. +# diff --git a/quiz2.ipynb b/quiz2.ipynb new file mode 100644 index 00000000..6cfd0aba --- /dev/null +++ b/quiz2.ipynb @@ -0,0 +1,350 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "f2a093aa", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "'Quiz 2.'" + ] + }, + "execution_count": 1, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\"\"\"Quiz 2.\"\"\"" + ] + }, + { + "cell_type": "markdown", + "id": "9f4a527e", + "metadata": {}, + "source": [ + "Выполнение заданий по Питону \n", + "\n", + "Список вопросов к видео https://youtu.be/Si9MfV8uJ-0?si=JXHe-tsgOEwSTI5E (НАСТРОЙКА VSCODE, перенос строк, линтеры, работа с ячейками):\n", + "\n", + "\n", + "(По желанию)В ответе подробно всё опишите и обязательно нужно указывать тайм код из видео где я это сказал, по желанию, дополнительно прикладываем скриншот из видео.\n", + "\n", + "Если вы знаете ответы на вопросы из Вашего опыта, то таймкоды из видео не надо указывать и т.д.\n", + "\n", + "\n", + "1. Как включить автосохранение данных в VSCODE?\n", + "\n", + "\n", + "File - Auto Save\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&t=14\n", + "\n", + "\n", + "2. Как настроить перенос строки? \n", + "\n", + "\n", + "Preferences-Settings, в поисковую строку пишем wrap, в поле Editor в контекстном меню выбираем WordWrapColumn, длина строки 79, нажимаем Enter.\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&t=34\n", + "\n", + "\n", + "3. Сколько символов по pep8 разрешено на строке?\n", + "\n", + "\n", + "79\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=1m28s\n", + "\n", + "\n", + "4. Какие способы переноса строк показаны в видео:\n", + "\n", + "\n", + "Вариант 1.\n", + "\n", + "перенос комментариев - с помощью #\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ?=1m55s\n", + "\n", + "перенос кода - взять в скобки ( )\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=2m36s\n", + "\n", + "Вариант 2.\n", + "\n", + "длинную переменную разбить на две переменные, затем “склеить\" их, например, name_sum=name_1+name_2\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=4m\n", + "\n", + "\n", + "4.1 Строки с использованием обратного слэша (\\)\n", + "\n", + "\n", + "string_continued = \"This is a long string that we want to \" \\\n", + "\n", + " \"split across multiple lines.\"\n", + "\n", + "print(string_continued)\n", + "\n", + "\n", + "\n", + "4.2 Тройные кавычки (''' или \"\"\") \n", + "\n", + "\n", + "multi_line_string = \"\"\"This is a string that spans\n", + "\n", + "multiple lines. You can write freely\n", + "\n", + "and it will keep the line breaks.\"\"\"\n", + "\n", + "print(multi_line_string)\n", + "\n", + "\n", + "4.3 Создание списка строк и объединение с помощью join\n", + "\n", + "\n", + "strings = [\n", + "\n", + " \"This is the first line.\",\n", + "\n", + " \"This is the second line.\",\n", + "\n", + " \"This is the third line.\"\n", + "\n", + "]\n", + "\n", + "result = \"\\n\".join(strings) # Используем перенос строк '\\n'\n", + "\n", + "print(result)\n", + "\n", + "\n", + "4.4 Использование круглых скобок для продолжения строки\n", + "\n", + "long_string = (\n", + "\n", + " \"This is a very long string that I would like to \"\n", + "\n", + " \"continue on the next line.\"\n", + "\n", + ")\n", + "\n", + "print(long_string)\n", + "\n", + "\n", + "4.5 Форматированные строки (f-строки) с использованием скобок\n", + "\n", + "letter_a = 5\n", + "\n", + "letter_b = 6\n", + "\n", + "product_ab = letter_a * letter_b\n", + "\n", + "\n", + "message = (\n", + "\n", + " f\"when {letter_a} is multiplied by {letter_b}, \"\n", + "\n", + " f\"the result is {product_ab}\"\n", + "\n", + ")\n", + "\n", + "print(message)\n", + "\n", + "\n", + "4.6 Сложение строк с помощью +\n", + "\n", + "\n", + "string_part1 = \"This is the first part, \"\n", + "\n", + "string_part2 = \"and this is the second part.\"\n", + "\n", + "full_string = string_part1 + string_part2\n", + "\n", + "print(full_string)\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=3m55s\n", + "\n", + "\n", + "5. Проверка на ошибки c помощью кнопки problems, где она находится?\n", + "\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=4m49s\n", + "\n", + "Находится внизу окна редактора, слева. \n", + "\n", + "\n", + "6. Где в vscode находится клиент гита? как в нём отправить коммит? как принять домашку?\n", + "\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=6m24s\n", + "\n", + "Клиент находится в левой части окна(три кружочка)\n", + "\n", + "Чтобы отправить коммит, пишем коммит, затем нажимаем Commit\n", + "\n", + "Домашка принимается с помощью кнопки Pull.\n", + "\n", + "\n", + "7. Что такое GIT? он локальный? В нём можно посмотреть историю изменений файлов и вернуться к любому коммиту?\n", + "\n", + "\n", + "Git - это контроль версий. да, можно посмотреть \n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=7m12s\n", + "\n", + "\n", + "8. Как вставить картинку в маркдаун? \n", + "\n", + "\n", + "С помощью сочетания клавиш Ctrl+V\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=8m03s\n", + "\n", + "\n", + "9. Где посмотреть длину строки в vs code?\n", + "\n", + "Скопировать строку в файл с расширением .py, внизу справа показывается количество символов. \n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=1m25s\n", + "\n", + "\n", + "\n", + "10. Как поменять тип ячейки с питона на маркдаун?\n", + "\n", + "По умолчанию создается тип ячейки Code. Нажать на тип Python и выбрать в ниспадающем меню Markdown.\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=8m08s\n", + "\n", + "\n", + "11. Как запустить сразу все ячейки в юпитере?\n", + "\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=8m36s\n", + "\n", + "\n", + "Нажать Run All - запуск всех ячеек одновременно. \n", + "\n", + "\n", + "12. Как изменить размер картинки в юпитере? Нужно для этого знать HTML?\n", + "\n", + "img are, ссылка на картинку и её размер\n", + "\n", + "Да, нужно знать.\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=8m21s\n", + "\n", + "\n", + "13. Какой хоткей чтобы запустить ячейку с смещением на следующую?\n", + "\n", + "\n", + "Shift+Enter\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=8m49s\n", + "\n", + "\n", + "14. Как включить отображение номеров строк в юпитере(Cell line numbers)?\n", + "\n", + "Нажимаем на три точки в правом нижнем углу окна редактора и выбираем Show Cell line Number.\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=9m17s\n", + "\n", + "\n", + "15. Что такое \"Go To\" чем это полезно? Как перейти сразу на ошибочную ячейку?\n", + "\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=9m41s\n", + "\n", + "Показывает, в какой ячейке ошибка. Схватываем проблемную ячейку и тащим вниз, нажимаем “Go To”\n", + "\n", + "\n", + "16. Как очистить вывод ячеек которые уже запущены?\n", + "\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=10m51s\n", + "\n", + "Нужно нажать Clear All Outputs.\n", + "\n", + "\n", + "17. Как работать одновременно в нескольких файлах в VSCODE? Что такое SPLIT?\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=11m03s\n", + "\n", + "Split Editor позволяет работать одновременно в нескольких файлах. \n", + "\n", + "\n", + "18. Каким сочетанием убирается левый сайдбар?\n", + "\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=11m23s\n", + "\n", + "Ctrl+B, либо просто нажимаем на активное окно.\n", + "\n", + "\n", + "19. Кнопка два листочка это наши локальные файлы?\n", + "\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=11m36s\n", + "\n", + "Да\n", + "\n", + "\n", + "20. Какая ошибка появилась в трассировке при запуске всех ячеек DICT или LIST?\n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=9m23s\n", + "\n", + "\n", + "21. Вы ознакомились с https://t.me/c/1937296927/832/19307? и https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet?\n", + "\n", + "\n", + "Ознакомилась\n", + "\n", + "\n", + "22. Что такое валидация?\n", + "\n", + "\n", + "Это проверка соответствия программного кода определённым правилам.\n", + "\n", + "\n", + "23. Что такое трассировка ошибки?\n", + "\n", + "\n", + "Трассировка - это визуализация ошибки \n", + "\n", + "https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=10m05s\n", + "\n", + "\n", + "24. Что значит отвалился интерпретатор?\n", + "\n", + "Это означает, что интерпритатор перестал работать или быть доступным, из-за чего программный код, который от него зависел, не может запуститься, выполнить команды или выдать ошибку. \n", + "\n" + ] + } + ], + "metadata": { + "jupytext": { + "formats": "ipynb,py:light" + }, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/quiz2.py b/quiz2.py new file mode 100644 index 00000000..85fb8870 --- /dev/null +++ b/quiz2.py @@ -0,0 +1,297 @@ +"""Quiz 2.""" + +# Выполнение заданий по Питону +# +# Список вопросов к видео https://youtu.be/Si9MfV8uJ-0?si=JXHe-tsgOEwSTI5E (НАСТРОЙКА VSCODE, перенос строк, линтеры, работа с ячейками): +# +# +# (По желанию)В ответе подробно всё опишите и обязательно нужно указывать тайм код из видео где я это сказал, по желанию, дополнительно прикладываем скриншот из видео. +# +# Если вы знаете ответы на вопросы из Вашего опыта, то таймкоды из видео не надо указывать и т.д. +# +# +# 1. Как включить автосохранение данных в VSCODE? +# +# +# File - Auto Save +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&t=14 +# +# +# 2. Как настроить перенос строки? +# +# +# Preferences-Settings, в поисковую строку пишем wrap, в поле Editor в контекстном меню выбираем WordWrapColumn, длина строки 79, нажимаем Enter. +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&t=34 +# +# +# 3. Сколько символов по pep8 разрешено на строке? +# +# +# 79 +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=1m28s +# +# +# 4. Какие способы переноса строк показаны в видео: +# +# +# Вариант 1. +# +# перенос комментариев - с помощью # +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ?=1m55s +# +# перенос кода - взять в скобки ( ) +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=2m36s +# +# Вариант 2. +# +# длинную переменную разбить на две переменные, затем “склеить" их, например, name_sum=name_1+name_2 +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=4m +# +# +# 4.1 Строки с использованием обратного слэша (\) +# +# +# string_continued = "This is a long string that we want to " \ +# +# "split across multiple lines." +# +# print(string_continued) +# +# +# +# 4.2 Тройные кавычки (''' или """) +# +# +# multi_line_string = """This is a string that spans +# +# multiple lines. You can write freely +# +# and it will keep the line breaks.""" +# +# print(multi_line_string) +# +# +# 4.3 Создание списка строк и объединение с помощью join +# +# +# strings = [ +# +# "This is the first line.", +# +# "This is the second line.", +# +# "This is the third line." +# +# ] +# +# result = "\n".join(strings) # Используем перенос строк '\n' +# +# print(result) +# +# +# 4.4 Использование круглых скобок для продолжения строки +# +# long_string = ( +# +# "This is a very long string that I would like to " +# +# "continue on the next line." +# +# ) +# +# print(long_string) +# +# +# 4.5 Форматированные строки (f-строки) с использованием скобок +# +# letter_a = 5 +# +# letter_b = 6 +# +# product_ab = letter_a * letter_b +# +# +# message = ( +# +# f"when {letter_a} is multiplied by {letter_b}, " +# +# f"the result is {product_ab}" +# +# ) +# +# print(message) +# +# +# 4.6 Сложение строк с помощью + +# +# +# string_part1 = "This is the first part, " +# +# string_part2 = "and this is the second part." +# +# full_string = string_part1 + string_part2 +# +# print(full_string) +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=3m55s +# +# +# 5. Проверка на ошибки c помощью кнопки problems, где она находится? +# +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=4m49s +# +# Находится внизу окна редактора, слева. +# +# +# 6. Где в vscode находится клиент гита? как в нём отправить коммит? как принять домашку? +# +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=6m24s +# +# Клиент находится в левой части окна(три кружочка) +# +# Чтобы отправить коммит, пишем коммит, затем нажимаем Commit +# +# Домашка принимается с помощью кнопки Pull. +# +# +# 7. Что такое GIT? он локальный? В нём можно посмотреть историю изменений файлов и вернуться к любому коммиту? +# +# +# Git - это контроль версий. да, можно посмотреть +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=7m12s +# +# +# 8. Как вставить картинку в маркдаун? +# +# +# С помощью сочетания клавиш Ctrl+V +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=8m03s +# +# +# 9. Где посмотреть длину строки в vs code? +# +# Скопировать строку в файл с расширением .py, внизу справа показывается количество символов. +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=1m25s +# +# +# +# 10. Как поменять тип ячейки с питона на маркдаун? +# +# По умолчанию создается тип ячейки Code. Нажать на тип Python и выбрать в ниспадающем меню Markdown. +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=8m08s +# +# +# 11. Как запустить сразу все ячейки в юпитере? +# +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=8m36s +# +# +# Нажать Run All - запуск всех ячеек одновременно. +# +# +# 12. Как изменить размер картинки в юпитере? Нужно для этого знать HTML? +# +# img are, ссылка на картинку и её размер +# +# Да, нужно знать. +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=8m21s +# +# +# 13. Какой хоткей чтобы запустить ячейку с смещением на следующую? +# +# +# Shift+Enter +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=8m49s +# +# +# 14. Как включить отображение номеров строк в юпитере(Cell line numbers)? +# +# Нажимаем на три точки в правом нижнем углу окна редактора и выбираем Show Cell line Number. +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=9m17s +# +# +# 15. Что такое "Go To" чем это полезно? Как перейти сразу на ошибочную ячейку? +# +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=9m41s +# +# Показывает, в какой ячейке ошибка. Схватываем проблемную ячейку и тащим вниз, нажимаем “Go To” +# +# +# 16. Как очистить вывод ячеек которые уже запущены? +# +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=10m51s +# +# Нужно нажать Clear All Outputs. +# +# +# 17. Как работать одновременно в нескольких файлах в VSCODE? Что такое SPLIT? +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=11m03s +# +# Split Editor позволяет работать одновременно в нескольких файлах. +# +# +# 18. Каким сочетанием убирается левый сайдбар? +# +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=11m23s +# +# Ctrl+B, либо просто нажимаем на активное окно. +# +# +# 19. Кнопка два листочка это наши локальные файлы? +# +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=11m36s +# +# Да +# +# +# 20. Какая ошибка появилась в трассировке при запуске всех ячеек DICT или LIST? +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=9m23s +# +# +# 21. Вы ознакомились с https://t.me/c/1937296927/832/19307? и https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet? +# +# +# Ознакомилась +# +# +# 22. Что такое валидация? +# +# +# Это проверка соответствия программного кода определённым правилам. +# +# +# 23. Что такое трассировка ошибки? +# +# +# Трассировка - это визуализация ошибки +# +# https://youtu.be/Si9MfV8uJ-0?si=U4yGy8-OCkDu1cRZ&=10m05s +# +# +# 24. Что значит отвалился интерпретатор? +# +# Это означает, что интерпритатор перестал работать или быть доступным, из-за чего программный код, который от него зависел, не может запуститься, выполнить команды или выдать ошибку. +# +# diff --git a/std out b/std out new file mode 100644 index 00000000..e2af5261 --- /dev/null +++ b/std out @@ -0,0 +1,223 @@ +commit 1fc080684dc2f3926711adaa8d482161a286881e (HEAD -> main, upstream/main, upstream/HEAD, origin/main, origin/HEAD) +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Thu Dec 18 01:18:34 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 8458cf2836320fd4d75a9d1332044763b899d694 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Thu Dec 18 01:16:03 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit e9d9583ad3166caf442036fd51bbd5e9e1b05d9e +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Thu Dec 18 01:15:41 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 4f8a6e28b1047889e0e72a611bdbc48de7c5c7b9 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Thu Dec 18 01:14:31 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 07bc4ad4bf9714212e60368c45870befd81a3743 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Sat Dec 13 16:37:45 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 0589cd0d4d243de3676cca8e378d3469b4c14de5 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Sat Dec 13 16:36:53 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit c5f8f9d6264ceca49faf075b8affbc84eb2a8418 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Mon Dec 1 03:42:45 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 79ac80d08c6e2826fd2f4506bfe873db1eb3cb67 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Fri Nov 28 19:02:14 2025 +0300 + + 120 + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 7d9f06351f04884e4f16bde85c4db8c2e45dd152 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Tue Nov 25 04:27:45 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 4e07c9d220c04a03d341551bdb94d687e978d506 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Tue Nov 25 04:25:50 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit dc3d33b66fb63a1ca68c43bd25d51344caf0f277 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Tue Nov 25 04:22:40 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 1ed30fa45a59e77ee9a96594bc3b1ddbf99fa5b5 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Tue Nov 25 04:22:19 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 0d397a8b39e8f3560e76c25d2637a5bbdde542a5 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Tue Nov 25 04:21:03 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 11f63e86bb45becb7affabfdde03cb6b5a672b67 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Tue Nov 25 04:19:36 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 1e9438a397d34c2f296fca3e19ee6404929f7711 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Tue Nov 25 04:14:14 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit fd4e5a1fee92c7ef330f727fcf6fbb4e25ad9fea +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Tue Nov 25 04:12:53 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 0d77ab2dfda6a798de21ddff25d98d6c409aabee +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Tue Nov 25 04:09:56 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit db1ec3f5139ff9b5fa941df2fc8b8bf1bb82c832 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Sun Nov 23 22:36:24 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit f729a1cc82bbec2c6666c5bbf7c110c6020a469d +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Thu Nov 6 16:39:42 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 9ecfbec0409ad19c8b118a46fd2a0242d5d06204 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Thu Nov 6 16:38:10 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit f71a705e33426c28abd34dcc61a382144935cb9c +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Thu Nov 6 16:33:56 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 60a6d291d1f2991be09b8e8e0c6d6a0c5c553615 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Thu Nov 6 16:07:55 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 2750d42c4919f5847a71970d506b84c6d7cd6533 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Thu Nov 6 15:55:23 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit b089c54231bc8635cba75a2072428a207790c198 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Thu Nov 6 15:45:49 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit c63b0d91bc854f0bff8cf788521099e39a40bd9e +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Thu Nov 6 15:39:18 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit fc07c2af1c6f44e8e6739c562f28fa08c87d563e +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Thu Nov 6 15:33:02 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 2a17b416637022b87b9a12ba519e7496139d1ac5 +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Thu Nov 6 15:24:53 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> + +commit 0ab494ffe89725095c20db976c31bc9c2d301b8f +Author: Ruslan Senatorov <55090151+ruslansenatorov@users.noreply.github.com> +Date: Thu Nov 6 15:19:22 2025 +0300 + + Update README.md + + Signed-off-by: Ruslan Senatorov <55090151+ruslanse \ No newline at end of file