pythonl | Unsorted

Telegram-канал pythonl - Python/ django

52807

по всем вопросам @haarrp @itchannels_telegram - 🔥 best it channels @ai_machinelearning_big_data -ML @ArtificialIntelligencedl -AI @datascienceiot - ml 📚 @pythonlbooks -📚books

Subscribe to a channel

Python/ django

🖥 Как организовать архитектуру большого Python-проекта?

Разработка крупного Python-проекта требует продуманной архитектуры. Правильная структура кода упрощает развитие, тестирование и поддержку приложения.

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

Обсудим разделение системы на слои (domain, service, infrastructure), использование популярных шаблонов проектирования (Dependency Injection, Repository, Facade), организацию кода по модулям и пакетам, примеры структуры каталогов, работу с зависимостями и конфигурацией (Pydantic, dotenv), логгирование и мониторинг, обеспечение тестируемости, поддержку расширяемости и модульности.

Также приведем примеры кода и структуры каталогов, а в конце – общие советы и распространенные ошибки, которых следует избегать.

https://uproger.com/kak-organizovat-arhitekturu-bolshogo-python-proekta/

@pythonl

Читать полностью…

Python/ django

🖥 Python: Почему твой asyncio-код тормозит и блокируется?

Чаще всего проблема не в самом asyncio, а в том, что внутри async-функций ты вызываешь блокирующий код. Например, time.sleep, requests.get, тяжёлые циклы с вычислениями или работа с диском без специальных обёрток. Такой вызов останавливает весь event loop, и остальные корутины тупо ждут.

Главное правило: внутри async-функций каждая долгая операция должна либо быть асинхронной (через await), либо вынесена в поток или процесс. Если в корутине нет нормальных await, она вообще не отдаёт управление циклу, и твой «асинхронный» код ведёт себя как обычный синхронный.

Используй:
- асинхронные библиотеки (aiohttp вместо requests и т.п.);
- asyncio.sleep вместо time.sleep;
- asyncio.to_thread или отдельный процесс для тяжёлых синхронных задач.

Как только уберёшь блокирующие вызовы из корутин, код перестанет «залипать» и начнёт реально работать параллельно по I/O.


import asyncio
import time

async def bad_task():
print("start bad")
time.sleep(2)
print("end bad")

async def good_task():
print("start good")
await asyncio.to_thread(time.sleep, 2)
print("end good")

async def main():
await asyncio.gather(bad_task(), good_task())

asyncio.run(main())


https://www.youtube.com/shorts/LZgy5YvQR4o

@pythonl

Читать полностью…

Python/ django

⚡️КАК СДЕЛАТЬ EXE ИЗ PYTHON САМЫМ ПРОСТЫМ СПОСОБОМ

Самый удобный способ собрать exe из Python это использовать PyInstaller. Он создаёт полноценный исполняемый файл который запускается без установленного Python. Работает на Windows, не требует сложной настройки и подходит для любых скриптов.


# Установка PyInstaller
pip install pyinstaller

# Создание exe (один файл)
pyinstaller --onefile your_script.py

# Готовый exe будет в папке dist
# Пример запуска
dist\your_script.exe


@pythonl

Читать полностью…

Python/ django

🔒🤖 IoTHackBot: Инструменты для тестирования безопасности IoT

IoTHackBot — это набор инструментов для тестирования безопасности IoT-устройств, включая IP-камеры и встроенные системы. Он предлагает как командные инструменты, так и AI-ассистированные рабочие процессы для автоматизированного обнаружения уязвимостей.

🚀Основные моменты:
- Сканирование устройств с помощью wsdiscovery и onvifscan
- Анализ сетевого трафика с iotnet
- Продвинутое извлечение файлов из прошивок с ffind
- Взаимодействие с консолью через picocom и telnetshell
- Поддержка автоматизации и интеграции инструментов

📌 GitHub: https://github.com/BrownFineSecurity/iothackbot

@pythonl

Читать полностью…

Python/ django

🖥 GitHub обновил Copilot - функция Next Edit Suggestions теперь понимает твои правки по шагам и предлагает логичные следующие изменения.

Что улучшили:
• Модель обучили на реальных сессиях редактирования, а не только на итоговом коде
• Задержка стала ниже - подсказки появляются почти мгновенно
• Предложения стали точнее и полезнее: фиксы, рефакторинг, дополнения, улучшение структуры

Как обучали:
1) Данных из pull-requests оказалось мало, там нет промежуточных правок
2) GitHub собрал датасет настоящих редакторских сессий — шаг за шагом
3) После дообучения модель улучшили через RL - отдельная модель оценивает, насколько полезна подсказка

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

https://github.blog/ai-and-ml/github-copilot/evolving-github-copilots-next-edit-suggestions-through-custom-model-training/

@python

Читать полностью…

Python/ django

🎤 Быстрый текст-в-речь с Supertonic

Supertonic — это высокопроизводительная система текст-в-речь, работающая на вашем устройстве. Она обеспечивает молниеносное создание речи с минимальными затратами ресурсов и полным соблюдением конфиденциальности. Никаких облачных решений — всё происходит локально.

🚀Основные моменты:
- ⚡ Генерация речи до 167× быстрее реального времени
- 🪶 Легковесная архитектура с 66M параметрами
- 📱 Полная обработка на устройстве без задержек
- 🎨 Обработка сложных текстов без предварительной подготовки
- ⚙️ Гибкая настройка параметров и развертывания

📌 GitHub: https://github.com/supertone-inc/supertonic

#python

Читать полностью…

Python/ django

🖥 Минимальный и безопасный Dockerfile для Python-приложения.

В основе - python:3.11-slim, установка только нужных пакетов, удаление apt-кэша, отдельный системный пользователь без root-прав, изоляция рабочего каталога и установка зависимостей под ненадёжным пользователем.

Такой контейнер легче, безопаснее и запускается быстрее.

Отличная база для продакшена.

Переход на non-root пользователя резко снижает возможный ущерб, ограничивает доступ к файлам и заставляет держать порядок с правами и владением.


Docker - все о Docker и Devops

Читать полностью…

Python/ django

🔧 Утилиты для C++ и Python

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

🚀 Основные моменты:
- Инструменты для обработки и анализа данных
- Удобные функции для работы с файлами
- Поддержка взаимодействия между C++ и Python
- Легкая интеграция в проекты
- Документация для быстрого старта

📌 GitHub: https://github.com/xZepyx/cpp-pyutils

@pythonl

Читать полностью…

Python/ django

Как это — работать в Т-Банке?

Загляните в канал T-Crew, где увидите:

— жизнь и будни команды;
— ИТ-хабы компании по всей России;
— анонсы мероприятий;
— кейсы, статьи и советы для карьерного роста.

Еще здесь можно раньше других найти вакансии в ИТ и диджитале. За полезным — сюда

Читать полностью…

Python/ django

🔥 Безопасный запуск Linux-команд из Python

Если нужно из Python безопасно выполнять системные команды в Linux, используй изоляцию через subprocess с принудительным сбросом привилегий. Такой приём позволяет запускать команды даже в окружениях с потенциально небезопасным вводом, блокируя доступ к опасным системным вызовам и снижая риск эксплуатации.



import subprocess
import os

def safe_run(cmd):
# Запускаем процесс без наследования переменных окружения
env = {"PATH": "/usr/bin:/bin"}

# Сбрасываем привилегии, если процесс запущен от root
def drop_priv():
os.setgid(65534)
os.setuid(65534)

result = subprocess.run(
cmd,
env=env,
preexec_fn=drop_priv,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
text=True,
timeout=3,
)
return result.stdout

print(safe_run(["ls", "/"]))


@pythonl

Читать полностью…

Python/ django

🔥 Коварная ловушка с замыканиями в Python

Многие хитрые баги в Python появляются из-за того, что разработчики неверно понимают область видимости переменных в замыканиях.

Частая ошибка - внутри цикла создавать функции-лямбды, которые «помнят» одно и то же финальное значение переменной, а не значение на каждой итерации. В итоге весь список функций ведёт себя одинаково. Чтобы избежать ловушки, фиксируйте значение через аргумент по умолчанию или используйте functools.partial.



funcs = []

for i in range(5):
funcs.append(lambda x=i: x) # фиксируем i как значение по умолчанию

print([f() for f in funcs]) # [0, 1, 2, 3, 4]

Читать полностью…

Python/ django

🤖 SelfDiscord: Мощный Discord Selfbot за 2 минуты настройки

SelfDiscord — это удобный selfbot для Discord с множеством команд и утилит. Он позволяет отслеживать ключевые слова, добавлять пользовательские команды и реакции, а также автоматизировать множество задач, таких как поиск изображений и управление сообщениями.

🚀Основные моменты:
- Логирование ключевых слов и уведомления о сообщениях.
- Автоматическая смена аватаров и статусов.
- Сохранение изображений и поиск источников.
- Пользовательские команды и реакции с возможностью сохранения.
- Уведомления и таймеры для задач.

📌 GitHub: https://github.com/tagal6727/SelfDiscord

#python

Читать полностью…

Python/ django

🔥 10 однострочных Python-функций, которые экономят время каждый день

Держи небольшой набор из 10 функций-однострочников, которые полезно просто закинуть в свой utils.py.
Они помогают быстро работать со списками, файлами, JSON, статистикой и частотами, без лишнего шума в коде.
Скопируй блок целиком и используй нужные функции по месту.


from pathlib import Path
from collections import Counter
import json, statistics as stats

chunks = lambda it, n: [it[i:i + n] for i in range(0, len(it), n)]

flatten = lambda lst: [x for sub in lst for x in sub]

unique = lambda seq: list(dict.fromkeys(seq))

sliding = lambda it, n: [it[i:i + n] for i in range(len(it) - n + 1)]

freqs = lambda seq: Counter(seq)

read_text = lambda p: Path(p).read_text(encoding="utf-8")

write_text = lambda p, text: Path(p).write_text(text, encoding="utf-8")

read_json = lambda p: json.loads(Path(p).read_text(encoding="utf-8"))

write_json = lambda p, obj: Path(p).write_text(json.dumps(obj, ensure_ascii=False, indent=2), encoding="utf-8")

mean_std = lambda xs: (stats.mean(xs), stats.pstdev(xs))


@pythonl

Читать полностью…

Python/ django

🚀 GigaChat Ultra & Lightning — новые MoE-модели от Сбера

💡 Что это такое
Две открытые модели нового поколения, обученные с нуля — без чужих весов. Созданы, чтобы ускорять разработку, уменьшать рутину и быть удобным напарником для разработчиков.

🔥 Что внутри
- Ultra: 702B параметров, контекст до 131k, стабильная работа экспертов
- Lightning: 10B параметров, контекст до 256k, лёгкая и быстрая
- Генерация нескольких токенов одновременно
- Экономия памяти, оптимизация KV-кеша
- Совместимость с Hugging Face, vLLM и SGLang

🎯 Почему стоит использовать
- Сбер снимает часть технических забот, чтобы сосредоточиться на экспериментах
- Ускоряет локальное прототипирование и работу с AI-помощниками
- Подходит для масштабных решений и небольших проектов

@pythonl

Читать полностью…

Python/ django

✔️ CPython может получить обязательную зависимость от Rust к версии Python 3.17.

Эмма Смит и Кирилл Подопригора из core-team Python опубликовали предварительное предложение (Pre-PEP), в котором описывается план постепенного внедрения Rust в кодовую базу CPython.
На первом этапе Rust хотят использовать для необязательных модулей стандартной библиотеки, находящихся в каталоге Modules/.

Дальше — больше: если эксперимент окажется успешным, то к выходу Python 3.17 Rust может стать обязательной сборочной зависимостью. Это позволит улучшить безопасность, производительность и надёжность низкоуровневых частей интерпретатора.

Подробнее: https://peps.python.org/pep-0011/

@pythonl

Читать полностью…

Python/ django

🔥 На stepik вышел курс, который учит Создавать настоящие AI-сервисы, а не просто запускать скрипты?

Этот практический курс по Python и FastAPI покажет, как собрать полноценное приложение с ИИ, базой данных, автогенерацией контента и Telegram-ботом.

Ты пройдёшь путь от первого HTTP-запроса до рабочего сервиса, который сам генерирует текст через ИИ, сохраняет данные, отправляет результаты по расписанию и отвечает пользователям.

Никакой теории ради теории - только практические шаги, из которых рождается реальный продукт.

🎁 48 часов действует скидка в 40% процентов

👉 Начать учиться на Stepik

Читать полностью…

Python/ django

🤖 Автономный AI-исследователь для научных экспериментов

Этот проект представляет собой автономного AI-исследователя, который разбивает исследовательскую задачу на эксперименты и запускает специализированные агенты с доступом к GPU для их выполнения. Результаты собираются и оформляются в виде научной статьи.

🚀 Основные моменты:
- Декомпозиция задач на эксперименты с распределением по агентам.
- Агенты запускают GPU-песочницы для обучения и оценки моделей.
- Окончательные результаты формируются в виде связного отчета.

📌 GitHub: https://github.com/mshumer/autonomous-researcher

#python

Читать полностью…

Python/ django

В канале «Код Желтый» стартует новогодний адвент для разработчиков

С 9 по 18 декабря будут публиковать ИТ-задачи. Самые быстрые участники, верно решившие их, получат подарки. А те, кто пройдет весь адвент без ошибок, попадут в финальный розыгрыш специального приза.

Задания будут появляться прямо в канале, но это не единственная причина заглянуть туда. Код Желтый регулярно публикует:
— инженерные кейсы и внутрянку Т;
— кейсы, подкасты и исследования;
— анонсы ИТ-мероприятий.

Подписаться можно тут!

Erid: 2RanynydJka

Читать полностью…

Python/ django

НЕЛЬЗЯ ИСПОЛЬЗОВАТЬ LAMBDA В ЦИКЛЕ И ОЖИДАТЬ ЧТО ОНА "ЗАПОМНИТ" ПЕРЕМЕННУЮ.

Из-за этого все лямбды, созданные в цикле, будут ссылаться на одно и то же последнее значение.
Код выглядит нормальным, а ведёт себя странно — это классическая проблема замыканий в Python.
Правильно — фиксировать значение через аргумент по умолчанию или выносить в обычную функцию.
Подписывайся, больше фишек каждый день !


# скрытая ошибка — lambda в цикле захватывает последнюю переменную
funcs = []

for i in range(5):
funcs.append(lambda: i) # кажется, что вернёт 0,1,2,3,4 — но нет

# все лямбды вернут одно и то же значение
print([f() for f in funcs]) # [4, 4, 4, 4, 4]

# правильный вариант
funcs_fixed = [lambda x=i: x for i in range(5)]
print([f() for f in funcs_fixed]) # [0, 1, 2, 3, 4]

Читать полностью…

Python/ django

🧩 Python Keylogger: Educational Tool for Data Capture

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

🚀Основные моменты:
- Легкий в использовании кейлоггер на Python.
- Использует библиотеку Pynput для захвата нажатий клавиш.
- Предназначен для образовательных целей, не для злоупотреблений.
- Возможность отправки данных на сервер.
- Пример реализации, который можно улучшить.

📌 GitHub: https://github.com/ahoaparadox8/python-keylogger

Читать полностью…

Python/ django

👩‍💻 Всем программистам посвящается!

Вот 16 авторских обучающих IT каналов по самым востребованным областям программирования:

Выбирай своё направление:

👩‍💻 Python — t.me/python_ready
🤔 InfoSec & Хакинг — t.me/hacking_ready
🖥 SQL & Базы Данных — t.me/sql_ready
🤖 Нейросетиt.me/neuro_ready
👩‍💻 C/C++ — /channel/cpp_ready
👩‍💻 C# & Unity — t.me/csharp_ready
👩‍💻 Java — t.me/java_ready
👩‍💻 IT Новости — t.me/it_ready
👩‍💻 Linux — t.me/linux_ready
🖼️ DevOpst.me/devops_ready
👩‍💻 Frontend — t.me/frontend_ready
📱 JavaScript — t.me/javascript_ready
🖥 Data Sciencet.me/data_ready
🐞 QA-тестирование t.me/qa_ready
📖 IT Книги — t.me/books_ready
🖥 Design — t.me/design_ready

📌 Гайды, шпаргалки, задачи, ресурсы и фишки для каждого языка программирования!

Читать полностью…

Python/ django

🖥 Bash Академия: секреты командной строки, которые нигде не рассказывают

Олег Шелест - профессионал по информационной безопасности, раскрывает скрытые механики Linux, с помощью наглядных картинок и коротких, максимально понятных разборов у себя в тг канале.

- Без воды.
- Без лишней теории.

Только практические приёмы, которые реально используют профи.

Если хочешь уверенно владеть Bash - здесь ты получишь всё, что нужно: t.me/bashmastter

Читать полностью…

Python/ django

🛠️ Tracer для системных вызовов на macOS

strace-macos — это инструмент для отслеживания системных вызовов на macOS с использованием API отладчика LLDB. Он работает с включенной защитой целостности системы и написан на чистом Python, что исключает необходимость в расширениях ядра.

🚀 Основные моменты:
- Поддержка SIP без отключения
- Вывод в формате JSON и текстовом формате
- Фильтрация системных вызовов по имени и категории
- Символическое декодирование аргументов
- Статистика вызовов и ошибок

📌 GitHub: https://github.com/Mic92/strace-macos

Читать полностью…

Python/ django

Изучаем Python, Docker, Git и выходим в DevOps с абсолютного нуля — нашли огромную библиотеку с сотнями подробных материалов.

• Сильная теоретическая база: язык программирования, сети, базы данных, система контроля версий.
• Короткие, но насыщенные уроки — учись по дороге на работу, в обед или во время короткого перерыва.
• Много практики — закрепишь навыки, соберёшь проекты и усилишь своё портфолио.
• Всё объясняется пошагово, простым языком — подойдёт даже тем, кто только сегодня услышал слово «программирование».

https://kodekloud.com/studio/labs

Читать полностью…

Python/ django

🌀 В Python есть встроенная функция reversed(), но работает она не со всеми структурами данных. Быстрый разбор:

Список можно развернуть
reversed([1, 2, 3]) возвращает итератор.
list(reversed([1, 2, 3]))[3, 2, 1]

Кортежи тоже разворачиваются
Можно итерироваться по reversed((1, 2, 3))

Множества не разворачиваются
reversed({1, 2, 3})TypeError: 'set' object is not reversible
Причина: множества *не имеют порядка*, а значит разворачивать нечего.

Если нужно развернуть множество — сначала сделай его списком:
list(reversed(list({1, 2, 3})))

@pythonl

Читать полностью…

Python/ django

Cursor мощно прокачался — релизнулась версия 2.1, которая еще быстрее находит баги, делает ревью кода, пишет и оптимизирует программы.

• Разрабы внедрили кнопку «Find issues» — агент автоматически правит баги, делает ревью и подсвечивает проблемы в боковой панели. Да, все СРАЗУ и без нескольких промптов.
Поиск ускорили в разы — теперь он работает на базе векторов и шерстит даже массивную кодовую базу за секунды.
• Улучшили режим планирования — агент будет задавать еще больше уточняющих вопросов, когда ты утверждаете задачу. Отвечать нужно в интерактивном режиме.

И да, сейчас на Cursor Pro есть скидка — реально приятная. Вместо 22 тысяч — 7000 рублей!
Так что если думали — это тот самый момент «пока недорого».
Купить можно на сайте 👉 по ссылке
Или можно купить на авито напрямую у продавца по ссылке

Читать полностью…

Python/ django

🧵 CPython 3.15 делает распаковку данных намного быстрее

В новой версии CPython улучшили производительность декомпрессии:

- Zstandard (zstd) распаковывается на 25–30% быстрее
- zlib — на 10–15% быстрее, если размер данных больше 1 MiB

Такого ускорения добились за счёт более эффективной работы с выходными буферами во время распаковки.

Подробнее: emmatyping.dev/decompression-is-up-to-30-faster-in-cpython-315.html

@pythonl

Читать полностью…

Python/ django

🚀 myfy - модульный Python-фреймворк с фронтендом «из коробки»

Зачем он нужен: FastAPI - идеален для API, но без нормального фронта.

myfy берёт лучшее из FastAPI и добавляет полноценную модульность, DI и встроенный UI.

🔥 Главное
- Модульная архитектура с жизненным циклом (`start/stop`)
- Type-based DI без скрытой магии
- Фронтенд сразу из коробки:
Jinja2 + DaisyUI + Tailwind + Vite + HMR
Можно делать UI без React/Vue, идеально для внутренних тулов
- Чистая структура проекта, минимум бойлерплейта

🚀 Быстрый старт


pip install myfy
myfy init
myfy frontend init
myfy run


https://github.com/psincraian/myfy

@pythonl

Читать полностью…

Python/ django

🚀 django-keel - мощный стартовый шаблон для Django-проектов

💡 Что это такое
Готовый современный каркас для Django-приложений, который позволяет запускать новый проект за минуты — с правильной архитектурой, CI, Docker и продуманной конфигурацией.

🔥 Что внутри
- Поддержка Python 3.12+ и Django 5.2+
- Несколько видов проектов: SaaS, API-backend, web-app, internal tools
- Docker + Docker Compose
- Настроенные линтеры, тесты, coverage и GitHub Actions
- 12-factor конфигурация, разделённые settings (dev/test/prod)
- Варианты API: DRF или GraphQL
- Поддержка фронта: Next.js или HTMX + Tailwind

🎯 Почему стоит использовать
- Экономит недели рутинной настройки
- Даёт единообразную и поддерживаемую архитектуру
- Ускоряет разработку MVP, внутренних сервисов и SaaS-продуктов

🛠 Быстрый старт


copier copy gh:CuriousLearner/django-keel my-project


Репозиторий: https://github.com/CuriousLearner/django-keel

@pythonl

Читать полностью…

Python/ django

🖥 Очистка python кода!

Чтобы сильно упростить очистку Python-кода, вынеси мелкие предикаты, фильтры и маппинги в именованные функции. Это делает пайплайны короче, уменьшает вложенность и ускоряет отладку. Такой приём особенно полезен, когда список операций растёт и становится нечитаемым. Подписывайся, больше фишек каждый день !


def is_valid(user):
return user.get("active") and user.get("role") != "banned"

def normalize(user):
user["name"] = user["name"].strip().title()
return user

def enrich(user):
user["score"] = user.get("score", 0) + 10
return user

users = [... ] # внешний источник

cleaned = [enrich(normalize(u)) for u in users if is_valid(u)]

print(cleaned)

Читать полностью…
Subscribe to a channel