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

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

Цены: @heywan_media

Реклама на бирже: https://telega.in/c/+IOa15XDNbxRkYzNi
Download Telegram
«Вайб-кодинг» — слово года по версии словаря Collins

(на сленге - безработный 🙂)

🐍 Ghostly Python | #мем
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥51👍1😁1🤣1
🖼️ Библиотека tenacity — умные повторные попытки для ненадёжного кода

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

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

from tenacity import retry, stop_after_attempt
import requests

# Повторить 3 раза при любой ошибке
@retry(stop=stop_after_attempt(3))
def get_data():
return requests.get("https://api.example.com/data").json()

# Использование
data = get_data() # если упадёт — автоматически повторит до 3 раз


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

pip install tenacity

🐍 Ghostly Python | #библиотеки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
👩‍💻 Автоматизация отдела продаж в Bitrix24

Автор статьи максимально рассказал об автоматизации продаж и квалифицировании лидов в битрикс.

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

🐍 Ghostly Python | #статьи
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
📱 Фишка: asyncio.TaskGroup — надёжное управление группами задач

TaskGroup автоматически следит за всеми запущенными в нём задачами. Если любая задача падает с ошибкой — отменяются все остальные, и вы точно ничего не пропустите. Удобнее и безопаснее, чем ручной gather/wait.

import asyncio

async def worker(name, delay):
print(f"Задача {name} стартует")
await asyncio.sleep(delay)
if name == "fail":
raise ValueError("Ошибка в задаче!")
print(f"Задача {name} завершена")
return f"Результат {name}"

async def main():
try:
async with asyncio.TaskGroup() as tg:
task1 = tg.create_task(worker("A", 1))
task2 = tg.create_task(worker("B", 2))
task3 = tg.create_task(worker("fail", 0.5))
task4 = tg.create_task(worker("C", 1.5))
# сюда мы попадём, только если все задачи успешны
print("Все задачи завершены без ошибок")
except Exception as e:
print(f"Перехвачено исключение: {e}")
# все незавершённые задачи уже отменены автоматически

asyncio.run(main())


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

— При входе в async with создаётся группа задач.
— Как только одна задача вызывает исключение — группа немедленно отменяет все остальные.
— После выхода из блока можно быть уверенным: либо все задачи выполнились успешно, либо ни одна «незакрытая» ошибка не осталась незамеченной.

🐍 Ghostly Python | #фишки
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
🔲 Захватывающая драма 21 века

На всякий случай:

yt-dlp --download-sections "*start_time-end_time"
<video_url>


🐍 Ghostly Python | #мем
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6👍42
📱 Фишка: collections.deque — двусторонняя очередь с быстрой вставкой и удалением

deque (двусторонняя очередь) из модуля collections — это более эффективная альтернатива спискам, когда часто требуется вставка или удаление с начала и конца.

from collections import deque

# Создаём deque
queue = deque(["Алиса", "Боб", "Чарли"])

# Добавляем в конец и в начало
queue.append("Дэвид")
queue.appendleft("Эва")
print(queue) # ➔ deque(['Эва', 'Алиса', 'Боб', 'Чарли', 'Дэвид'])

# Удаляем с конца и начала
queue.pop() # ➔ 'Дэвид'
queue.popleft() # ➔ 'Эва'
print(queue) # ➔ deque(['Алиса', 'Боб', 'Чарли'])


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

🟢 deque оптимизирован для операций .append(), .appendleft(), .pop() и .popleft() — все выполняются за O(1), в отличие от обычного списка.
🟢 Можно ограничить длину (maxlen=N) — полезно для реализации кольцевых буферов.

🐍 Ghostly Python | #фишки
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥4

Страх.
Гнев.
Стыд.
Вина.
Тревога.
Апатия.
Уныние.
Изоляция.
Бессилие.

Контакт.
Тепло.
Чувство.
Живость.
Ясность.
Точность.
Присутствие.
Тишина.

Покой.

Если выбор сделан,
твоё место здесь:

мэверик

Входи осторожно.

Кислород
зашкаливает.
🤮8
Открыли регистрацию на E-CUP 2026 Students 🎓

В этом сезоне — только для студентов. Будет интересно тем, кто изучает ML / DS / big data / аналитику данных.

Сможете ускорить модель по поиску дубликатов на 20%? Получится создать классификатор для модерации товаров? Сумеете предсказать поведение покупателя?

Как минимум — попробуете и получите фидбэк от тех, кто делает это в Ozon Tech каждый день. Как максимум — разделите призовой фонд в 7 200 000 ₽ в торжественной атмосфере конференции E-CODE.

Нетривиальные задачи, нетворк с ведущими специалистами индустрии, кастомный мерч и шанс масштабно усилить портфолио — это про E-CUP 2026 Students.
Больше подробностей и регистрация ↩️
🔥32
💯 Одна из самых полезных библиотек Python - hybridmethod.

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

Он позволяет объявлять метод, который может быть вызван как в обычном, так и в asyns-контексте, исключая дублирование кода.

Плюсы использования:

🔹Поддерживает Python 3.x (версия 1.0.1).

🔹Имеет минимум зависимостей.

🔹 Идеально подходит для проектов, где требуется единый API для синхронного и асинхронного кода.

🔗Ссылка

🐍 Ghostly Python | #статья
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍3🔥1
📔 6 ФИШЕК ДЛЯ РАБОТЫ С JOURNALCTL.

journalctlэто мощный инструмент для систем на базе systemd. Вот несколько практичных советов.

🔘Просмотр последних записей и «подписка» на новые:

journalctl -f


Это аналог команды tail -f, но для системного журнала. Круто, когда вы отлаживаете службу и хотите следить за новыми записями в реальном времени.

🔘 Фильтрация по конкретному сервису:

journalctl -u nginx.service -f


Удобно, если проблема связана с определённым демоном. Вместо nginx просто укажите нужный сервис (например, aiogram_bot.service, sshd.service и т.д.).

🔘 Получение логов за последний час / день / определённый промежуток времени:

journalctl --since "1 hour ago"
journalctl --since "2025-10-01" --until "2025-10-02 03:00"


Это позволяет быстро сузить временной диапазон и увидеть проблему в контексте.

🔘 Фильтрация по уровням логов (ТОЛЬКО ОШИБКИ):

journalctl -p err..emerg


Эта команда покажет только серьёзные сообщения (ошибки, критические, предупреждения и экстренные). Особенно полезно, когда логи «шумные».

🔘 Просмотр логов по конкретному PID / пользователю / cgroup:

journalctl _PID=12345
journalctl _UID=1000
journalctl _SYSTEMD_UNIT=nginx.service


Метаданные systemd позволяют удобно фильтровать информацию.


🔘 Форматирование: удобочитаемый вывод против JSON:

journalctl -o short-iso    # для удобных временных меток
journalctl -o json-pretty # для автоматического парсинга и анализа


Если вам нужно автоматизировать обработку логов, используйте вывод в формате JSON.

🐍 Ghostly Python | #фишки
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥2🤝1
🔴 Тестовый собес на Middle Python с разработчиком из Яндекса завтра вечером! 
[+ разбор 50 сложных вопросов в подарок ]

23 сентября (уже завтра) в 19:00 по мск
приходи онлайн, чтобы посмотреть на настоящее интервью на Middle Python-разработчика!

Собеседование проведёт Хачатур Саркисян - ведущий разработчик из Яндекса.

Как это будет:

📂 Хачатур задаст разработчику вопросы и задачи, которые могут спросить на реальном собесе;

📂 После каждого ответа респондента ты услышишь подробный комментарий от ментора и поймёшь, чего на самом деле ожидает собеседующий на интервью;

📂 В конце сможешь задать любой вопрос Хачатуру и получить на него развёрнутый ответ.

Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

И ты можешь посмотреть его бесплатно 🔥
Только завтра, в прямом эфире!

🎁 Подарок для всех, кто зарегается на веб — файл с ОТВЕТАМИ НА 50 СЛОЖНЫХ ВОПРОСОВ с Python-собеседований 🔥

Переходи в бот, чтобы попасть на эфир и забрать подарок
👉 @shortcut_py_bot

Реклама.
О рекламодателе.
1🔥1🤝1