ru
Feedback
Python Community

Python Community

Открыть в Telegram

Python Community RU - СНГ сообщество Python-разработчиков Чат канала: @python_community_chat Сотрудничество: @cyberJohnny и @Sergey_bzd РКН реестр: https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed®istryType=bloggersPermission

Больше

📈 Аналитический обзор Telegram-канала Python Community

Канал Python Community (@python_community_ru) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 11 865 подписчиков, занимая 10 585 место в категории Технологии и приложения и 55 657 место в регионе Россия.

📊 Показатели аудитории и динамика

С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 11 865 подписчиков.

Согласно последним данным от 07 июня, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило -43, а за последние 24 часа — -5, при этом общий охват остаётся высоким.

  • Статус верификации: Не верифицирован
  • Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 5.00%. В первые 24 часа после публикации контент обычно набирает 2.61% реакций от общего числа подписчиков.
  • Охват публикаций: В среднем каждый пост получает 593 просмотров. В течение первых суток публикация набирает 310 просмотров.
  • Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 1.
  • Тематические интересы: Контент сосредоточен на ключевых темах, таких как docker, git, github, контейнер, await.

📝 Описание и контентная политика

Автор описывает ресурс как площадку для выражения субъективного мнения:
Python Community RU - СНГ сообщество Python-разработчиков Чат канала: @python_community_chat Сотрудничество: @cyberJohnny и @Sergey_bzd РКН реестр: https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission

Благодаря высокой частоте обновлений (последние данные получены 08 июня, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.

11 865
Подписчики
-524 часа
-157 дней
-4330 день
Архив постов
🖥 PyRoki — модульный инструмент для оптимизации кинематики роботов На GitHub и в preprint на arXiv появилась новая работа от исследователей из Berkeley — PyRoki (Python Robot Kinematics Toolkit). Это мощный, гибкий и кроссплатформенный инструмент на Python для задач оптимизации в робототехнике. 🔧 Что такое PyRoki? PyRoki — это: - 📦 Модульная архитектура Разделение переменных оптимизации и функций стоимости (costs) позволяет комбинировать задачи IK, планирования траектории, ретаргетинга и многое другое — без повторения кода. - ⚙️ Дифференцируемая кинематика Поддержка URDF-моделей, автоматическое создание collision-примитивов (например, капсул), работа с NumPy и JAX. - 🚀 Поддержка CPU, GPU и TPU Высокая производительность и масштабируемость на любых вычислительных устройствах. - 🧠 Оптимизация на многообразиях (Lie-группы) Встроенный алгоритм Levenberg–Marquardt даёт устойчивую и быструю сходимость даже для сложных конфигураций. 📊 Результаты - Быстрее cuRobo на 1.4–1.7x при решении задач IK в батче. - Более точные результаты при меньших вычислительных затратах. - Интерактивный визуализатор (на базе `viser`) для отладки и анализа. 📁 Примеры использования PyRoki включает в себя готовые сценарии: - инверсная кинематика (IK) - бимануальные манипуляции - мобильные платформы - ретаргетинг движений гуманоидов - учёт столкновений - online-планирование и управление 🚀 Установка git clone https://github.com/chungmin99/pyroki.git cd pyroki pip install -e . Требуется Python 3.12+ (частичная поддержка Python 3.10–3.11). PyRoki — это: - 📐 Удобный фреймворк для исследований в области робототехники. - 🛠️ Подходит как для академических, так и для прикладных задач. - 🌐 Гибкий и масштабируемый — от одного робота до больших motion-баз. Если интересен пример интеграции с ROS, Gazebo или симуляцией цифрового двойника — дай знать, покажу! 🔗 Репозиторий (https://github.com/chungmin99/pyroki) #Python #Robotics #Kinematics #InverseKinematics #MotionPlanning #OpenSource @Python_Community_ru

«Я в режиме реального времени поясняла структуру запросов / ответов в Postman и разбирала документацию в Swagger», — пишет ан
+4
«Я в режиме реального времени поясняла структуру запросов / ответов в Postman и разбирала документацию в Swagger», — пишет аналитик, который прошел наш курс, а потом два технических собеседования в международные компании. Приятно, конечно ❤️ Если в 2025 году вы хотите: — научиться выбирать стиль интеграции под вашу задачу; — начать проектировать с нуля и описывать интеграции в современных стилях (API: REST, SOAP, gRPC и других, + брокеры сообщений); — узнать как правильно собирать требования и моделировать в UML; — подготовиться к собеседованию, решив более 100 заданий; — запустить свой API на Python. Значит наш курс для вас! 🚀 Начните с открытых бесплатных уроков — переходите в бот курса и жмите «Старт» 👇 @studyit_help_bot 🚀 Скидка на курс от канала — 1 000₽ на Stepik по промокоду PYTHONL до конца мая. @Python_Community_ru

🔵Освойте одну из самых востребованных профессий в российском IT в 2025 В OTUS стартует новый поток онлайн-курса «Архитектор
🔵Освойте одну из самых востребованных профессий в российском IT в 2025 В OTUS стартует новый поток онлайн-курса «Архитектор 1С», где вы научитесь проектировать информационные системы, используя продвинутые возможности платформы 1С. 4 месяца обучения и вы сможете: ▫️ Формировать архитектуру окружения 1С, ▫️ Моделировать бизнес-процессы и создавать прототипы разработки ▫️ Проектировать технические проекты в СППР ▫️ Работать с Git, OneScript, Vanessa, SonarCube, Apdex, Grafana ▫️ Устанавливать и настраивать РИБ А еще узнаете, как организовать работу отдела разработки 1С, какие есть виды документации в 1С и какие организационные мероприятия существуют в 1С. 👉 Пройдите короткий тест прямо сейчас: https://clck.ru/3MAonB Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

🖥 Как масштабировать Python Task Queue — подробный гайд Когда ваше Python-приложение начинает активно использовать фоновые задачи (email-уведомления, видеообработка, интеграции и т.д.), быстро возникает проблема: очередь задач растёт, задержка увеличивается, пользователи начинают ощущать тормоза. В статье разбирается, как это решать грамотно, автоматически и эффективно. 🎯 Основные проблемы: • Даже при низком CPU задачи могут выполняться с задержкой • Очередь может казаться «тихой», но задачи копятся • Масштабирование вручную по метрикам CPU/памяти — неэффективно • Часто “один жирный воркер” не решает проблему — надо менять подход ⚙️ Как масштабировать: пошагово 1) 🔌 Выбор брокера сообщений • Redis — прост в настройке, отлично работает с Celery и RQ • RabbitMQ — надёжнее (повторы, подтверждения), подходит для критичных задач 2) ⚙️ Настройка воркеров • *Вертикальное масштабирование* — больше процессов внутри одного воркера (в Celery можно concurrency) • *Горизонтальное масштабирование* — запуск множества воркеров на разных инстансах, читающих из одной очереди — универсальное и гибкое решение 3) 📈 Авто-скейлинг по latency, а не CPU • Частая ошибка: масштабировать по CPU • Правильный подход: масштабировать по времени ожидания задач в очереди • Judoscale позволяет автоматизировать масштабирование именно по queue latency • При росте задержки запускаются новые воркеры, при снижении — отключаются 4) 🧠 Fan-Out: разбивай большие задачи Вместо: Одна задача: обработать 10 000 пользователей Правильно: 10 000 задач: по одной на каждого пользователя Преимущества: • Параллельность • Надёжность (ошибки локализуются) • Легче масштабировать обработку 📊 Результаты после внедрения: • Время ожидания задач сократилось с 25 минут до 30 секунд • Масштабирование стало динамичным • Инфраструктура стала дешевле — меньше простаивающих воркеров ✅ Рекомендации: • Используй Redis или RabbitMQ в зависимости от требований • Отдавай предпочтение горизонтальному масштабированию • Следи за latency, а не за CPU • Используй Judoscale для авто-масштабирования • Применяй fan-out для повышения надёжности и скорости 🖥 Ссылка на статью (https://judoscale.com/blog/scaling-python-task-queues) @Python_Community_ru

Как получить карьерный буст и MacBook за подписку В интернете полно курсов по самопиару и карьерному развитию в IT, но все он
Как получить карьерный буст и MacBook за подписку В интернете полно курсов по самопиару и карьерному развитию в IT, но все они не сравнятся с реальными кейсами от действующих практиков. Не нужно покупать дорогие консультации, чтобы перенять чужой опыт — достаточно подписаться на папку, где собралось более 30 лучших экспертов из IT и digital Это люди, которые не только построили успешную карьеру с нуля, но и основали собственные компании. Они собрались, чтобы прокачать тебя в маркетинге и дизайне, а ещё провести розыгрыш. Подпишись на них и получи один из 3 призов: 🥇Главный приз — MacBook Air (M2) 🥈2 место: Яндекс Станция Лайт 2 🥉3 место: Наушники HUAWEI Freebuds 5i Участвуешь? 1. Подпишись на папку 2. Подтверди участие в боте 19 июня в прямом эфире опубликуем итоги розыгрыша!

🧠 Как клонировать голос с помощью Open Source (Coqui TTS) Хочешь, чтобы ИИ говорил твоим голосом? Без подписок, платных API и ограничений? Вот подробная инструкция, как клонировать свой голос с нуля с помощью open-source инструментов: 🔧 Установка sudo apt install ffmpeg pip install TTS soundfile torchaudio gradio git clone https://github.com/coqui-ai/TTS.git cd TTS pip install -e . 🎙️ 1. Подготовка записи голоса Тебе нужен файл .wav: - продолжительность: от 1 минуты - формат: моно, 16 кГц, 16-bit Пример конвертации: ffmpeg -i input.mp3 -ac 1 -ar 16000 output.wav 🧬 2. Генерация эмбеддинга твоего голоса from TTS.tts.configs.xtts_config import XttsConfig from TTS.tts.models.xtts import Xtts config = XttsConfig() model = Xtts.init_from_config(config) model.load_checkpoint("tts_models/multilingual/multi-dataset/xtts_v2") voice_sample = "your_voice.wav" speaker_embedding = model.get_speaker_embedding(voice_sample) 📤 3. Генерация речи с твоим голосом text = "Привет! Я теперь могу говорить твоим голосом." wav = model.tts(text, speaker_embedding=speaker_embedding) model.save_wav(wav, "output.wav") 💻 4. (Опционально) Интерфейс с Gradio import gradio as gr def speak(text): wav = model.tts(text, speaker_embedding=speaker_embedding) path = "generated.wav" model.save_wav(wav, path) return path gr.Interface(fn=speak, inputs=gr.Textbox(), outputs=gr.Audio()).launch() ✅ Быстрый способ (через CLI) tts --model_name "tts_models/multilingual/multi-dataset/xtts_v2" \ --text "Привет, мир!" \ --speaker_wav path/to/your.wav \ --out_path output.wav ⚠️ Важно - 💻 Работает на CPU, но лучше с GPU. - 🌐 Поддерживает русский язык. @Python_Community_ru

🪬 Boto3 — мост между Python и AWS. Эта официальная Python-библиотека предоставляет удобный интерфейс для взаимодействия с се
🪬 Boto3 — мост между Python и AWS. Эта официальная Python-библиотека предоставляет удобный интерфейс для взаимодействия с сервисами AWS — от простых операций с S3 до управления кластерами EC2. После недавнего прекращения поддержки Python 3.8 проект сосредоточился на современных версиях языка. Особенность Boto3 в двухуровневой архитектуре: низкоуровневые клиенты для точного контроля и ресурсные объекты для упрощённого синтаксиса. Документация от AWS включает примеры для всех основных сервисов, что делает интеграцию почти безболезненной. 🤖 GitHub (https://github.com/boto/boto3) @Python_Community_ru

🎮 Oh My ~God~ Git — необычная и полезная игра с открытым исходным кодом, которая помогает разобраться с GIT не через скучные туториалы, а с помощью наглядных карточек и геймплея. 🧠 В процессе ты: • Поймёшь, как устроен GIT под капотом • Научишься работать с ветками, коммитами, merge и rebase • Запомнишь команды на практике, играя 📦 Игра доступна прямо в браузере: [ohmygit.org](https://ohmygit.org/) 💻 Или можно скачать и установить с GitHub: [github.com/git-learning-game/oh-my-git](https://github.com/git-learning-game/oh-my-git) 👾 Подходит как новичкам, так и тем, кто хочет освежить знания в игровой форме. @Python_Community_ru

Тестирование на Python для продвинутых: кейсы, инструменты, ошибки 📅 22 мая в 20:00 — вебинар для тех, кто хочет вывести тес
Тестирование на Python для продвинутых: кейсы, инструменты, ошибки 📅 22 мая в 20:00 — вебинар для тех, кто хочет вывести тестирование на новый уровень. Что обсудим: — как тестировать async-код, базы данных и работу с файлами — частые ошибки: избыточные моки, хрупкие тесты и антипаттерны — инструменты pro-уровня: pytest, tox, coverage и др. — как ускорить прогон без потери качества — реальные кейсы и подходы из продакшена 👨‍💻 Для опытных Python-разработчиков, лидов, архитекторов и всех, кто пишет тесты, но хочет делать это лучше, быстрее и стабильнее. 🔥 Вебинар проходит в преддверии старта курса «Python Developer. Professional». Участникам — скидка на обучение! 🎓 Участие бесплатное: https://clck.ru/3M5kvn Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

🤖 ACI.dev — Унифицированный доступ AI-агентов к 600+ инструментам ACI (Agent Capability Interface) — это открытая платформа, которая позволяет AI-агентам подключаться к более чем 600 внешним инструментам и API, используя единую инфраструктуру доступа. Система включает поддержку многоарендной архитектуры (multi-tenant), гибкие разрешения и несколько режимов вызова — как через MCP-сервер, так и напрямую через SDK. 🎯 Цель проекта — предоставить ИИ-доступ к реальным действиям в цифровой среде: от отправки писем и управления календарём до взаимодействия с CRM, базами данных, DevOps-инструментами и даже пользовательскими функциями. 🧩 Основные возможности: - 🔌 600+ готовых интеграций Поддержка популярных платформ: Notion, Slack, Google Calendar, GitHub, Discord, Twilio, PostgreSQL и многих других. - 🔐 Разграничение доступа и безопасность Поддержка granular-permissions, токенов доступа, ролей, и подписанных вызовов с проверкой подлинности. - 🧠 Интеграция с AI-агентами Разработано для работы с open-source AI-платформами, включая AutoGen, CrewAI, LangGraph, OpenDevin, Devika и т.д. - 🛠️ Два способа использования 1. MCP Server — единая точка входа, через которую агент может выполнять действия. 2. ACI SDK — локальное подключение и вызов возможностей напрямую из кода. - 🌐 Webhooks и Plugin support Поддержка обратных вызовов и подключения как внешнего плагина к другим системам (например, для LLM-агентов). ACI — это своего рода "операционная система" для ИИ-агентов, позволяющая им действовать в реальном мире с контролем, безопасностью и масштабируемостью. 🔗 Полезные ссылки: - GitHub (https://github.com/aipotheosis-labs/aci) - Документация (https://docs.aci.dev/) @Python_Community_ru

🐍 Задача уровня Pro: декоратор с внутренним состоянием 📌 Задача: Напиши декоратор call_limiter, который: - ограничивает функцию f максимум до n вызовов - после n вызова функция больше не вызывается, а возвращает строку "LIMIT REACHED" Пример использования: @call_limiter(3) def greet(name): return f"Hello, {name}!" print(greet("Alice")) # Hello, Alice! print(greet("Bob")) # Hello, Bob! print(greet("Charlie"))# Hello, Charlie! print(greet("Dave")) # LIMIT REACHED 🎯 Подвохи: - Нужно создать декоратор-фабрику с аргументом n - Внутри должна быть функция с nonlocal, чтобы отслеживать число вызовов - Часто путаются и используют mutable default, что ломает независимость между декорируемыми функциями ✅ Решение: ```python def call_limiter(n): def decorator(func): count = 0 def wrapper(*args, **kwargs): nonlocal count if count >= n: return "LIMIT REACHED" count += 1 return func(*args, **kwargs) return wrapper return decorator ``` 🧪 **Проверка:** ```python @call_limiter(2) def ping(): return "pong" print(ping()) # pong print(ping()) # pong print(ping()) # LIMIT REACHED @call_limiter(1) def echo(msg): return msg print(echo("hi")) # hi print(echo("bye")) # LIMIT REACHED ``` 🧠 **Что проверяет задача:** • Понимание функций высшего порядка • Работа с `nonlocal` и областью видимости • Контроль состояния внутри декоратора • Умение не "засорить" глобальные или общие области @Python_Community_ru

🎭 Pykka — акторная модель для Python без лишних сложности. Этот проект позволяет организовывать конкурентные вычисления без
🎭 Pykka — акторная модель для Python без лишних сложности. Этот проект позволяет организовывать конкурентные вычисления без традиционных проблем с состоянием и блокировками. Вдохновлённый знаменитым Akka для JVM, Pykka предлагает минималистичный подход — никаких супервизоров или распределённых акторов, только чистые принципы обмена сообщениями между изолированными процессами. Инструмент имеет продуманную архитектуру: разработчику достаточно определить поведение акторов, а Pykka возьмет на себя всю работу с очередями и потоками. 🤖 GitHub (https://github.com/jodal/pykka?tab=readme-ov-file) @Python_Community_ru

🧠 Как подготовиться к техническому собеседованию с помощью Если ты собираешься на собеседование в IT и не знаешь, с чего начать, обрати внимание на бесплатный курс от freeCodeCamp (https://www.freecodecamp.org/news/prepare-for-technical-interviews-using-neetcode-150/), который основан на известном списке задач NeetCode 150. ⚙️ Что такое NeetCode 150? • 🟤 Это подборка из 150 задач с LeetCode, охватывающая все необходимые темы: • массивы • строки • хеш-таблицы • деревья и графы • динамическое программирование • стек и очередь • backtracking и двоичный поиск 🎓 Что включает курс freeCodeCamp: • 38 часов подробных видеоуроков • Каждая задача рассматривается шаг за шагом — с объяснением подходов и кода • Языки программирования: Python и JavaScript • Курс полностью бесплатный 📈 Почему это работает: • Все задачи взяты из реальных технических собеседований • Курс построен так, чтобы идти от простого к более сложному • Можно учиться в удобном для себя темпе - Начать можно здесь (https://www.freecodecamp.org/news/prepare-for-technical-interviews-using-neetcode-150) - Видео с разбором вопросов (https://www.youtube.com/watch?v=T0u5nwSA0w0) - Решения задач (https://neetcode.io/practice) Не упусти возможность упорядочить свои знания и уверенно пройти собеседование! @Python_Community_ru

⚡️Создаем собственную нейросеть с помощью PyTorch. Хотите быстро освоить PyTorch и создать свою нейросеть? Мы организовали вебинар, на котором подробно рассмотрим все шаги по созданию ML-модели на практике. Вебинар проведет Владислав Агафонов — ML-инженер, который ранее работал в Yandex и Huawei. Что вас ждет на вебинаре? 🟠Установка PyTorch в Google Colab и настройка работы на бесплатном GPU; 🟠Понимание, что такое тензоры и почему они являются основой всех нейросетей; 🟠Скачивание готового датасета, анализ его структуры и подготовка к обучению; 🟠Изучение использования DataLoader для эффективной загрузки данных; 🟠Пошаговое создание облегченной версии классической свёрточной нейронной сети (CNN); 🟠Обучение и тестирование модели. 🕗 Встречаемся 14 мая в 18:30 по МСК. Будет много практики, ответы на вопросы и полезные советы от эксперта. 😶Зарегистрироваться на бесплатный вебинар (https://r.bothelp.io/tg?domain=intensives_simulative_bot&start=c1717737634212-ds&funnel=web-1405&utm_source=telegram&utm_medium=paid-placement&utm_campaign=pythonl&utm_content=11-05-2025&erid=2VtzqwpEY4C) @Python_Community_ru

Хочешь научиться собирать данные с сайтов как профи? 14 мая в 18:30 МСК — бесплатный вебинар по веб-скрейпингу на Python! 💡
Хочешь научиться собирать данные с сайтов как профи? 14 мая в 18:30 МСК — бесплатный вебинар по веб-скрейпингу на Python! 💡 Что тебя ждёт: На открытом уроке ты узнаешь, как: — работать с библиотеками requests и BeautifulSoup; — автоматизировать сбор данных с динамических сайтов с помощью Selenium; — обходить CAPTCHA и блокировки; — сохранять данные в нужном тебе формате. 📊 Кому будет полезно: Разработчикам с опытом от 1 года и специалистам, работающим с данными, для автоматизации сбора и обработки информации с внешних источников. 🔥 Вебинар проходит в преддверии старта курса «Python Developer. Professional». Участникам — скидка на обучение!Регистрируйся прямо сейчас — не упусти шанс прокачаться в востребованном навыке: https://clck.ru/3M2FbU Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

🖥 systemd-pilot (https://github.com/mfat/systemd-pilot) — это программа для рабочего стола, предназначенная для управления с
🖥 systemd-pilot (https://github.com/mfat/systemd-pilot) — это программа для рабочего стола, предназначенная для управления сервисами systemd в системах GNU/Linux! 🌟 По сути, это графический интерфейс для команд systemctl. С его помощью можно просматривать и контролировать системные сервисы, быстро создавать новые сервисы, а также запускать, останавливать и перезапускать их. Приложение занимает мало места и написано всего одним Python-скриптом. Кроме того, есть возможность искать сервисы по их имени. 🔐 Лицензия: GPL-3.0 🖥 Github (https://github.com/mfat/systemd-pilot) @Python_Community_ru

🖥 Краткое руководство по RegEx в Python 📦 Импорт модуля: import re 🔍 Основные функции модуля re re.search(pattern, string) # Находит первое совпадение в любой части строки re.match(pattern, string) # Проверяет совпадение только в начале строки re.fullmatch(pattern, string) # Проверяет, соответствует ли вся строка шаблону полностью re.findall(pattern, string) # Возвращает список всех совпадений re.finditer(pattern, string) # То же самое, но возвращает итератор с объектами Match re.sub(pattern, repl, string) # Заменяет найденные по шаблону участки re.split(pattern, string) # Делит строку по шаблону # 🧠 Основы синтаксиса шаблонов | Шаблон | Значение | |---------|-----------------------------------| | . | Любой символ, кроме символа новой строки | | ^ | Начало строки | | $ | Конец строки | | * | 0 или более повторений | | + | 1 или более повторений | | ? | 0 или 1 повторение | | {n} | Ровно n повторений | | {n,} | n или больше повторений | | {n,m} | От n до m повторений | | [] | Класс символов | | [^] | Отрицание класса символов | | | | Логическое ИЛИ (`a|b`) | | () | Группа захвата | | \ | Экранирование специальных символов| 💡 Примеры re.search(r'\d+', 'ID=12345') # Найдёт '12345' (одна или более цифр) re.match(r'^\w+$', 'hello_world') # Проверяет, что вся строка состоит из букв, цифр или _ re.findall(r'[A-Z][a-z]+', 'Mr. Smith and Dr. Brown') # ['Smith', 'Brown'] re.sub(r'\s+', '-', 'a b c') # Результат: 'a-b-c' re.split(r'[;,\s]\s*', 'one, two;three four') # ['one', 'two', 'three', 'four'] 🎯 Работа с группами захвата text = 'Name: John, Age: 30' match = re.search(r'Name: (\w+), Age: (\d+)', text) if match: print(match.group(1)) # John print(match.group(2)) # 30 Группы можно называть: pattern = r'(?P<name>\w+): (?P<value>\d+)' match = re.search(pattern, 'score: 42') match.group('name') # 'score' match.group('value') # '42' 🧱 Сложные шаблоны pattern = r'\b(?:https?://)?(www\.)?\w+\.\w+\b' text = 'Visit https://example.com or www.test.org' re.findall(pattern, text) # [['www.'], ['www.']] ⚠️ Полезные рекомендации • Используйте префикс r'' перед шаблонами, чтобы не нужно было экранировать обратный слэш \ • re.compile(pattern) помогает повысить скорость при многократном использовании шаблона • Лучше использовать re.search вместо re.match, так как он ищет совпадение в любом месте строки ✅ Быстрая проверка шаблонов 📍 Онлайн-сервисы для тестирования: - https://regex101.com/ - https://pythex.org/ Если нужна отдельная шпаргалка по re.sub с использованием лямбда-функций, замен и функций внутри, ставь лайк 👍 @Python_Community_ru

🐍 Задача с подвохом: Декораторы и изменяемые объекты Условие: Что выведет следующий код и почему? def memoize(fn): cache = {} def wrapper(arg): if arg in cache: print("Из кэша") return cache[arg] else: result = fn(arg) cache[arg] = result return result return wrapper @memoize def add_to_list(val, lst=[]): lst.append(val) return lst res1 = add_to_list(1) res2 = add_to_list(2) res3 = add_to_list(1) print(res1) print(res2) print(res3) ❓ Вопрос: Что именно выведется? В чём здесь двойная ловушка? 🔍 Анализ: Сначала кажется, что: 1. add_to_list(1) вернёт [1]. 2. add_to_list(2) вернёт [2]. 3. add_to_list(1) либо вызовет функцию снова, либо вернёт результат из кэша. Но есть два подвоха: Подвох №1: изменяемый аргумент по умолчанию Аргумент lst=[] создаётся один раз при определении функции. Все вызовы без передачи списка будут использовать один и тот же список. Подвох №2: кэширование по ключу Декоратор memoize сохраняет результат в кэше по ключу arg. Но функция возвращает список, который изменяется при каждом вызове. Даже если результат берётся из кэша, вы получите ссылку на тот же список, который менялся между вызовами! 🧮 Что реально произойдёт: - `res1 = add_to_list(1)` → функция вызвана, список становится `[1]`. - `res2 = add_to_list(2)` → функция вызвана снова с другим аргументом, список теперь `[1, 2]`. - `res3 = add_to_list(1)` → аргумент `1` есть в кэше, сработает ветка `print("Из кэша")`, и вернётся ссылка на тот же изменённый список. 🔢 Итог: ``` [1, 2] [1, 2] Из кэша [1, 2] ``` Все переменные указывают на один и тот же изменённый список. 💥 Почему это важно: 1️⃣ Изменяемые аргументы по умолчанию сохраняются между вызовами функции. 2️⃣ Кэширование изменяемых объектов может привести к неожиданным результатам: возвращается не неизменяемый результат, а ссылка на объект, который может изменяться позже. 🛡️ Как исправить: 1️⃣ Использовать `lst=None` и создавать новый список внутри функции: ```python def add_to_list(val, lst=None): if lst is None: lst = [] lst.append(val) return lst ``` 2️⃣ Если кэшировать изменяемые объекты, лучше возвращать их копии: ```python import copy cache[arg] = copy.deepcopy(result) ``` ✅ Итог: Декораторы вместе с изменяемыми аргументами — это ловушка даже для опытных программистов. Особенно, если изменяемые объекты кэшируются и потом меняются за кулисами. @Python_Community_ru

📡 FISSURE — это фреймворк, предназначенный для анализа и обратного проектирования радиосигналов. Этот проект с открытым исхо
📡 FISSURE — это фреймворк, предназначенный для анализа и обратного проектирования радиосигналов. Этот проект с открытым исходным кодом объединяет различные инструменты для работы с RF-сигналами: от их обнаружения и классификации до проведения атак и автоматизированного тестирования. Программа поддерживает популярное SDR-оборудование и позволяет создавать распределённые сенсорные узлы для задач радиомониторинга. Проект активно развивается, и в 2024 году в него добавили анализ Z-Wave и автоматические триггеры для проведения атак. 🤖 GitHub (https://github.com/ainfosec/FISSURE) @Python_Community_ru

🛠 Werkzeug — это набор инструментов для WSGI-приложений на Python. Хотя все обсуждают Flask, его основа — библиотека Werkzeu
🛠 Werkzeug — это набор инструментов для WSGI-приложений на Python. Хотя все обсуждают Flask, его основа — библиотека Werkzeug — остается менее заметной. Этот middleware-инструмент лежит в базе многих Python-фреймворков, обеспечивая основные функции для работы с HTTP-запросами, маршрутизацией и сессиями без навязывания конкретной архитектуры. В Werkzeug отсутствуют ORM и шаблонизатор, но присутствуют: ▪️Интерактивный отладчик с REPL прямо в браузере ▪️Гибкая система маршрутизации (позже использованная в Flask) ▪️WSGI-сервер для разработки с поддержкой горячей перезагрузки 🤖 GitHub (https://github.com/pallets/werkzeug) @Python_Community_ru