Python Community
12.7K subscribers
1.28K photos
45 videos
15 files
766 links
Python Community RU - СНГ сообщество Python-разработчиков

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

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

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
⚠️ Внимание: фишинг-атака на разработчиков Python. Злоумышленники рассылают поддельные письма от имени PyPI с домена pypj.org, требуя "подтвердить email".

Уже пострадал популярный пакет num2words (3M+ загрузок/месяц) — через захваченные аккаунты были выпущены вредоносные обновления. Атака повторяет недавний инцидент с NPM, где скомпрометировали пакеты с 100M+ загрузок в неделю.

🔗 Ссылка - *клик* (https://blog.pypi.org/posts/2025-07-31-incident-report-phishing-attack/)



@Python_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Нужно временно отключить все принты — например, в проде или при юнит-тестах?

Этот трюк нужен, чтобы временно отключить принты не удаляя и не комментируя строки вручную.

На экране простой способ сделать это через контекстный менеджер — без сторонних библиотек и без комментирования строк.


import sys, os
from contextlib import contextmanager

@contextmanager
def suppress_print():
saved = sys.stdout
sys.stdout = open(os.devnull, 'w')
yield
sys.stdout.close()
sys.stdout = saved

Пример:

print("Это видно")
with suppress_print():
print("А это — нет")
print("Снова видно")

- вопросы с собеседований Python

@Python_Community_ru
🔥1
🖥 Second‑Me

Это ваш “цифровой двойник”: агент, который обучается на ваших заметках, письмах и постах и помогает вести аккаунты в соцсетях.

В 2025 году проект получил крупное обновление — добавлен модуль для управления площадками вроде LinkedIn и Airbnb, а также улучшена персонализация бота.

https://github.com/mindverse/Second-Me



@Python_Community_ru
📰 Python без GIL: новая эра многопоточности

Недавно в Python 3.13 появилась экспериментальная возможность отключить Global Interpreter Lock — механизм, который десятилетиями ограничивал настоящую многопоточность в Python. Теперь можно сравнить производительность обычной и свободнопоточной версий интерпретатора.

Тесты с CPU-интенсивными задачами показывают ускорение в 3-4 раза при использовании 4 потоков в версии без GIL. Однако за это приходится платить: усложняется сборка мусора, требуется новая система управления памятью, а некоторые объекты становятся просто бессмертными.

Пока free-threaded Python остаётся опциональным, но в будущих версиях, начиная с 3.14, он может стать стандартом. Главный вопрос — насколько быстро сообщество и библиотеки адаптируются к этим изменениям.

🔗 Ссылка - *клик* (https://blog.jetbrains.com/pycharm/2025/07/faster-python-unlocking-the-python-global-interpreter-lock/)



@Python_Community_ru
👍1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
🚀 УСКОРЕНИЕ КОДА ЗА СЧЁТ ЛОКАЛЬНЫХ ПЕРЕМЕННЫХ

💡 Используй локальные переменные внутри циклов — это может ускорить выполнение на 20–30%, особенно в критичных по времени участках.

Почему это работает?
В Python доступ к локальной переменной быстрее, чем к глобальной или объектной, потому что локальные хранятся в массиве, а не в словаре.

Пример:


# Медленно: обращение к свойствам объекта в цикле
class Processor:
def __init__(self, data):
self.data = data

def compute(self):
total = 0
for item in self.data:
total += item * item
return total



# Быстрее: кэшируем ссылку на data как локальную переменную
class Processor:
def __init__(self, data):
self.data = data

def compute(self):
data = self.data # локальная переменная
total = 0
for item in data:
total += item * item
return total

# Прирост в скорости особенно заметен при больших объёмах данных```

@Python_Community_ru
🧪 uQLM — движок для SQL‑запросов к LLM, разработанный в CVS Health

Что если к языковой модели можно обращаться как к обычной базе данных?

💡 uQLM (Universal Query Language for Models) позволяет писать SQL‑подобные запросы, чтобы:

Обращаться к LLM как к таблице
Фильтровать, агрегировать и комбинировать ответы
Подключать собственные модели и источники данных
Использовать привычный синтаксис SQL без prompt-инженерии

📌 Пример запроса:

SELECT generate_response(prompt)
FROM gpt4
WHERE prompt LIKE '%explain%'
LIMIT 5;


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

🔗 GitHub: https://github.com/cvs-health/uqlm



@Python_Community_ru
🌟 Большой гайд по TOML и tomllib на Python

TOML стал стандартом для конфигурации Python-проектов благодаря своей простоте и читаемости. Начиная с Python 3.11, вы можете парсить TOML-файлы встроенным модулем tomllib без установки дополнительных зависимостей. Это удобно для работы с pyproject.toml и конфигами инструментов вроде pytest, mypy и black.

Хотя tomllib поддерживает только чтение файлов, его возможностей хватает для большинства задач. Для записи и сложного редактирования TOML можно использовать библиотеки toml или tomlkit. В статье подробно разбираются примеры чтения конфигов и работа с pyproject.toml.

🔗 Ссылка - *клик* (https://www.pythonpapers.com/p/python-101-reading-toml-with-python?triedRedirect=true)



@Python_Community_ru
Монолитные тесты = больше головной боли при отладке.
Когда в одном тесте проверяешь всё подряд, при падении непонятно, какой именно сценарий сломался.

Пишем специфичные тесты.
Каждая функция тестирует один конкретный случай. Так при падении сразу видно, где ошибка.

Плохо:

def test_extract_sentiment():
assert extract_sentiment("I love this!") == "positive"
assert extract_sentiment("Terrible") == "negative"
assert extract_sentiment("On time") == "neutral"


Хорошо:

def test_extract_sentiment_positive():
assert extract_sentiment("I love this!") == "positive"

def test_extract_sentiment_negative():
assert extract_sentiment("Terrible") == "negative"


📌 Результат — быстрее находишь баги и не тратишь время на догадки.

@Python_Community_ru
🚀 FastMCP 2.0 — новый стандарт для интеграции LLM в Python-приложения. Этот фреймворк для работы с упрощает подключение языковых моделей к внешним ресурсам. Инструмент предлагает стандартизированный способ предоставления данных, инструментов и шаблонов запросов для ИИ-приложений.

Проект имеет минималистичный синтаксис: достаточно декоратора @mcp.tool, чтобы превратить обычную Python-функцию в инструмент, доступный для LLM. Проект развивается как альтернатива официальному MCP SDK и уже включает клиентские библиотеки, систему аутентификации и инструменты для тестирования. При этом система автоматически генерирует схему на основе type hints и docstrings.

🤖 GitHub (https://github.com/jlowin/fastmcp)



@Python_Community_ru
🔥2
⚡️ DeepCode — открытая AI-платформу для автоматической генерации кода.

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

🔹 Основные возможности:
• Paper2Code — реализация идей из исследований в рабочий код
• Text2Web — генерация интерфейсов по описанию
• Text2Backend — автоматическое создание масштабируемых серверов
• Поддержка длинных документов и многофайловых проектов

🔜 В ближайшее время разработчики обещают:
• Автоматическую проверку и валидацию кода
• Повышение скорости генерации
• Улучшенную работу с требованиями
• Бенчмарки воспроизведения научных статей (PaperBench)

Проект полностью open source: https://github.com/HKUDS/DeepCode



#deepcode #AI #coding

@Python_Community_ru
👍3
📌Python на взлете, а Python Software Foundation в минусе на 1.5 млн. долларов: разбираем свежий опрос.

Python Software Foundation (PSF) совместно с JetBrains опубликовала (https://lp.jetbrains.com/python-developers-survey-2024/) результаты восьмого, самого крупного в истории опроса разработчиков - в нём приняли участие более 30 000 человек.

Данные, собранные в конце 2024 года, показывают, что 72% респондентов используют Python в рабочих целях и это подтверждает доминирующую роль языка в индустрии. И популярность Python продолжает расти: согласно другому исследованию, от Stack Overflow, использование языка увеличилось на 7%.

🟡Приток свежей крови в экосистему.

Половина опрошенных имеют менее 2 лет профессионального опыта в программировании, а 39% начали использовать Python в течение последних 2 лет. Это говорит о том, что язык активно привлекает новичков и остается ключевой точкой входа в разработку.

🟡Парадокс версий.

Только 15% разработчиков используют последнюю на момент опроса версию, 3.13. В PSF утверждают, что массовый переход на нее мог бы сэкономить миллионы долларов на облачных вычислениях за счет повышения эффективности.

Однако сами разработчики не торопятся: 53% заявляют, что текущая версия полностью удовлетворяет их потребности, 27% ссылаются на проблемы с совместимостью, а 25% - на нехватку времени.

При этом нельзя сказать, что сообщество инертно. Самая популярная версия - 3.12 (35%), выпущенная в конце 2023 года, за ней следует 3.11 (21%), что говорит о довольно быстрой адаптации к не самым последним, но свежим релизам.

🟡Сферы применения.

Анализ данных (48%) и веб-разработка (46%) идут практически вровень. Но если к анализу прибавить ML (41%) и инжиниринг данных (31%), то доминирование Data Science становится очевидным.

В мире веб-фреймворков происходит смена караула: FastAPI (38%) резко вырвался вперед, обогнав ветеранов: Django (35%) и Flask (34%). Год назад у FastAPI было всего 29%.

Ещё один стремительный взлёт — у написанного на Rust менеджера пакетов uv, который позиционируется как замена pip. Заявляя о кратном превосходстве в скорости, он уже отхватил 11% пользователей.

А вот в лагере IDE плохие новости для спонсора опроса, JetBrains: Visual Studio Code укрепил свое лидерство, набрав 48% (против 41% в прошлом году), а доля PyCharm снизилась до 25% (с 31%).

🟡Финансовые проблемы Python Software Foundation.

Ранее в этом месяце PSF объявила о приостановке своей грантовой программы из-за нехватки средств.

Годовой отчет за 2024 год показал чистый убыток в размере 1 462 000 долларов, что значительно больше, чем в 2023 году, там убыток был 225 000 долларов.

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




#news #ai #ml #python

@Python_Community_ru
🔋 PikaPython — ультралегкий интерпретатор Python для микроконтроллеров. Проект позволяет запускать Python-код на устройствах с 4 КБ RAM и 64 КБ Flash. Не требует операционной системы и работает через REPL по UART.

Инструмент имеет встроенный прекомпилятор для автоматической генерации биндингов C-функций из .pyi файлов. Есть готовые BSP для популярных MCU и демо-проекты.

🤖 GitHub (https://github.com/pikasTech/PikaPython)



@Python_Community_ru
🖥 Walrus оператор := — присвоение прямо в выражении

В Python есть малоизвестная фишка: можно использовать оператор присваивания := (его ещё называют «walrus»). Он позволяет присваивать значение прямо внутри выражения. Это делает код короче и избавляет от повторных вызовов функций.

📌 Особенности:
• Работает в while, if, list comprehension.
• Удобен для сокращения кода и избежания дублирования.
• Но злоупотребление может сделать код менее читаемым.

🟢Пример: удобно при чтении строк из файла или работе с регулярными выражениями.


Чтение строк из файла с walrus-оператором

def read_file(path):
with open(path) as f:
while (line := f.readline()):
print("Строка:", line.strip())

# Поиск совпадения через regex
import re
pattern = re.compile(r"\d+")

if (match := pattern.search("abc123xyz")):
print("Нашли число:", match.group())

# Применение в list comprehension
nums = [s for s in ["42", "hello", "100"] if (n := s.isdigit())]

print(nums) # ['42', '100']

📌 Больше фишек Python (https://www.youtube.com/shorts/lptxJn6JRF0)



@Python_Community_ru
🐍 Полезный совет по Python: используйте "".join() вместо конкатенации строк в цикле

Многие новички пишут так:


words = ["Python", "очень", "крут"]
result = ""
for w in words:
result += w + " "
print(result)


Код рабочий, но неэффективный: при каждой конкатенации создаётся новая строка, что сильно замедляет работу на больших объёмах данных.

🚀 Правильный способ — использовать " ".join():


words = ["Python", "очень", "крут"]
result = " ".join(words)
print(result)


💡 Преимущества:

- Быстрее и эффективнее на больших списках
- Код чище и короче
-Можно легко задавать разделитель (пробел, запятая, \n)

📊 Пример:


lines = ["строка 1", "строка 2", "строка 3"]
text = "\n".join(lines)
print(text)


Вывод:

строка 1
строка 2
строка 3


📌 Итог
Используйте "".join() для объединения строк из списка — это питонично, быстро и удобно.

@Python_Community_ru
🖥 Полный проект с нуля: клон голоса на Python

🔊 Клонирование голоса на Python с нуля: пошаговый разбор, рабочий код, проверка сходства и защита с водяными знаками.

Полное руководство для разработчиков по созданию собственного проекта voice cloning.

📌 Читать (https://uproger.com/polnyj-proekt-s-nulya-klon-golosa-na-python/)



@Python_Community_ru
📊 Из PDF в DataFrame за пару строк кода

Работаете с финансовыми отчётами или любыми табличными данными в PDF?
С библиотекой docling это становится максимально просто.

Большинство инструментов для работы с PDF заставляют собирать пайплайн вручную:
одна библиотека для извлечения текста, другая для парсинга, третья для чанкинга.

Docling закрывает весь процесс — от сырых PDF до структурированных и готовых к поиску данных — в одном решении.

📌 Преимущество Docling
🔹 Поддержка PDF, DOCX, PPTX, HTML и изображений
🔹 AI-модель TableFormer для понимания сложных таблиц
🔹 Vision-модели для OCR и image-to-text
🔹 Простой экспорт в pandas DataFrame, JSON и Markdown

Пример: конвертируем PDF с отчётом о доходах и сразу получаем pandas DataFrame 👇


from docling.document_converter import DocumentConverter

converter = DocumentConverter()
result = converter.convert("financial_report.pdf")

for table in result.document.tables:
df = table.export_to_dataframe()


📌 Github (https://github.com/docling-project/docling)



#AI #RAG #Docling #DataEngineering #PDF

@Python_Community_ru
👎1
☕️ JPype — проект, позволяющий вызывать Java-код напрямую из Python-скриптов. В отличие от Jython, JPype не переписывает Python на Java, а создает мост между двумя виртуальными машинами через нативные интерфейсы.

Инструмент сохраняет доступ ко всем возможностям CPython и Java-библиотек одновременно. Это открывает возможности для использования Java-фреймворков в научных вычислениях на Python, тестирования Java-кода через Python-скрипты и интеграции legacy-систем.

🤖 GitHub (https://github.com/jpype-project/jpype)



@Python_Community_ru
Media is too big
VIEW IN TELEGRAM
🚀 Jupyter Agent 2

Этот агент умеет:
📂 Загружать данные
💻 Запускать код
📊 Строить графики прямо в Jupyter — быстрее, чем вы успеете прокрутить экран!

🤖 Основан на движке Qwen3-Coder
⚡️ Работает на Cerebras
⚙️ Запускается в E2B
↕️ Поддерживает загрузку файлов

👉 Попробовать можно здесь: https://hf.co/spaces/lvwerra/jupyter-agent-2



@Python_Community_ru
🐍 Изучаем MCP на Python — серия уроков от Microsoft

Пошаговое руководство для Python-разработчиков по Model Context Protocol (MCP):
как понять концепцию и построить свой MCP-сервер в интерактивном формате.

📚 Репозиторий с гайдом (https://github.com/microsoft/lets-learn-mcp-python)

#python #MCP #tutorial #developers

@Python_Community_ru