Ghostly Python
8.75K subscribers
544 photos
24 videos
612 links
Погружаемся в мир Python: задачи, фишки, библиотеки и террабайты полезного материала.

Сотрудничество: @heywan_n1
менеджер: @shmyzna

Цены: @heywan_media

Реклама на бирже: https://telega.in/c/+IOa15XDNbxRkYzNi
Download Telegram
👩‍💻 Самый быстрый способ читать Excel в Python

В статье результаты тестирования pandas, openpyxl, Tablib, DuckDB, LibreOffice и даже связки с Rust. Кто справился лучше всех и как за 4 секунды Python «проглотил» полмиллиона строк.

➡️ Ссылка на статью

🐍 Ghostly Python | #статьи
Please open Telegram to view this post
VIEW IN TELEGRAM
1
📱 Фишка: functools.cached_property — ленивое свойство с кэшированием

cached_property превращает метод в свойство, которое вычисляется один раз при первом доступе и кэшируется в экземпляре. Полезно для дорогих вычислений и ленивой инициализации

from functools import cached_property
import time

class Report:
def init(self, user_id):
self.user_id = user_id

@cached_property
def stats(self):
print("Вычисляю...") # выполнится только при первом доступе
time.sleep(1)
return {"orders": 42, "spent": 199.99}


r = Report(123)
print(r.stats) # первый доступ — расчёт и кэширование
print(r.stats) # последующие — мгновенно из кэша
del r.dict["stats"] # инвалидация кэша
print(r.stats) # пересчёт после инвалидации


📌 Как это работает?

🟢 @cached_property сохраняет результат в instance.__dict__ под именем свойства.
🟢 Для обновления данных удалите кэш: del obj.__dict__["attr"] — значение пересчитается при следующем доступе.
🟢 Идеально для «ленивых» параметров: конфигов, аггрегатов из БД/API, тяжёлых вычислений

🐍 Ghostly Python | #фишки
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
🖼️ Легковесная и мощная платформа для многоагентных рабочих процессов

OpenAI Agents SDK — это легковесная, но мощная платформа для создания рабочих процессов с участием нескольких агентов. Она не зависит от конкретного поставщика услуг и поддерживает API OpenAI Responses и Chat Completions, а также более 100 других LLM-модулей.

➡️ Ссылка на платформу

🐍 Ghostly Python | #ресурс
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Что выведет код?
Anonymous Quiz
40%
31 | 2 | 32
18%
31 | 2 | 42
19%
21 | 2 | 32
24%
32 | 1 | 42
💩61
👩‍💻 Викторина: что выведет код?

def make_counter():
count = [0]

def increment():
count[0] += 1
return count[0]

def get():
return count[0]

return increment, get

inc1, get1 = make_counter()
inc2, get2 = make_counter()

inc1()
inc1()
inc2()
inc1()

print(get1(), get2())
print(inc2())
print(get1(), get2())


🐍 Ghostly Python | #викторина
Please open Telegram to view this post
VIEW IN TELEGRAM
💩9😁2🤮1
📱 Фишка: __slots__ — отключаем_slots__ —для экономии памяти

По умолчанию каждый экземпляр Python хранит атрибуты в словаре dict. Это удобно, но съедает много памяти.__ —для экофиксирует набор атрибутов, убираяlots__ —дли� Фишка: __sl

class Report:
— отключае= ('user_id', 'stats') # только эти атрибуты

def __init__(self, user_id):
self.user_id = user_id
self.stats = {} # теперь stats не динамический

r = Report(123)
r.new_attr = 42 # AttributeError!


📌 Как это работает?

— Вместо dict создаются дескрипторы для каждого атрибута из slots.
— Экземпляр хранит значения в компактном массиве, не в хэш-таблице.

🐍 Ghostly Python | #фишки
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔6👎5😱1
Не репутация, а мечта

🐍 Ghostly Python | #мем
Please open Telegram to view this post
VIEW IN TELEGRAM
😁14
🖼️ Библиотека: glom

glom — декларативная библиотека для извлечения и трансформации вложенных структур данных (dict/list/tuple). Позволяет описывать «что достать и как преобразовать» короткой спецификацией вместо ручных циклов и if.

ℹ️ Основные возможности:

🟢 Доступ к глубоко вложенным полям без try/except
🟢 Маппинг и агрегирование списков одной строкой
🟢 Значения по умолчанию и безопасные обходы отсутствующих ключей
🟢 Композиция спецификаций для сложных преобразований


⚙️ Пример использования:

from glom import glom, T

data = {
"user": {"name": "Alice", "age": 30, "emails": ["a@x.io", "b@y.io"]},
"orders": [{"id": 1, "total": 99.9}, {"id": 2, "total": 15.0}]
}

spec = {
"username": T["user"]["name"],
"primary_email": T["user"]["emails"][0],
"order_ids": (T["orders"], [T["id"]]),
"sum_total": (T["orders"], sum, [T["total"]]), # суммируем totals
}

print(glom(data, spec))
# ➔ {'username': 'Alice', 'primary_email': 'a@x.io', 'order_ids': [1, 2], 'sum_total': 114.9}

# Безопасный доступ с дефолтом:
print(glom(data, "user.phone", default="no phone")) # ➔ 'no phone'


✔️ Установка:

pip install glom


➡️ Ссылка на документацию

🐍 Ghostly Python | #библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
2
В России можно посещать IT-мероприятия хоть каждый день: как оффлайн, так и онлайн

Но где их находить? Как узнавать о них раньше, чем когда все начнут выкладывать фотографии оттуда?

Переходите на канал IT-Мероприятия России. В нём каждый день анонсируются мероприятия со всех городов России

📆 в канале размещаются как онлайн, так и оффлайн мероприятия;
👩‍💻 можно найти ивенты по любому стеку: программирование, frontend-backend разработка, кибербезопасность, дата-аналитика, osint, devops и другие;
🎙 разнообразные форматы мероприятий: митапы с коллегами по цеху, конференции и вебинары с известными опытными специалистами, форумы и олимпиады от важных представителей индустрии и многое другое

А чтобы не искать по разным форумам и чатам новости о предстоящих ивентах:

🚀 IT-мероприятия Россииподписывайся и будь в курсе всех предстоящих мероприятий!
Please open Telegram to view this post
VIEW IN TELEGRAM
1
👩‍💻 Создание MCP‑серверов на FastMCP: 7 ошибок, которых стоит избегать

Автор в статье дает конкретные советы по исправлению каждой проблемы и предупреждает о реальных рисках безопасности (включая известные CVE).

➡️ Ссылка на статью

🐍 Ghostly Python | #статьи
Please open Telegram to view this post
VIEW IN TELEGRAM