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

🖊️ Google Research представила InkSight — систему, которая превращает сфотографанный рукописный текст в настоящие *цифровые рукописные данные*.

Что делает InkSight?

✨ Берёт фото тетрадей, заметок или документов и переводит их в «цифровое перо» - данные, которыми можно редактировать, искать, хранить.

🧠 Под капотом:
• Vision Transformer (ViT) + mT5
• Обучение на чтение и письмо одновременно
• Без специальных планшетов - работает с обычными фото

💡 Возможности:
✔ Обработка слов и целых страниц
✔ Работает с разными языками и стилями письма
✔ Корректно извлекает текст даже на шумном фоне
✔ Результат - редактируемый векторный «ink», а не просто картинка

То есть InkSight — мост между бумажной реальностью и цифровым миром: сделал фото заметок → получил полный цифровой текст, пригодный для поиска и редактирования.

🔗 В репозитории доступны веса модели, датасет и пример кода:

github.com/google-research/inksight

@pythonl

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

Python/ django

🖥 Малоизвестный факт о Python random.seed(), который может поломать ваш код

Документация создаёт впечатление, что любое целое число просто используется как seed (это “начальная точка” для генератора случайных чисел.).

Но Python перед использованием просто берёт абсолютное значение.

То есть:

➡️ seed(3) и seed(-3) - порождают один и тот же поток случайных чисел.

Это значит, что разные seed не всегда дают разные последовательности -

Python гарантирует только обратное: одинаковый seed → одинаковые числа.

Почему так?
В исходниках CPython есть строка, которая буквально делает:

seed = abs(seed)

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

🧠 Вывод:

Не используйте небольшие вариации seed (например 5 и -5) как способ получить разные потоки случайностей — это небезопасно.
Если вам нужны независимые RNG — создавайте их явно, а не полагаясь на “умные” seed.

[1] https://docs.python.org/3/library/random.html
[2] https://github.com/python/cpython/blob/main/Modules/_randommodule.c#L321C13-L321C30

@pythonl

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

Python/ django

🐍⚙️ Продвинутый Python + Docker совет для production:

Используй multi-stage builds + wheels cache - это радикально уменьшает размер образа и ускоряет сборки.

В первом этапе собираешь wheels (компилируемые пакеты), а во втором — устанавливаешь их уже в чистый runtime-слой:


FROM python:3.12 AS builder
RUN pip install --upgrade pip
COPY requirements.txt .
RUN pip wheel --wheel-dir /wheels -r requirements.txt

FROM python:3.12-slim
COPY --from=builder /wheels /wheels
RUN pip install --no-index --find-links=/wheels -r /wheels/requirements.txt
COPY app/ /app


🔥 Плюс:
— быстрый rebuild
— детерминированные зависимости
— значительно меньше образ

Этот трюк мало кто использует, но он делает Docker-окружение Python уровня enterprise.

@pythonl

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

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

Пишешь, дебажишь, страдаешь, а оплатить ChatGPT или Cursor всё ещё не можешь без зарубежной карты?

Вот тебе спасательный круг!

С Kupikod всё по-человечески:
оплачиваешь рублёвой картой;
без VPN и плясок с бубном;
низкие цены.


🎁 И промокод PYTHONL на скидку, чтобы осталось на кофе и багфиксы.

Хочешь — ChatGPT пишет тебе код,
Хочешь — Cursor чинит его вместо тебя.

Главное, что теперь оплатить их проще простого 🧼

Купить подписку

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

Python/ django

🏎️ F1 Race Replay: Визуализация гонок Формулы 1 🏁

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

🚀 Основные моменты:
- Визуализация гонок с реальными позициями на треке
- Живое обновление позиций гонщиков и их состояния
- Интерактивные элементы управления воспроизведением
- Подробная информация о телеметрии выбранных гонщиков
- Возможность настройки интерфейса и обработки данных

📌 GitHub: https://github.com/IAmTomShaw/f1-race-replay

#python

@pythonl

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

Python/ django

🔍Тестовое собеседование на Middle Python с разработчиком из Авито завтра

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

Как это будет:
📂 Даня, старший разработчик в Авито, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Даня будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Дане

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

Переходи в нашего бота, чтобы получить ссылку на эфир →
@shortcut_py_bot

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

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

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

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