Python Community
12.5K subscribers
1.33K photos
68 videos
15 files
825 links
Python Community RU - СНГ сообщество Python-разработчиков

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

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

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
🖥 PSF отвергла грант $1.5 млн на усиление безопасности PyPI

Python Software Foundation отказалась от гранта Национального научного фонда США на $1.5 млн из-за условий, запрещающих любые инициативы, которые продвигают или поддерживают DEI. Ограничение распространялось не только на работы по гранту, а на всю деятельность организации в период действия финансирования, что создавало юридические и финансовые риски.

Почему отказали:
- Условия противоречат миссии PSF, где ценности разнообразия, равенства и инклюзивности закреплены явно.
- В случае трактовки нарушения NSF может потребовать вернуть уже израсходованные средства.
- Организация не готова сворачивать DEI-политику ради получения финансирования.

На что планировалось потратить деньги:
- Построить проактивную защиту PyPI: проверка пакетов до публикации, а не после.
- Автоматическое ревью с анализом функциональности и сигнатур типовых вредоносных техник.
- Инструменты, пригодные для адаптации в других экосистемах пакетов вроде npm и crates.io.

Контекст:
- Сумма для PSF заметная: бюджет порядка нескольких миллионов долларов в год при небольшой команде.
- Отказ — это выбор в пользу долгосрочного доверия сообщества и сохранения открытой, инклюзивной культуры.

Вывод:
- Безопасность экосистемы — приоритет, но не ценой отказа от базовых принципов. PSF продолжит укреплять защиту цепочки поставки Python-пакетов без компромиссов с миссией.

Новость: https://pyfound.blogspot.com/2025/10/NSF-funding-statement.html

@Python_Community_ru
🤔3👍2
Управление мониторами с Monitor Control 🖥️

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

🚀Основные моменты:
- Управление яркостью и громкостью с анимацией
- Переключение между HDMI, DisplayPort и USB-C
- Поддержка нескольких мониторов
- Современный интерфейс в системном трее
- Автоматическое обновление информации о мониторах

📌 GitHub: https://github.com/Toxblh/Monic

@Python_Community_ru
Конкурс для тех, кто не боится высоких нагрузок 😎

Мы в VK вовсю готовимся к Highload++. Привезём много крутого — и вы обязаны это увидеть.

Поэтому мы решили разыграть 2 билета на ивент 💙

Условия простые:
подпишитесь на каналы @vkjobs, @backendhubvk и @frontendhubvk
нажмите кнопку «Участвовать»
увеличьте свои шансы и пригласите друга — вместе веселее!

Информацию об организаторе, правилах и призах ищите здесь (https://bit.ly/4qBe5nZ?erid=2VtzqvRvmpT), а результаты конкурса мы подведём 1 ноября. Удачи!

Участников: 0
Призовых мест: 2
Дата розыгрыша: 16:00, 01.11.2025 MSK (2 дня)

@Python_Community_ru
👎1
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 PostgreSQL: LATERAL JOIN

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

Обычный JOIN не справится, но есть мощный инструмент - LATERAL JOIN. Он позволяет вызывать подзапрос для каждой строки внешней таблицы, сохраняя контекст.

Этот приём часто заменяет громоздкие запросы или оконные функции и работает значительно быстрее на PostgreSQL.

Используй его, когда нужно сделать что-то «на лету» для каждой записи.

@Python_Community_ru
🤖 OpenTrack: Открытая система трекинга движений

OpenTrack — это кодовая база для трекинга движений гуманоидов, использующая MuJoCo для симуляции и поддерживающая многопроцессорное обучение. Проект ориентирован на исследование и разработку в области робототехники.

🚀 Основные моменты:
- Открытый исходный код для трекинга движений
- Поддержка многопроцессорного обучения
- Использует MuJoCo для симуляции
- Реализует различные сценарии обучения

📌 GitHub: https://github.com/GalaxyGeneralRobotics/OpenTrack

@Python_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Python трюк: безопасное завершение потоков через флаг события

Многие просто daemon=True ставят и надеются, что всё само завершится. Но это ломает контроль и может привести к утечкам. Проще и надёжнее — использовать общий Event, чтобы уведомлять потоки о завершении.


import threading
import time

stop_event = threading.Event()

def worker():
while not stop_event.is_set():
print("Работаю...")
time.sleep(0.3)
print("Останавливаюсь корректно.")

thread = threading.Thread(target=worker)
thread.start()

time.sleep(1.2)
stop_event.set() # посылаем сигнал остановки
thread.join()
print("Все потоки завершены корректно.")

@Python_Community_ru
🔥2
⚡️ Pytest markers: ускоряем разработку и тестирование

Когда проект растёт — часть тестов становится медленной (ML-тренировка, GPU-инференс, интеграционные проверки).
Pytest позволяет помечать такие тесты и запускать только нужные группы.

В примере:
- @pytest.mark.fast — быстрые юнит-тесты
- @pytest.mark.slow — долгие тесты (например, обучение модели)
- @pytest.mark.gpu — тесты, требующие GPU

Команды:
# Запустить только быстрые
pytest -m fast

# Запустить всё, кроме slow
pytest -m "not slow"

Идеально, когда нужно:
- быстро прогнать код перед пушем
- запускать тяжёлые тесты по расписанию/в CI
- разделить ML-тесты по ресурсам (CPU/GPU)

Используйте маркеры — и ваша разработка станет быстрее и чище 🧪⚙️

#pytest #python #testing #mlengineering #unittesting #devtools

@Python_Community_ru
👍1
Media is too big
VIEW IN TELEGRAM
Не ждали, а она тут — новая версия Python 3.14 🚀

И лучше просто кликнуть сейчас по ссылке и послушать краткий обзор от Евгения Афонасьева, тимлида разработки Antifraud в Авито, чем потом упускать полезные фичи и искать этот пост.

В ролике разобрали как небольшие обновления, так и те, что лучше внедрять в свою работу уже сейчас.

📺 Смотрим и обсуждаем по ссылке!
Please open Telegram to view this post
VIEW IN TELEGRAM
🧠 Дискретные диффузионные модели для генерации текста

Репозиторий предлагает аннотированную реализацию модели дискретной диффузии для генерации текста, основанную на архитектуре "baby GPT" от Андрея Карпаты. Используя подход денойзинга, модель восстанавливает и генерирует текст, обучаясь на примерах, таких как произведения Шекспира.

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

📌 GitHub: https://github.com/ash80/diffusion-gpt

#python

@Python_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
Тестируй Python-код не «на ощупь», а через три уровня.

Сначала юнит-тесты для базовой логики, затем фикстуры для реального окружения (файлы, БД, HTTP-моки), и сверху — hypothesis для автоматического поиска скрытых багов.

Так тесты будут короткими, а покрытие и надёжность — максимальными.


import pytest
from hypothesis import given, strategies as st


# 1) Простой юнит-тест
def test_add():
assert add(2, 3) == 5


2) Фикстура для окружения (временный файл)
@pytest.fixture
def temp_file(tmp_path):
file_path = tmp_path / "data.txt"
file_path.write_text("42")
return file_path


def test_read_data(temp_file):
assert read_data(temp_file) == 42


3) Property-based тест (генерация случайных входных данных)
@given(st.integers(), st.integers())
def test_add_random(a, b):
assert add(a, b) == a + b


Быстрый запуск только упавших тестов:
pytest --lf

@Python_Community_ru