Python Community
12.3K subscribers
1.35K photos
84 videos
15 files
863 links
Python Community RU - СНГ сообщество Python-разработчиков

Чат канала: @python_community_chat

Сотрудничество: @cyberJohnny и @Sergey_bzd

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
🖊️ Google Research представила InkSight — систему, которая превращает сфотографанный рукописный текст в настоящие *цифровые рукописные данные*.

Что делает InkSight?

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

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

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

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

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

github.com/google-research/inksight

@Python_Community_ru
🔥3
📌 Первые впечатления от системы фоновых задач в Django

В свежем разборе объясняется, как Django наконец получает встроенный инструмент для фоновой обработки заданий без необходимости тянуть сторонние библиотеки вроде Celery.

🔹 Что это такое
Django Background Tasks - новый официально поддерживаемый механизм для:
- отложенного выполнения задач (delayed jobs),
- периодических задач (cron-style),
- асинхронной фоновой обработки в рамках приложения.

🔹 Почему это важно
Раньше разработчикам приходилось выбирать сторонние решения (Celery, RQ, Dramatiq) с дополнительной инфраструктурой (Redis/RabbitMQ и т.п.). Теперь у Django будет собственный, простой и интегрированный способ:
- выполнять задачи после ответа пользователю,
- обрабатывать тяжёлые операции вне запроса,
- запускать периодические задачи без внешних кронов.

🔹 Как это работает
- Вы определяете задачу как обычную Python-функцию.
- Django регистрирует её в очереди внутреннего раннера.
- Фоновый воркер выполняет такие задачи по расписанию или сразу - без внешнего брокера.

🔹 Плюсы по сравнению с альтернативами
встроенная интеграция с ORM и Django-экосистемой
нет необходимости настраивать отдельный брокер
ожидаемая простота и знакомый синтаксис для Django-разработчиков

🔹 О чём ещё в статье
- примеры кода с определением фоновых задач;
- как запускать и мониторить воркеры;
- ограничения и когда всё же стоит использовать более мощные системы.

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

https://roam.be/notes/2025/a-first-look-at-djangos-new-background-tasks/

@Python_Community_ru
🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
📝 Как быстро объяснить проект коллеге, если не знаешь, с чего начать

Иногда проще ответить на вопросы новичка, чем структурировать рассказ самому. Но когда сервис большой, а процессов много, легко запутаться: что упомянуть первым, какие детали важны, а что можно оставить на потом.

Голосовой ИИ-помощник ГигаЧат подсказывает, как выстроить объяснение так, чтобы оно было понятным с первого раза.

📌 В итоге один короткий диалог превращается в ясное объяснение, которое не требует пересказывать всё снова. Слушаем!

@Python_Community_ru
Git Cheatsheet - коротко и по делу

Настройка
git config --global user.name "Name" — задать имя
git config --global user.email "email" — задать почту
git config --list — показать настройки

Старт
git init — создать репозиторий
git clone url — клонировать репо

Стейджинг и коммиты
git status — статус
git add . — добавить все изменения
git reset file — убрать из стейджа
git commit -m "msg" — коммит
git commit --amend — исправить последний коммит

Ветки
git branch — список
git branch name — создать
git checkout -b name — создать и перейти
git branch -d name — удалить

Merge и Rebase
git merge branch — слить ветку
git merge --abort — отменить
git rebase branch — перебазирование

История
git log --oneline — компактная история
git log --graph --all — граф
git diff — показать изменения

Откат
git restore file — вернуть файл
git reset --soft HEAD~1 — откатить коммит, сохранить изменения
git reset --hard HEAD~1 — откатить и удалить изменения
git clean -f — удалить лишние файлы

Удалённые репозитории
git remote -v — список
git push origin branch — запушить
git pull — получить изменения
git fetch — только забрать

Теги
git tag — список
git tag name — создать
git push origin --tags — отправить теги

Stash
git stash — сохранить изменения
git stash list — список
git stash apply — применить

Поиск и анализ
git blame file — кто менял строки
git grep "text" — поиск
git bisect — бинарный поиск бага

Продвинутое
git cherry-pick commit — взять коммит
git revert commit — отменить коммит через новый
git submodule add url — добавить сабмодуль

Полезно сохранить под рукой.

@Python_Community_ru
👍1
This media is not supported in your browser
VIEW IN TELEGRAM
🚀 PYTHON В DOCKER: УСКОРЯЕМ СБОРКУ!

Если ваш Python-приложение в Docker работает медленно при старте или «греет» CPU, проблема часто в том, что Docker пересобирает зависимости каждый раз.
Хитрый приём: замораживайте зависимости в отдельный слой и используйте .dockerignore, чтобы локальные файлы не ломали кеш.
Так Docker перестаёт пересобирать pip-пакеты и старт проекта ускоряется в разы.


для оптимизации Python-сборки
FROM python:3.12-slim

WORKDIR /app

Слой с зависимостями (кешируется!)

COPY requirements.txt .

RUN pip install --no-cache-dir -r requirements.txt

Теперь копируем код (не ломает кеш pip)

COPY . .

CMD ["python", "main.py"]

@Python_Community_ru
🔥2
🖥 Django 6.0 вышел - крупное обновление фреймворка

Вышел Django 6.0, и это одно из самых насыщенных обновлений за последнее время. Релиз добавляет функциональность, которую разработчики долго закрывали сторонними библиотеками или кастомными решениями.

Что нового и действительно важно:

Поддержка template partials из коробки
Теперь Django умеет частичные шаблоны на уровне фреймворка. Это упрощает структуру HTML, повышает переиспользуемость и делает шаблоны чище и понятнее без лишних include-хаков.

Нативный фреймворк для фоновых задач
В Django появился встроенный механизм для background tasks. Для многих проектов это означает, что Celery или RQ больше не обязательны для базовых задач — отложенные и асинхронные операции можно реализовать стандартными средствами.

Встроенная система Content Security Policy (CSP)
Django 6.0 получил полноценную поддержку CSP. Это серьёзный шаг в сторону безопасности по умолчанию и защита от XSS и других атак без внешних middleware.

Современный email API с нормальной Unicode-поддержкой
Работа с email стала более предсказуемой и дружелюбной к Unicode, что особенно важно для международных проектов и сложных шаблонов писем.

Жизненный цикл версий
Django 5.2 больше не имеет mainstream-поддержки. Разработчикам рекомендуется переходить на 6.0, чтобы получать новые возможности, обновления безопасности и улучшения платформы.

Django продолжает двигаться в сторону «batteries included», но делает это аккуратно и прагматично. Django 6.0 снижает зависимость от внешних библиотек, усиливает безопасность и делает повседневную разработку заметно удобнее.

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

https://www.djangoproject.com/weblog/2025/dec/03/django-60-released/

@Python_Community_ru
🔥3
📝 Редактирование PDF с помощью ИИ 🚀

Nano PDF - это CLI инструмент для редактирования PDF-документов с использованием естественных языковых запросов. Он позволяет изменять слайды, добавлять новые и сохранять текстовый слой благодаря OCR. Инструмент использует модель Gemini 3 Pro Image для быстрого и качественного редактирования.

🚀 Основные моменты:
- Редактирование слайдов по текстовым командам
- Генерация новых слайдов в стиле существующих
- Поддержка многопоточной обработки
- Сохранение текстового слоя PDF

📌 GitHub: https://github.com/gavrielc/Nano-PDF

#python

@Python_Community_ru
👍1
🌍🤖 GigaWorld-0: Модели мира

GigaWorld-0 - это унифицированная платформа для обучения Vision-Language-Action, использующая генерацию видео и 3D моделирование. Она обеспечивает создание разнообразных и реалистичных последовательностей, что делает её мощным инструментом для разработки эмбодированных ИИ.

🚀Основные моменты:
- Интеграция видео и 3D генерации для физической реалистичности.
- Поддержка текстовых подсказок для генерации видео.
- Модели доступны на Hugging Face для быстрого старта.
- Открытый исходный код с лицензией Apache 2.0.

📌 GitHub: https://github.com/open-gigaai/giga-world-0

#python

@Python_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
💀➡️ Большинство кодеров не знают про это ускорение в Python

Одна из самых недооценённых оптимизаций в Python — вынесение повторяющихся вычислений в локальные переменные.
Причина проста: доступ к локальной переменной в CPython *в 2–3 раза быстрее*, чем к глобальной или атрибуту модуля.

Особенно важно в циклах и горячих участках кода.


import math

# Медленнее: math.sqrt вызывается через глобальное пространство имён
def slow(nums):
return [math.sqrt(x) for x in nums]

# Быстрее: ссылка на функцию закэширована в локальной переменной
def fast(nums):
sqrt = math.sqrt
return [sqrt(x) for x in nums]

# Ещё пример: длину списка лучше сохранить локально
def sum_fast(nums):
total = 0
ln = len(nums) # локальная ссылка быстрее
for i in range(ln):
total += nums[i]
return total

@Python_Community_ru
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🤯💣 PYTHON ТРЮК ПО УСКОРЕНИЮ #python

Совет по Python: если в цикле много обращений к атрибутам объекта или модуля — вынеси их в локальную переменную.

Доступ к локалам работает быстрее, чем к атрибутам, поэтому такой приём иногда ускоряет код на 20–50 процентов.


#медленно — каждый проход лезет в атрибут
for i in range(10_000_000):
x = obj.value

#быстрее — сохрани ссылку заранее
val = obj.value
for i in range(10_000_000):
x = val

#ещё пример — кешируем функцию
import math
sqrt = math.sqrt
for i in range(1_000_000):
r = sqrt(i)

@Python_Community_ru
🎧 Модель аудиоразмышлений Step-Audio-R1

Step-Audio-R1 — первая аудиомодель, которая преодолевает проблему "обратного масштабирования", улучшая производительность при увеличении вычислительных ресурсов. Используя метод MGRD, модель фокусируется на акустическом анализе, что позволяет ей эффективно обрабатывать аудиоданные.

🚀 Основные моменты:
- Успешно решает проблему "обратного масштабирования"
- Сравнима с Gemini 3 по аудиобенчмаркам
- Инновационный подход к обучению через акустические особенности
- Доступна для использования на Hugging Face и ModelScope

📌 GitHub: https://github.com/stepfun-ai/Step-Audio-R1

@Python_Community_ru
🖥 Как уменьшить Docker-образ в 10+ раз - понятный и практичный разбор.

Размер Docker-образа - это не косметика.
Он напрямую влияет на:
- скорость CI/CD
- время деплоя
- cold start контейнеров
- расходы на storage и трафик

В примере ниже образ удалось сократить с 588 MB до 47.7 MB - почти на 92%.
Вот какие приёмы реально дают эффект.

1) Выбор базового образа - самое важное решение

Полный python:3.9 тянет за собой:
- лишние системные утилиты
- документацию
- dev-пакеты

Переход на python:3.9-alpine:
- в разы меньше размер
- быстрее скачивание
- меньше attack surface

Это первый и самый крупный выигрыш.

2) Оптимизация слоёв Docker

Каждый RUN, COPY, ADD - это новый слой.
Много мелких инструкций = раздув образа.

Правило:
- объединяй связанные команды
- удаляй временные файлы в том же RUN

Меньше слоёв - меньше вес - быстрее сборка.

3) .dockerignore - бесплатная оптимизация, которую часто забывают

Без .dockerignore в build context улетает всё:
- .venv
- .cache
- .git
- временные файлы

Это:
- увеличивает размер контекста
- замедляет сборку
- иногда ломает кеширование

.dockerignore должен быть всегда. Без исключений.

4) Multi-stage build - must-have для продакшена

Одна из самых мощных техник.

Идея простая:
- stage 1 - сборка, компиляция, зависимости
- stage 2 - только то, что нужно для запуска

В финальном образе:
- нет build-инструментов
- нет лишних библиотек
- только runtime

Результат:
- меньше размер
- меньше уязвимостей
- быстрее старт

Итоговый эффект:
- 588 MB -> 47.7 MB
- −91.89% размера
- быстрее CI
- быстрее деплой
- дешевле инфраструктура

Главный вывод:
маленькие оптимизации накапливаются.

Каждый сэкономленный мегабайт:
- ускоряет каждый pull
- ускоряет каждый deploy
- масштабируется вместе с вашей системой

@Python_Community_ru
🔥2
📌 Подробная шпаргалка по командам Docker

Удобный и практичный референс для повседневной работы с Docker: образы, контейнеры, сети, тома и Docker Compose.

🐋 Общие команды Docker

- docker --version — версия Docker
- docker info — информация о системе Docker
- docker help — список доступных команд
- docker --help — помощь по конкретной команде

📦 Работа с образами

- docker pull — скачать образ из реестра
- docker images — список локальных образов
- docker build -t name:tag . — собрать образ из Dockerfile
- docker tag : — назначить тег образу
- docker rmi — удалить образ
- docker image prune — удалить неиспользуемые образы
- docker image prune -a — удалить все неиспользуемые, включая невисячие

🚀 Контейнеры: запуск и управление

- docker run — запустить контейнер
- docker run -d — запуск в фоне
- docker run -it bash — интерактивный режим
- docker ps — активные контейнеры
- docker ps -a — все контейнеры
- docker stop — остановить контейнер
- docker start — запустить остановленный
- docker restart — перезапуск
- docker rm — удалить контейнер
- docker rm -f — принудительно удалить
- docker logs — логи контейнера
- docker exec -it bash — войти внутрь контейнера
- docker inspect — подробная информация (JSON)

🧹 Очистка и обслуживание

- docker container prune — удалить все остановленные контейнеры
- docker image prune — удалить неиспользуемые образы
- docker volume prune — удалить неиспользуемые тома
- docker network prune — удалить неиспользуемые сети
- docker system prune — очистить всё неиспользуемое
- docker system prune -a — максимально агрессивная очистка
- docker system df — использование диска Docker’ом

📊 Мониторинг и отладка

- docker stats — использование CPU и памяти контейнерами
- docker top — процессы внутри контейнера
- docker diff — изменения файловой системы контейнера

🌐 Сети Docker

- docker network ls — список сетей
- docker network inspect — информация о сети
- docker network create — создать сеть
- docker network rm — удалить сеть

💾 Docker Volumes

- docker volume ls — список томов
- docker volume inspect — информация о томе
- docker volume create — создать том
- docker volume rm — удалить том

⚙️ Docker Compose

- docker compose up — запустить сервисы
- docker compose up -d — запуск в фоне
- docker compose down — остановить и удалить всё
- docker compose build — пересобрать образы
- docker compose pull — скачать образы
- docker compose logs — логи всех сервисов
- docker compose ps — статус сервисов
- docker compose restart — перезапуск

🧠 Полезные советы

- Используй --rm, чтобы контейнер удалялся после выполнения
- Проверяй размер Docker-данных через docker system df
- Для отладки всегда полезен docker inspect
- Регулярно чисти систему, чтобы Docker не съел весь диск

Эта шпаргалка закрывает 90% повседневных задач при работе с Docker - от локальной разработки до продакшена.

@Python_Community_ru
👍2🔥2
🚀 Интерактивный помощник для Кодинга Mistral Vibe

Mistral Vibe - это командный интерфейс для взаимодействия с кодом, который позволяет использовать естественный язык для выполнения задач.

Он предлагает мощные инструменты для работы с файлами, поиска кода и управления версиями, обеспечивая удобный и интуитивный опыт.

🚀 Основные моменты:
- Интерактивный чат с AI для выполнения запросов.
- Набор инструментов для манипуляции файлами и выполнения команд.
- Автоматическое сканирование структуры проекта для контекстной информации.
- Высокая настраиваемость через конфигурационные файлы.
- Поддержка UNIX и Windows.

📌 GitHub:

@Python_Community_ru

https://github.com/mistralai/mistral-vibe
🖥 python-injection - практический сборник уязвимостей в Python

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

Проект показывает, как «обычный» Python-код превращается в уязвимость, если не понимать, как именно работают интерпретатор, библиотеки и внешние вызовы.

Что внутри:

- Command Injection через os.system, subprocess, shell=True
- SQL Injection при неправильной работе с запросами
- Code Injection через eval, exec, pickle
- Path Traversal и небезопасная работа с файлами
- Template Injection
- Примеры небезопасной десериализации
- Реальные анти-паттерны из production-кода

Главная ценность репозитория — код, а не теория:
- есть уязвимый пример
- есть объяснение, почему он опасен
- понятно, как именно происходит атака

Подходит для:
- Python-разработчиков
- backend-инженеров
- security-энтузиастов
- code review и обучения безопасному программированию

Если ты пишешь Python и думаешь, что «у нас же не веб» - этот репозиторий стоит открыть.

pip install python-injection

https://github.com/100nm/python-injection

@Python_Community_ru
Новая работа MIT: LLM, который видит и меняет состояние Python

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

Подход называется NIGHTJAR.

Главный результат
В экспериментах NIGHTJAR сократил объем кода в среднем на 39.6% без потери корректности.

В чем была проблема
Обычная LLM:
- читает текст
- генерирует текст
- не видит реальные данные программы

Поэтому типичный пайплайн выглядит так:
- данные сериализуются в текст
- отправляются модели
- ответ парсится
- программа вручную обновляется

Много glue-кода, много мест для ошибок.

Что меняет совместное состояние
Shared state полностью меняет модель взаимодействия:
- LLM может читать и писать переменные
- изменять объекты прямо в памяти
- останавливать и пропускать циклы
- работать с текущим состоянием выполнения

Модель не «рассуждает о коде», она с ним взаимодействует.

Как это реализовано
LLM не получает прямой доступ к памяти.
Она отправляет небольшие команды:
- прочитать переменную
- записать значение
- обновить объект
- выйти из цикла

Python-обработчик выполняет эти команды.
Такой контракт авторы называют natural function interface.

Результаты
На бенчмарке SPSBench с 25 программами:
- корректность осталась на уровне ручной интеграции или выше
- код стал заметно короче
- но время выполнения иногда росло до 4.3 раза

Причина проста - каждое обращение к состоянию может требовать отдельного вызова модели.

Почему это важно
- меньше шаблонного glue-кода
- проще писать сложную логику с участием LLM
- шаг к более тесной интеграции AI и runtime
- фундамент для новых агентных и интерактивных систем

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

📌 Статья: arxiv.org/abs/2512.14805


#AI #LLM #Python

@Python_Community_ru
🚀 PyTogether - Google Docs для Python-кода

PyTogether - это браузерная IDE для Python с совместной работой в реальном времени. Несколько человек могут писать и запускать код одновременно, видеть курсоры друг друга и общаться прямо внутри редактора.

Что умеет:
• Совместное редактирование Python-кода (live-collaboration)
• Запуск Python прямо в браузере через Pyodide
• Чат и голосовая связь внутри IDE
• Живые курсоры, выделения и заметки
• Простая авторизация и проекты для команд
• Никакой установки — всё работает в браузере

Кому подойдёт:
• Обучение и менторство
• Парное программирование
• Онлайн-курсы и воркшопы
• Быстрые разборы кода и собесы

Технологии под капотом:
Python (Django, DRF), WebSockets + Y.js для синхронизации, React + CodeMirror, Redis и PostgreSQL. Всё open-source под MIT-лицензией.

Хороший пример того, как современные web-технологии превращают IDE в социальный инструмент для обучения и командной работы.

https://github.com/SJRiz/pytogether

@Python_Community_ru
👍1
🚀 AI Agents for Android Apps

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

🚀 Основные моменты:
- Автоматизация процессов на Android-устройствах
- Снижение затрат на 95% по сравнению с традиционными методами
- Поддержка различных мобильных приложений
- Быстрая реакция — менее 1 секунды на действие
- Идеально для логистики и мобильного обслуживания

📌 GitHub: https://github.com/actionstatelabs/android-action-kernel

@Python_Community_ru