Разъяснивший Python
8.17K subscribers
2.44K photos
40 videos
30 files
2.29K links
Твой проводник в омут Python'а

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: https://telega.in/c/python_pssss
Download Telegram
Переопределение стандартного поведения функций через декоратор

Иногда хочется обернуть функцию, чтобы автоматически логировать её вызов или измерять время исполнения. Это удобно делать через декоратор.

Итог
Декораторы позволяют добавлять поведение к функциям, не изменяя их напрямую. Это мощный инструмент для логирования, кэширования, авторизации и прочих нужд.

Разъяснивший Python
Нюансы работы с merge

В pandas метод merge() используется для объединения двух датафреймов по одному или нескольким ключевым столбцам, аналогично SQL-операции JOIN. В данной статье автор рассказывает, с какими нюансами ты можешь столкнуться при использовании merge.

Читать статью

Разъяснивший Python
Повтор последнего результата в Python REPL

Если работаешь в интерактивном режиме Python (REPL), тебе не обязательно каждый раз сохранять результат в переменную — предыдущий результат всегда доступен через _.

Итог:
Символ _ в интерактивной консоли Python хранит результат последнего выражения — удобно для быстрых вычислений и экспериментов без создания переменных.

Разъяснивший Python
Следишь за своей видеокартой?

Скрипт, который:
Показывает загрузку GPU
Отображает объём свободной/занятой памяти
Показывает температуру

Код:

# pip install GPUtil tabulate

import GPUtil
from tabulate import tabulate
from typing import List, Tuple

def gpu_info() -> str:
"""
Получает информацию о доступных GPU: загрузка, температура, объём памяти.
Возвращает отформатированную таблицу.
"""
gpus = GPUtil.getGPUs()
gpus_list: List[Tuple] = []

for gpu in gpus:
gpus_list.append((
gpu.id,
gpu.name,
f"{gpu.load * 100:.1f}%",
f"{gpu.memoryFree}MB",
f"{gpu.memoryUsed}MB",
f"{gpu.memoryTotal}MB",
f"{gpu.temperature}°C"
))

return tabulate(
gpus_list,
headers=["id", "name", "load", "free memory", "used memory", "total memory", "temperature"],
tablefmt="pretty"
)

if __name__ == "__main__":
print(gpu_info())


Разъяснивший Python
Удаление дубликатов, сохраняя порядок

Стандартный set() удаляет дубликаты, но не сохраняет порядок. Чтобы сохранить порядок элементов, можно использовать dict.fromkeys().

Итог
dict.fromkeys() — простой и читаемый способ удалить дубликаты из списка, сохранив порядок появления. Работает быстро и не требует сторонних библиотек.

Разъяснивший Python
This media is not supported in your browser
VIEW IN TELEGRAM
Полезные библиотеки Python

Doc2Image — превращай документы в картинки, а тексты в визуальные идеи.

Когда обычного текста мало, а нужно показать смысл, на помощь приходит Doc2Image — нейросервис, который читает документы и генерирует по ним визуальные подсказки для Midjourney, DALL·E и других генераторов.

Как работает:
Ты загружаешь документ — он сам вычленяет суть, превращает её в понятное описание и подсказывает, какое изображение можно создать.

Поддержка как OpenAI, так и локальных моделей.
Удобный интерфейс и история всех запросов.
Работает быстро и без лишней магии — просто берёт и делает.

Идеально для дизайнеров, маркетологов, ресерчеров, презентаций и визуального контента по любой теме.

⚙️ GitHub/Инструкция

Разъяснивший Python
Детектор утечек

С помощью данного скрипта ты узнаешь, сливали ли твои имейлы или пароли. Делается это с помощью HaveIBeenPwned API. Ты вводишь email или пароль для проверки, а в ответ выводится список сайтов, где была компрометация.

Ссылка на код

Разъяснивший Python
1
Что такое logging в Python?

logging — это встроенный модуль Python для создания логов, которые помогают отлаживать и мониторить работу приложений.

Пример:

import logging

# Настройка базового уровня логирования
logging.basicConfig(level=logging.INFO)

# Создание лога
logging.info("Приложение запущено")
logging.warning("Это предупреждение!")
logging.error("Произошла ошибка")


🗣 В этом примере модуль logging создаёт сообщения разного уровня важности. Логирование позволяет отслеживать работу приложений и находить проблемы в коде.


Подробнее тут

Разъяснивший Python
Проверка существования атрибута без try/except

Иногда нужно понять, есть ли у объекта нужное свойство, и не хочется использовать try/except. В этом случае поможет встроенная функция hasattr().

Итог:
Функция hasattr() позволяет лаконично проверить наличие атрибута у объекта — читаемо и без лишних конструкций.

Разъяснивший Python
Пример использования tqdm

Tqdm (от арабского слова "taqadum", что означает "прогресс") — это библиотека Python, которая позволяет легко и быстро создавать индикаторы выполнения задач. Она особенно полезна при работе с длительными операциями, так как позволяет отслеживать ход выполнения и остаточное время.

Разъяснивший Python
1
Отслеживатель подписок и расходов

В этот раз мы сделаем отслеживатель подписок и расходов. Он будет показывать сумму всех подписок в месяц, а также отображать, сколько тратится в год. Сохраняется это все в локальной SQLite-базе.

Ссылка на код

Разъяснивший Python
Преобразование Word Doc или Docx в PDF в Python

Spire.Doc for Python предоставляет метод Document.LoadFromFile(), который позволяет пользователям загрузить файл Doc или Docx.

После этого можно выполнить преобразование в PDF с помощью метода Document.SaveToFile(string filename, ToPdfParameterList parameter).

Разъяснивший Python
Объединение словарей без update()

Нужно быстро объединить два словаря, не изменяя исходные? Используй оператор |, начиная с Python 3.9.

Итог:
Оператор | объединяет словари в один, не изменяя оригиналы. Это удобно, читаемо и декларативно.

Разъяснивший Python
Преобразование PowerPoint PPT или PPTX в PDF в Python

Преобразование из PowerPoint в PDF также довольно просто.

Просто используйте метод Presentation.LoadFromFile() для загрузки файла PPT или PPTX, а затем конвертируйте его в PDF с помощью метода Presentation.SaveToFile().

Разъяснивший Python
1🤨1
Библиотека python-decouple

Библиотека python-decouple для Python помогает отделить конфигурационные параметры от вашего исходного кода. Это означает, что вы можете хранить секретные данные, такие как ключи API, пароли и URL-адреса базы данных, вне вашего кода, улучшая безопасность.

Разъяснивший Python
Заморозка dataclass с frozen=True

Хочешь сделать неизменяемый объект — как namedtuple, но с преимуществами dataclass? Просто добавь frozen=True.

Итог:
frozen=True превращает dataclass в неизменяемый и хешируемый объект. Отлично для безопасного и предсказуемого кода.

Разъяснивший Python
Упрощённая проверка аргументов через __post_init__ в dataclass

Иногда тебе нужно добавить валидацию данных при создании объекта dataclass. Вместо написания кастомного init, просто используй post_init!

Итог
post_init — отличный способ добавить проверку инициализации в dataclass, не нарушая автоматические преимущества этого декоратора.

Разъяснивший Python
contextlib.suppress — элегантное подавление исключений

Иногда нужно проигнорировать определённое исключение, но писать try/except кажется избыточным. В этом случае поможет contextlib.suppress.

Это удобно при удалении временных файлов, работе с кэшем и т.п., где FileNotFoundError, например, — не критичен.

Итог:
contextlib.suppress делает код чище, устраняя лишние try/except блоки, если ты сознательно игнорируешь конкретное исключение.

Разъяснивший Python
🤝2
Быстрое создание вложенных словарей с defaultdict

Если ты работаешь с вложенными структурами типа dict of dict, можно избавиться от лишних проверок на наличие ключей, используя collections.defaultdict.

Это особенно удобно при подсчёте данных или построении динамических структур.

Итог:
С помощью defaultdict можно упростить работу с вложенными словарями и избежать лишней проверки наличия ключей. Идеально подходит для счётчиков и агрегаций.

Разъяснивший Python
Генератор MindMap

Mind map – это карта мыслей с ветками и подтемами. Это эффективный метод конспектирования лекций, а также планирования проектов. С помощью данного проекта ты сможешь генерировать mind map.

Ссылка на код

Разъяснивший Python