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

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

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

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
🧵 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

@Python_Community_ru
🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Коварная ловушка с замыканиями в 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_Community_ru
👍6
🌀 В 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})))

@Python_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Безопасный запуск 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", "/"]))

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

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

https://kodekloud.com/studio/labs

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

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

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

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

@Python_Community_ru
🔥1
🔧 Утилиты для C++ и Python

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

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

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

@Python_Community_ru
👍2
🖥 (https://t.iss.one/+cFLtJ_U2cbZjYzUy)Bash Академия (https://t.iss.one/+-Dm7V9sQgw5iNGNi): секреты командной строки, которые нигде не рассказывают

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

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

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

Если хочешь уверенно владеть Bash - здесь ты получишь всё, что нужно: t.iss.one/bashmastter (https://t.iss.one/+-Dm7V9sQgw5iNGNi)

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

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

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

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

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


Docker (https://t.iss.one/+0WdB4uvOwCY0Mjdi) - все о Docker и Devops

@Python_Community_ru
🔥2
🎤 Быстрый текст-в-речь с Supertonic

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

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

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

#python

@Python_Community_ru
🧩 Python Keylogger: Educational Tool for Data Capture

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

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

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

@Python_Community_ru
👍2
🖥 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_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
НЕЛЬЗЯ ИСПОЛЬЗОВАТЬ 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_Community_ru
🔒🤖 IoTHackBot: Инструменты для тестирования безопасности IoT

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

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

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

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

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

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

Подписаться можно тут! (https://t.iss.one/+ma9nuur0HyE2Nzgy)

Erid: 2RanynydJka

@Python_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️КАК СДЕЛАТЬ EXE ИЗ PYTHON САМЫМ ПРОСТЫМ СПОСОБОМ

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


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

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

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

@Python_Community_ru