Python/ django
по всем вопросам @haarrp @itchannels_telegram - 🔥 все ит каналы @ai_machinelearning_big_data -ML @ArtificialIntelligencedl -AI @datascienceiot - 📚 @pythonlbooks РКН: clck.ru/3FmxmM
Ko'proq ko'rsatish📈 Telegram kanali Python/ django analitikasi
Python/ django (@pythonl) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 60 075 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 2 192-o'rinni va Rossiya mintaqasida 10 214-o'rinni egallagan.
📊 Auditoriya ko‘rsatkichlari va dinamika
невідомо sanasidan buyon loyiha tez o‘sib, 60 075 obunachiga ega bo‘ldi.
05 Iyun, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -562 ga, so‘nggi 24 soatda esa -8 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.
- Tasdiqlash holati: Tasdiqlanmagan
- Jalb etish (ER): Auditoriya o‘rtacha 6.76% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 3.58% ini tashkil etuvchi reaksiyalarni to‘playdi.
- Post qamrovi: Har bir post o‘rtacha 4 065 marta ko‘riladi; birinchi sutkada odatda 2 153 ta ko‘rish yig‘iladi.
- Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 15 ta reaksiya keladi.
- Tematik yo‘nalishlar: Kontent github, claude, контекст, архитектура, api kabi asosiy mavzularga jamlangan.
📝 Tavsif va kontent siyosati
Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
“по всем вопросам @haarrp
@itchannels_telegram - 🔥 все ит каналы
@ai_machinelearning_big_data -ML
@ArtificialIntelligencedl -AI
@datascienceiot - 📚
@pythonlbooks
РКН: clck.ru/3Fmxm...”
Yuqori yangilanish chastotasi (oxirgi ma’lumot 07 Iyun, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.
pip, poetry, uv, hatch, pdm и др. — это уже не просто "pip install", а стратегическое решение.
В этом гайде сравниваются 6 ключевых инструментов, каждый со своими сильными и слабыми сторонами:
1️⃣ uv — самый быстрый и универсальный (написан на Rust)
✅ До 100× быстрее pip
✅ Объединяет pip, virtualenv и pip-tools
✅ Поддержка PyPI-паблишинга и Python-менеджмента
📌 Выбор для CI/CD и monorepo-проектов
2️⃣ Poetry 2 — стандарт для библиотек и модульных приложений
✅ Поддержка semantic versioning, lock-файлов, плагинов
✅ Отлично подходит для open source
📌 Идеален для reproducible builds и PyPI
3️⃣ Hatch — “Cargo для Python”
✅ Поддержка матриц окружений, monorepo, хуков
✅ Интеграция с uv для скорости
📌 Выбор для сложных enterprise-проектов и тестовых фреймворков
4️⃣ PDM — стандартизированный менеджер без virtualenv
✅ Поддержка PEP 582 (__pypackages__), PEP 621
✅ Изоляция без виртуалок, удобен для прототипов
📌 Подходит для rapid dev и экспериментальных сборок
5️⃣ Pipenv — простой интерфейс для приложений
✅ Pipfile, auto-venv, чистый CLI
📌 Хорош для небольших проектов и начинающих
6️⃣ pip — классика
✅ Совместим везде, гибкий
❌ Нет lock-файлов, окружений, требует внешних тулов
📌 Решение для легаси-проектов или скриптов
💡 Выводы:
• uv — лучший выбор для скорости, CI и автоматизации
• Poetry — стандарт для библиотек, особенно с open source
• Hatch — для сложных проектов и продвинутых пайплайнов
• PDM — для быстрой разработки и современных стандартов
• Pipenv — простой, но морально устарел
• pip — базовый минимум, но требует ручной сборки обвязки
Если ты:
🔹 Собираешь ML‑пайплайн → смотри в сторону uv + Hatch
🔹 Работаешь над библиотекой → Poetry 2 будет логичным выбором
🔹 Строишь монорепу или сложный фреймворк → Hatch + workspace
🔹 Пишешь простые скрипты или MVP → подойдёт PDM или Pipenv
🔗 Полный гайд
@pythonlwith, но не писать громоздкий класс с __enter__ и __exit__? Используй @contextmanager из contextlib:
from contextlib import contextmanager
import time
@contextmanager
def timer(label="Block"):
start = time.time()
print(f"[{label}] Start")
try:
yield
finally:
end = time.time()
print(f"[{label}] End — elapsed: {end - start:.3f}s")
# Пример использования
with timer("Download step"):
time.sleep(1.2)
📌 До yield — код до with
📌 После yield — код после with
🔥 Это мощный способ:
- логировать действия,
- временно менять окружение (stdout, переменные, режимы),
- управлять ресурсами, не создавая классы.
@pythonl
import logging
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
handler = logging.FileHandler("app.log")
handler.setFormatter(logging.Formatter("%(asctime)s %(name)s %(levelname)s %(message)s"))
logger.addHandler(handler)
def divide(a, b):
return a / b
def main():
logger.info("Start")
logger.info(divide(10, 0)) # ZeroDivisionError
logger.info("End")
if __name__ == "__main__":
main()
📄 В логе:
2025-07-24 12:00:00 __main__ INFO Start
❗ А сам ZeroDivisionError — только в консоли. Лог молчит.
✅ Решение — использовать sys.excepthook:
import sys
def handle_uncaught_exception(exc_type, exc_value, exc_traceback):
logger.critical("Uncaught exception", exc_info=(exc_type, exc_value, exc_traceback))
sys.excepthook = handle_uncaught_exception
Теперь, если произойдёт ошибка, она попадёт в лог:
CRITICAL Uncaught exception Traceback (most recent call last): ... ZeroDivisionError: division by zero📌 Вывод: — Необработанные исключения не попадут в лог, если явно не подключить sys.excepthook — Это особенно важно в продакшене: лог покажет, где и почему всё сломалось — Просто и надёжно 🔗 Подробнее @pythonl
import logging
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
handler = logging.FileHandler("app.log")
handler.setFormatter(logging.Formatter("%(asctime)s %(name)s %(levelname)s %(message)s"))
logger.addHandler(handler)
def divide(a, b):
return a / b
def main():
logger.info("Start")
logger.info(divide(10, 0)) # ZeroDivisionError
logger.info("End")
if __name__ == "__main__":
main()
📄 В логе:
2025-07-24 12:00:00 __main__ INFO Start
❗ А сам ZeroDivisionError — только в консоли. Лог молчит.
✅ Решение — использовать sys.excepthook:
import sys
def handle_uncaught_exception(exc_type, exc_value, exc_traceback):
logger.critical("Uncaught exception", exc_info=(exc_type, exc_value, exc_traceback))
sys.excepthook = handle_uncaught_exception
Теперь, если произойдёт ошибка, она попадёт в лог:
CRITICAL Uncaught exception Traceback (most recent call last): ... ZeroDivisionError: division by zero📌 Вывод: — Необработанные исключения не попадут в лог, если явно не подключить sys.excepthook — Это особенно важно в продакшене: лог покажет, где и почему всё сломалось — Просто и надёжно 🔗 Подробнее @pythonl
pip install pynguin, минимальная конфигурация требует указания пути к проекту и модулям для тестирования.
🤖 GitHub
@pythonlsorted() с key, комбинируя несколько полей с нужной логикой сортировки. Вот как:
people = [
{"name": "Alice", "age": 30},
{"name": "Bob", "age": 25},
{"name": "Charlie", "age": 25},
{"name": "David", "age": 30},
]
# Сортировка: сначала по age (по возрастанию), затем по name (по убыванию)
sorted_people = sorted(people, key=lambda p: (p["age"], -ord(p["name"][0])))
for person in sorted_people:
print(person)
💡 Работает и с объектами, и с кортежами — главное, правильно составить key. Особенно полезно для фильтрации списков в табличных данных, при выводе результатов или генерации отчётов.
#python
Больше коротких уроков тут
# Создаем класс динамически
MyDynamicClass = type(
'MyDynamicClass', # имя класса
(object,), # родительские классы
{'x': 42, 'hello': lambda self: f'Hello, x = {self.x}'} # атрибуты и методы
)
obj = MyDynamicClass()
print(obj.hello()) # Hello, x = 42
🔥 Что тут происходит?
type() в обычном использовании возвращает тип объекта.
Но если передать три аргумента, он создаёт новый класс.
Мы задали имя, базовые классы и словарь атрибутов.
💡 Это то, что делает Python "Pythonic" — классы это тоже объекты, и ты можешь создавать их на лету.
@pythonlcudf.pandas.
Для примеры были взяты:
📉 Скользящие средние (50D и 200D)
📅 Недельная статистика закрытия рынков
🧊 В общей сложности ~18M строк
Результат впечатляет : удалось добиться**ускорения обработки данных в 20–40 раз
Код скрипта не менялся вообще — тот же pandas, но на GPU.
Это один из примеров, где ускорение достигается без переписывания логики кода.
🟡 Потестить самому можно в Colab
🟡 Другие примеры с кодом — здесь
@ai_machinelearning_big_data
#datasckience #ml #nvidia #gpu #pandas #python
def append_to_list(val, my_list=[]):
my_list.append(val)
return my_list
print(append_to_list(1))
print(append_to_list(2))
print(append_to_list(3))
🤯 Подвох
Многие думают, что каждый вызов append_to_list() создаёт новый список, и ожидают вывод:
[1]
[2]
[3]
Но на самом деле Python выведет:
[1]
[1, 2]
[1, 2, 3]
🧠 Почему так происходит?
В Python значения аргументов по умолчанию вычисляются один раз — при определении функции, а не при каждом вызове.
Значение my_list=[] создаётся один раз и сохраняется между вызовами. Это работает как статическая переменная внутри функции.
✅ Как это исправить?
Используй None как значение по умолчанию:
def append_to_list(val, my_list=None):
if my_list is None:
my_list = []
my_list.append(val)
return my_list
print(append_to_list(1)) # [1]
print(append_to_list(2)) # [2]
print(append_to_list(3)) # [3]
💡 Вывод
Не используйте изменяемые объекты (например, list, dict, set) как значения по умолчанию для аргументов функций в Python.
@pythonlmoviepy
— Преобразование аудио в текст через SpeechRecognition
— Извлечение субтитров
— Автоматизация задач с файлами .mp3, .wav, .mp4 и .avi
🛠 Глава написана в привычном стиле — просто, на примерах, с пояснениями к коду. Идеально подойдёт для тех, кто хочет быстро научиться обрабатывать медиафайлы на Python без сложных фреймворков.
📎 Читать
@Pythonl
data = [1, 2, 3, ..., 1000000] # большой список
queries = [42, 9999, 123456]
# Медленно:
for q in queries:
if q in data:
print(q)
🔁 Каждый q in data проходит весь список → медленно.
✅ Правильный способ:
Преобразуй список в set один раз — и все станет быстро:
data_set = set(data)
for q in queries:
if q in data_set:
print(q)
💡 Проверка in в set работает мгновенно (как в словаре).
Такой трюк особенно полезен, если:
-у тебя много данных
-ты делаешь много проверок на вхождение
📌 Запомни: if x in список: — медленно
Лучше: if x in set(список): — быстро!
@pythonl
Endi mavjud! Telegram Tadqiqoti 2025 — yilning asosiy insaytlari 
