This media is not supported in your browser
VIEW IN TELEGRAM
alive-progress | Шкала прогресса в CLI
Библиотека, предназначенная для создания динамичных индикаторов прогресса в CLI. Среди фичей:
— плавная анимация спиннера;
— точный расчет оставшегося времени с использованием алгоритма экспоненциального сглаживания;
— хуки для логирования.
#инструмент #dataviz
@zen_of_python
Библиотека, предназначенная для создания динамичных индикаторов прогресса в CLI. Среди фичей:
— плавная анимация спиннера;
— точный расчет оставшегося времени с использованием алгоритма экспоненциального сглаживания;
— хуки для логирования.
#инструмент #dataviz
@zen_of_python
❤1👏1😱1
python-dateutil | datetime, который смог
Ультрапопулярное (если верить рейтингу PyPi) расширение стандартного модуля
— Вычисление «следующего X»: удобно находим даты следующего понедельника или последней недели месяца;
— Относительные дельты: вычисляем разницу между двумя датами не только в секундах, но и в понятных календарных единицах (например, «2 месяца и 5 дней»);
— Рекуррентные даты (повторяющиеся события)
Поддерживается генерация серий дат по очень гибким правилам, расширяющим стандарт iCalendar (например: «каждый второй вторник месяца до конца года») и многое другое.
Еще бы русский язык поддерживала, цены бы не было!
#инструмент
@zen_of_python
Ультрапопулярное (если верить рейтингу PyPi) расширение стандартного модуля
datetime
, поддерживает:— Вычисление «следующего X»: удобно находим даты следующего понедельника или последней недели месяца;
— Относительные дельты: вычисляем разницу между двумя датами не только в секундах, но и в понятных календарных единицах (например, «2 месяца и 5 дней»);
— Рекуррентные даты (повторяющиеся события)
Поддерживается генерация серий дат по очень гибким правилам, расширяющим стандарт iCalendar (например: «каждый второй вторник месяца до конца года») и многое другое.
Еще бы русский язык поддерживала, цены бы не было!
#инструмент
@zen_of_python
YTSage | Скачиватель с YouTube
Инструмент с несложным GUI на PySide6 c yt-dlp под капотом. Позволяет выбрать HD-качество, извлечь субтитры. Поддерживает скачивание плейлистов с возможностью выбрать конкретные видео перед загрузкой.
#инструмент
@zen_of_python
Инструмент с несложным GUI на PySide6 c yt-dlp под капотом. Позволяет выбрать HD-качество, извлечь субтитры. Поддерживает скачивание плейлистов с возможностью выбрать конкретные видео перед загрузкой.
#инструмент
@zen_of_python
This media is not supported in your browser
VIEW IN TELEGRAM
Cruft | Бойлерплейт из вашего проекта
Инструмент, который позволяет вам создать свой шаблон из уже существующего проекта, и потом поддерживать его. Основан на CookieCutter — аналогичной CLI-утилите. После создания можно использовать команду
#инструмент
@zen_of_python
Инструмент, который позволяет вам создать свой шаблон из уже существующего проекта, и потом поддерживать его. Основан на CookieCutter — аналогичной CLI-утилите. После создания можно использовать команду
cruft update
, чтобы подтягивать изменения из шаблона по мере его развития. Инструмент умеет проверять, актуален ли проект относительно шаблона, и позволяет автоматически применять обновления через CI-конвейеры. Это отличный способ избежать дублирования кода и облегчить поддержку множества проектов, основанных на одном шаблоне.#инструмент
@zen_of_python
✍1❤1
Starplot | Визуализируем звездное небо
Пожалуй, самая романтичная библиотека за последнее время в канале...
Тул для создания карт неба умеет строить разные типы визуализаций:
— Zenith Plots (вид всего неба над головой в заданное время и месте);
— Horizon Plots (небо над горизонтом);
— Map Plots с различными проекциями;
— Optic Plots — имитацию вида через телескоп или другое оптическое устройство.
Поддерживается более 14К объектов — звёзд, планет, созвездий и проч.
#инструмент
@zen_of_python
Пожалуй, самая романтичная библиотека за последнее время в канале...
Тул для создания карт неба умеет строить разные типы визуализаций:
— Zenith Plots (вид всего неба над головой в заданное время и месте);
— Horizon Plots (небо над горизонтом);
— Map Plots с различными проекциями;
— Optic Plots — имитацию вида через телескоп или другое оптическое устройство.
Поддерживается более 14К объектов — звёзд, планет, созвездий и проч.
#инструмент
@zen_of_python
❤🔥5🌚1
self
: простейшее объяснениеЕсли вы только начинаете изучать Python, то почти наверняка уже столкнулись с
self
. В этом лонгриде мы разберемся, что это и с чем это едят.self
— это ссылка на объектКлючевое слово self используется в методах классов. Оно всегда указывает на текущий экземпляр класса, через который происходит обращение к данным и методам.
class Employee:
def set_salary(self, value):
self.salary = value
e = Employee()
e.set_salary(2000)
print(e.salary)
Когда вы создаёте объект, Python автоматически передаёт этот объект первым аргументом в метод. Принято называть его self, хотя технически вы можете использовать любое имя.
Employee
с методом set_salary
. Этот метод принимает два аргумента:— self — сам объект;
— value — значение, которое мы хотим установить.
self.salary = value
Это значит, что у конкретного объекта
e
создаётся атрибут salary
, которому присваивается переданное значение.
e = Employee()
e.set_salary(2000)
На самом деле Python преобразует этот вызов в:
Employee.set_salary(e, 2000)
print(e.salary) # 2000
Почему без self не обойтись?
self
позволяет объекту хранить собственные данные. Каждый экземпляр класса имеет свой набор атрибутов, и именно через self
мы к ним обращаемся.Например, если создать двух сотрудников:
e1 = Employee()
e2 = Employee()
e1.set_salary(2000)
e2.set_salary(3000)
print(e1.salary) # 2000
print(e2.salary) # 3000
У каждого объекта будет своя зарплата.
#инструмент
@zen_of_python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Bazel | Сборка и тестирование, как в FAANG
Опенсорсная версия внутреннего инструмента Google, которая делает процесс сборки эффективнее:
— Дает пересобрать только те участки кода, где были изменения (Incremental Builds);
— Позволяет сдруживать Python-код с другими ЯП;
— Дружит с CI / CD;
— Поддерживается на популярных ОС: Windows, Linux, macOS.
#инструмент
@zen_of_python
Опенсорсная версия внутреннего инструмента Google, которая делает процесс сборки эффективнее:
— Дает пересобрать только те участки кода, где были изменения (Incremental Builds);
— Позволяет сдруживать Python-код с другими ЯП;
— Дружит с CI / CD;
— Поддерживается на популярных ОС: Windows, Linux, macOS.
#инструмент
@zen_of_python
✍1🌭1
This media is not supported in your browser
VIEW IN TELEGRAM
memory_graph | Визуализация кода
Помощник в изучении и отладке, который визуализирует состояние программы: переменные, структуры данных и стек вызовов. Он позволит наглядно понять ключевые концепции — ссылки и изменяемость и проч.
С помощью графов можно визуализировать взаимосвязи между объектами, что они содержат и как меняются во времени. Удобен как для студентов и начинающих программистов, так и для тех, кто хочет глубже осознать, как Python работает «под капотом».
Модуль можно использовать даже в ноутбуках.
#инструмент
@zen_of_python
Помощник в изучении и отладке, который визуализирует состояние программы: переменные, структуры данных и стек вызовов. Он позволит наглядно понять ключевые концепции — ссылки и изменяемость и проч.
С помощью графов можно визуализировать взаимосвязи между объектами, что они содержат и как меняются во времени. Удобен как для студентов и начинающих программистов, так и для тех, кто хочет глубже осознать, как Python работает «под капотом».
Модуль можно использовать даже в ноутбуках.
#инструмент
@zen_of_python
👏6
typing-extensions | Машинка времени для фичей ЯП
Вечный участник рейтинга самых скачиваемых библиотек PyPi, модуль предоставляет дополнительные возможности для аннотаций типов, которые либо были добавлены в стандартный модуль
Тот случай, когда переходить на новую версию языкового пакета нет желания, а использовать новую фичу есть.
#инструмент
@zen_of_python
Вечный участник рейтинга самых скачиваемых библиотек PyPi, модуль предоставляет дополнительные возможности для аннотаций типов, которые либо были добавлены в стандартный модуль
typing
в более поздних версиях Python, либо являются экспериментальными и ещё не включены в стандарт. Тот случай, когда переходить на новую версию языкового пакета нет желания, а использовать новую фичу есть.
#инструмент
@zen_of_python
❤1
django-silk | Профилирование HTTP- и SQL-запросов
Инструмент «перехватывает» запросы и ответы, собирая детальную статистику:
— длительность выполнения;
— заголовки, тела запросов / ответов;
— таблицы-источники.
Также поддерживаются ручное профилирование блоков кода через декораторы и контекстные менеджеры, динамическое профилирование функций. Хороший способ найти узкие места производительности в вашем Django-проекте.
#инструмент
@zen_of_python
Инструмент «перехватывает» запросы и ответы, собирая детальную статистику:
— длительность выполнения;
— заголовки, тела запросов / ответов;
— таблицы-источники.
Также поддерживаются ручное профилирование блоков кода через декораторы и контекстные менеджеры, динамическое профилирование функций. Хороший способ найти узкие места производительности в вашем Django-проекте.
#инструмент
@zen_of_python
👍2🙈1
Нестандартные интерфейсы на Python: как вставить кнопки, как на пульте ТВ?
А что если ваш UI должен содержать кнопки нестандартной формы? Как на пульте ТВ / игровом джойстике, к примеру. Tkinter, к примеру, такое не умеет.
Один австралийский разработчик решил эту задачу, написав библиотеку GIMPy-Widget-UI. Библиотека позволяет проектировать в графическом редакторе такие нестандартные элементы и делать их интерактивными с минимальным объёмом кода.
#инструмент
@zen_of_python
А что если ваш UI должен содержать кнопки нестандартной формы? Как на пульте ТВ / игровом джойстике, к примеру. Tkinter, к примеру, такое не умеет.
Один австралийский разработчик решил эту задачу, написав библиотеку GIMPy-Widget-UI. Библиотека позволяет проектировать в графическом редакторе такие нестандартные элементы и делать их интерактивными с минимальным объёмом кода.
#инструмент
@zen_of_python
detroit | Level Up для вашего dataviz'а
Если привычные столбчатые диаграммы и пай-чарты уже не забавляют, попробуйте питоническую реализацию d3js — небезызвестного тула для построения нетривиальных графиков. Как минимум познаете еще один вид графика, это обещаем.
#инструмент
@zen_of_python
Если привычные столбчатые диаграммы и пай-чарты уже не забавляют, попробуйте питоническую реализацию d3js — небезызвестного тула для построения нетривиальных графиков. Как минимум познаете еще один вид графика, это обещаем.
#инструмент
@zen_of_python
👍2❤1🔥1
RunSnakeRun | Профайлер с GUI
Симпатичный и наглядный инструмент для анализа производительности Python-программ. Он показывает результаты профилирования (
На диаграмме размер прямоугольника отражает долю времени, потраченную на выполнение функции. Позволяет интерактивно «проваливаться» в вызовы и изучать вложенные функции. Отличный способ искать узкие места в проекте.
#инструмент
@zen_of_python
Симпатичный и наглядный инструмент для анализа производительности Python-программ. Он показывает результаты профилирования (
cProfile
, hotshot
и других форматов) в виде наглядной treemap-диаграммы.На диаграмме размер прямоугольника отражает долю времени, потраченную на выполнение функции. Позволяет интерактивно «проваливаться» в вызовы и изучать вложенные функции. Отличный способ искать узкие места в проекте.
#инструмент
@zen_of_python
❤7
pypiplus.com | Прогнозируем «ад зависимостей»
Утилита позволяет пробить любую библиотеку / фреймворк с pypi.org и узнать, от каких «соседей» она зависит и кто полагается на нее. Если в эпоху ИИ-копайлотов мы все немного превращаемся в системных архитекторов, то с такими сервисами это будет проходить с меньшим количеством последствий, однозначно.
#инструмент
@zen_of_python
Утилита позволяет пробить любую библиотеку / фреймворк с pypi.org и узнать, от каких «соседей» она зависит и кто полагается на нее. Если в эпоху ИИ-копайлотов мы все немного превращаемся в системных архитекторов, то с такими сервисами это будет проходить с меньшим количеством последствий, однозначно.
#инструмент
@zen_of_python
This media is not supported in your browser
VIEW IN TELEGRAM
PySCN | Cтатанализ вашего кода
Инструмент оценивает Python-проект по следующим параметрам:
— доля «мертвого» кода;
— задвоение кода;
— связанность классов друг с другом и проч.
В эпоху LLM-копайлотов анализ качества кода все так же актуален, так что сохраняем и пользуемся.
#инструмент
@zen_of_python
Инструмент оценивает Python-проект по следующим параметрам:
— доля «мертвого» кода;
— задвоение кода;
— связанность классов друг с другом и проч.
В эпоху LLM-копайлотов анализ качества кода все так же актуален, так что сохраняем и пользуемся.
#инструмент
@zen_of_python
✍7👀1