🌀 В 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
✓ Список можно развернуть
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
Если нужно из 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
• Сильная теоретическая база: язык программирования, сети, базы данных, система контроля версий.
• Короткие, но насыщенные уроки — учись по дороге на работу, в обед или во время короткого перерыва.
• Много практики — закрепишь навыки, соберёшь проекты и усилишь своё портфолио.
• Всё объясняется пошагово, простым языком — подойдёт даже тем, кто только сегодня услышал слово «программирование».
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
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
Этот репозиторий предлагает набор полезных утилит для работы с 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
Олег Шелест - профессионал по информационной безопасности, раскрывает скрытые механики 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
В основе - 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
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
Этот репозиторий представляет собой простой кейлоггер на 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
Что улучшили:
• Модель обучили на реальных сессиях редактирования, а не только на итоговом коде
• Задержка стала ниже - подсказки появляются почти мгновенно
• Предложения стали точнее и полезнее: фиксы, рефакторинг, дополнения, улучшение структуры
Как обучали:
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
Из-за этого все лямбды, созданные в цикле, будут ссылаться на одно и то же последнее значение.
Код выглядит нормальным, а ведёт себя странно — это классическая проблема замыканий в 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
IoTHackBot — это набор инструментов для тестирования безопасности IoT-устройств, включая IP-камеры и встроенные системы. Он предлагает как командные инструменты, так и AI-ассистированные рабочие процессы для автоматизированного обнаружения уязвимостей.
🚀Основные моменты:
- Сканирование устройств с помощью wsdiscovery и onvifscan
- Анализ сетевого трафика с iotnet
- Продвинутое извлечение файлов из прошивок с ffind
- Взаимодействие с консолью через picocom и telnetshell
- Поддержка автоматизации и интеграции инструментов
📌 GitHub: https://github.com/BrownFineSecurity/iothackbot
@Python_Community_ru