Git Merge и Git Rebase
Git Merge
Слияние — обычная практика для разработчиков, использующих системы контроля версий. Независимо от того, созданы ли ветки для тестирования, исправления ошибок или по другим причинам, слияние фиксирует изменения в другом месте. Слияние принимает содержимое ветки источника и объединяет их с целевой веткой. В этом процессе изменяется только целевая ветка. История исходных веток остается неизменной.
Git Rebase
Rebase — еще один способ перенести изменения из одной ветки в другую. Rebase сжимает все изменения в один «патч». Затем он интегрирует патч в целевую ветку.
В отличие от слияния, перемещение перезаписывает историю, потому что она передает завершенную работу из одной ветки в другую. В процессе устраняется нежелательная история.
#easypy #git #programming
Git Merge
Слияние — обычная практика для разработчиков, использующих системы контроля версий. Независимо от того, созданы ли ветки для тестирования, исправления ошибок или по другим причинам, слияние фиксирует изменения в другом месте. Слияние принимает содержимое ветки источника и объединяет их с целевой веткой. В этом процессе изменяется только целевая ветка. История исходных веток остается неизменной.
Git Rebase
Rebase — еще один способ перенести изменения из одной ветки в другую. Rebase сжимает все изменения в один «патч». Затем он интегрирует патч в целевую ветку.
В отличие от слияния, перемещение перезаписывает историю, потому что она передает завершенную работу из одной ветки в другую. В процессе устраняется нежелательная история.
#easypy #git #programming
Вычисление размера объектов
Так как в python всё является объектами, мы можем вычислить размер практически у всего с помощью sys.getsizeof().
Функция getsizeof вызывает метод sizeof объекта и добавляет дополнительные данные сборщика мусора. Хотя все встроенные объекты вернут верный размер, в общем случае это не будет так для пользовательских объектов.
#easypy #python #programming
Так как в python всё является объектами, мы можем вычислить размер практически у всего с помощью sys.getsizeof().
Функция getsizeof вызывает метод sizeof объекта и добавляет дополнительные данные сборщика мусора. Хотя все встроенные объекты вернут верный размер, в общем случае это не будет так для пользовательских объектов.
#easypy #python #programming
👍2
Создание капчи
Напомним, что так называемая captcha нужна для того, чтобы определить, зашёл ли на сайт бот или человек и таким образом отсеять ненужный трафик.
В Python капчу реализовать можно довольно просто — с использованием пары модулей сначала создаётся картинка, затем сохраняется в определённый файл.
#easypy #python #programming
Напомним, что так называемая captcha нужна для того, чтобы определить, зашёл ли на сайт бот или человек и таким образом отсеять ненужный трафик.
В Python капчу реализовать можно довольно просто — с использованием пары модулей сначала создаётся картинка, затем сохраняется в определённый файл.
#easypy #python #programming
👍1
Делаем GIF из видео
Преобразуем видео в GIF просто и элегантно. Видео нужно сохранить в папку со скриптом, там же появится гифка. У пакета также есть дополнительная функциональность, позволяющая менять разрешение и изменять отрезки времени для гифки. Документацию можно найти по ссылке: https://pypi.org/project/moviepy/
#easypy #python #programming #moviepy
Преобразуем видео в GIF просто и элегантно. Видео нужно сохранить в папку со скриптом, там же появится гифка. У пакета также есть дополнительная функциональность, позволяющая менять разрешение и изменять отрезки времени для гифки. Документацию можно найти по ссылке: https://pypi.org/project/moviepy/
#easypy #python #programming #moviepy
👍2
Работа с IP адресами
Если вам приходится писать на Python программы для работы с сетью — значит, вам может пригодиться модуль ipaddress.
К примеру, один вариант его использования — генерация списка IP-адресов из диапазона адресов, заданных в формате CIDR (Classless Inter-Domain Routing, или бесклассовая адресация). У модуля ipaddress есть и много других интересных возможностей
#easypy #python #programming #ip #ipaddress
Если вам приходится писать на Python программы для работы с сетью — значит, вам может пригодиться модуль ipaddress.
К примеру, один вариант его использования — генерация списка IP-адресов из диапазона адресов, заданных в формате CIDR (Classless Inter-Domain Routing, или бесклассовая адресация). У модуля ipaddress есть и много других интересных возможностей
#easypy #python #programming #ip #ipaddress
👍2
Ищем опечатки
Пакет spellchecker позволяет отыскать ошибки в тексте, а также может предложить варианты исправлений. В примере проходимся по списку из двух слов, из которых одно ('therre') написано с опечаткой. Функция correction замечает это и предлагает одно самое вероятное исправление, а candidates — несколько.
Пакет поддерживает шесть языков. Документация: https://pypi.org/project/pyspellchecker/
#easypy #python #programming #spellchecker
Пакет spellchecker позволяет отыскать ошибки в тексте, а также может предложить варианты исправлений. В примере проходимся по списку из двух слов, из которых одно ('therre') написано с опечаткой. Функция correction замечает это и предлагает одно самое вероятное исправление, а candidates — несколько.
Пакет поддерживает шесть языков. Документация: https://pypi.org/project/pyspellchecker/
#easypy #python #programming #spellchecker
👍3
Возврат нескольких значений из функции
Знаете ли вы, что можно осуществлять возврат нескольких значений из функции? Вот как это сделать. Ознакомьтесь с приведенным на картинке примером кода. Значения вернутся в кортеже.
#easypy #python #programming
Знаете ли вы, что можно осуществлять возврат нескольких значений из функции? Вот как это сделать. Ознакомьтесь с приведенным на картинке примером кода. Значения вернутся в кортеже.
#easypy #python #programming
👍2
Работа с атрибутами объектов
Рассмотрим специальные функции для работы с атрибутами. getattr позволяет получить атрибут, setattr — установить его, delattr — удалить. hasattr проверяет, существует ли атрибут с указанным названием у объекта или нет.
Каждой функции первыми двумя аргументами передаются сам объект и название атрибута. В setattr также нужно передать новое значение для атрибута.
На практике эти четыре функции используются не слишком часто, но знать о них полезно.
#easypy #python #programming
Рассмотрим специальные функции для работы с атрибутами. getattr позволяет получить атрибут, setattr — установить его, delattr — удалить. hasattr проверяет, существует ли атрибут с указанным названием у объекта или нет.
Каждой функции первыми двумя аргументами передаются сам объект и название атрибута. В setattr также нужно передать новое значение для атрибута.
На практике эти четыре функции используются не слишком часто, но знать о них полезно.
#easypy #python #programming
👍2
Emoji
Пакет Emoji пакет очень помогает при анализе данных из соцсетей, позволяя встраивать в текст и выделять из него эмодзи. Почитать документацию и ознакомиться с другими примерами можно на странице пакета emoji - https://pypi.org/project/emoji/.
#python #easypy #emoji #programming
Пакет Emoji пакет очень помогает при анализе данных из соцсетей, позволяя встраивать в текст и выделять из него эмодзи. Почитать документацию и ознакомиться с другими примерами можно на странице пакета emoji - https://pypi.org/project/emoji/.
#python #easypy #emoji #programming
👍1
❗️Менеджер памяти в Python (освобождение памяти) - школа бэкенда от Яндекса😎😎
💭Для управления памятью и своевременного освобождения ее Python хранит число ссылок на каждый объект. Когда число ссылок становится равно нулю - объект сразу удаляется из памяти.
☝🏻Посмотреть количество ссылок на объект можно вызвав - print(sys.getrefcount(object))
За освобождение памяти в python отвечает сборщик мусора. О нем подробнее поговорим позже❗️
#easypy #python #memory #programming
💭Для управления памятью и своевременного освобождения ее Python хранит число ссылок на каждый объект. Когда число ссылок становится равно нулю - объект сразу удаляется из памяти.
☝🏻Посмотреть количество ссылок на объект можно вызвав - print(sys.getrefcount(object))
За освобождение памяти в python отвечает сборщик мусора. О нем подробнее поговорим позже❗️
#easypy #python #memory #programming
👍2
Поговорим о декораторе property❗️
💭@property-это один из самых популярных python-декораторов.
Данный декоратор используется для обозначения метода класса как атрибута этого класса. То есть если декоратор применен к методу класса, то данный метод можно вызвать как атрибут класса.
ВНИМАНИЕ! Метод к которому применен декоратор property должен имень единственный аргумент self. То есть при обращении к атрибуту нельзя передавать ему никакие аргументы.
#easypy #python #programming
💭@property-это один из самых популярных python-декораторов.
Данный декоратор используется для обозначения метода класса как атрибута этого класса. То есть если декоратор применен к методу класса, то данный метод можно вызвать как атрибут класса.
ВНИМАНИЕ! Метод к которому применен декоратор property должен имень единственный аргумент self. То есть при обращении к атрибуту нельзя передавать ему никакие аргументы.
#easypy #python #programming
👍2
Прогресс выполнения программы
Индикаторы прогресса добавляют наглядности в скриптах, которые исполняют какие-то функции, требующие времени для выполнения. Модуль tqdm является простым и лаконичным вариантом.
Привычный range можно заменить на trange для визуализации прогресса. А для итерации по какой-либо последовательности, достаточно просто передать её в функцию tqdm. Также модуль хорошо себя зарекомендовал и в Jupyter Notebook.
Кстати, интересный факт – название tqdm произошло от арабского слова "taqaddum" (تقدّم), которое означает "прогресс," а также это ещё и сокращение от "я тебя сильно люблю" на испанском (te quiero demasiado).
#easypy #python #programming
Индикаторы прогресса добавляют наглядности в скриптах, которые исполняют какие-то функции, требующие времени для выполнения. Модуль tqdm является простым и лаконичным вариантом.
Привычный range можно заменить на trange для визуализации прогресса. А для итерации по какой-либо последовательности, достаточно просто передать её в функцию tqdm. Также модуль хорошо себя зарекомендовал и в Jupyter Notebook.
Кстати, интересный факт – название tqdm произошло от арабского слова "taqaddum" (تقدّم), которое означает "прогресс," а также это ещё и сокращение от "я тебя сильно люблю" на испанском (te quiero demasiado).
#easypy #python #programming
👍3