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

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

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

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Python задака

Напиши функцию, которая распарсит вложенные структуры (списки, кортежи, множества, генераторы) в одну последовательность, но не трогает строки и не падает из-за циклов.

Вот как сделать это без рекурсии, только через стек:


def flatten(obj):
stack = [obj]
seen = set()
while stack:
x = stack.pop()
if isinstance(x, (str, bytes)):
yield x
elif isinstance(x, (list, tuple, set)):
xid = id(x)
if xid in seen:
continue
seen.add(xid)
stack.extend(reversed(list(x)))
else:
yield x

# пример
data = [1, [2, 3], ("ab", [4, 5]), 6]
data.append(data) # создаём цикл
print(list(flatten(data)))

@Python_Community_ru
⚡️ Rust vs Python - как найти баланс между скоростью и простотой

JetBrains выпустили подробный разбор, где сравнивают Python и Rust без фанатизма — по скорости, синтаксису, памяти, экосистеме, конкурентности и даже по карьерным сценариям.

Главный вывод: Python нужен там, где важна скорость разработки и богатая экосистема, Rust, когда критична производительность, безопасность и масштабируемость. Всё чаще их используют вместе: Python для логики, Rust для самых горячих участков.

Ключевые моменты

Рост и популярность
- Python уверенно расширяет аудиторию: быстрый вход, огромная экосистема, удобство для ML, веба и автоматизации.
- Rust годами остаётся самым любимым языком разработчиков — благодаря безопасности памяти, скорости и надёжности.

Типы и управление памятью
- Python — динамическая типизация и удобный GC: легко начать, но ошибки всплывают в рантайме.
- Rust — строгая типизация, система владения и заимствований, отсутствие GC: ошибки ловятся на этапе компиляции, производительность предсказуема.

Производительность и конкурентность
- Python ограничен GIL: хорош для I/O, но CPU-параллелизм требует multiprocessing или расширений.
- Rust не имеет GIL — настоящая параллельность, «бесстрашная» конкурентность и контроль безопасности компилятором.

Экосистема
- Python — PyPI, Jupyter, зрелые фреймворки для DS/ML, веба, автоматизации.
- Rust — Cargo и crates.io, сильная база для CLI, системного софта, WebAssembly.

Комбинация Python + Rust
- Тренд — ускорять Python-проекты Rust-модулями.
- Библиотеки типа pydantic-core или Ruff показывают огромный прирост скорости.
- PyO3 делает интеграцию очень простой: Rust-код можно вызывать как обычный Python-модуль.

Карьера
- Python - широкие вакансии, огромный спрос в данных и ML.
- Rust - меньше позиций, но выше специализация в инфраструктуре, системной разработке и высоконагруженных сервисах.

Как выбирать
- Нужна скорость разработки и гибкость — Python.
- Нужна производительность и надёжность — Rust.
- Нужны и то, и другое — гибридный подход Python + Rust.

Подробный разбор - в блоге JetBrains:
https://blog.jetbrains.com/rust/2025/11/10/rust-vs-python-finding-the-right-balance-between-speed-and-simplicity/

#Rust #Python #Programming #Backend #Performance

@Python_Community_ru
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Microsoft выпустила Visual Studio 2026 - крупнейшее обновление IDE за последние годы.

🔹 300+ новых функций и почти 5000 исправлений ошибок
🔹 Интеграция с GitHub Copilot стала глубже: теперь он помогает в анализе, рефакторинге и генерации кода
🔹 Редизайн интерфейса — 11 новых цветовых тем, улучшенная навигация и читаемость
🔹 Производительность выросла: количество зависаний интерфейса снизилось на 50 %
🔹 Более 4000 расширений от Visual Studio 2022 полностью совместимы с новой версией

Самое время обновиться - новая версия ощутимо быстрее и умнее.

https://visualstudio.microsoft.com/downloads/

@csharp_ci

@Python_Community_ru
This media is not supported in your browser
VIEW IN TELEGRAM
🖥СОВЕТ ДЛЯ PYTHON ASYNCIO

В продвинутых asyncio-сетях главная редкая проблема — неконтролируемый рост буфера, когда клиент принимает данные слишком медленно. Python по умолчанию спокойно складывает мегабайты в память, пока сокет забит.

Решение - вручную ограничить размер буфера транспорта через `set write buffer limits и всегда ждать writer.drain. Тогда при медленном клиенте корутины просто «замрут» в drain(), а не раздуют памяиь.
Подписывайся, больше фишек каждый день !


пример контролируемой по памяти передачи данных

import asyncio

async def handle(reader, writer):
writer.transport.set_write_buffer_limits(high=500_000, low=200_000)

while True:
writer.write(b"x" * 65536)
await writer.drain() # остановит корутину, если клиент не успевает

async def main():
server = await asyncio.start_server(handle, "0.0.0.0", 8888)
async with server:
await server.serve_forever()

asyncio.run(main())

@Python_Community_ru
Кризис в диджитал

Все говорят о кризисе: бюджеты режут, рынок сжимается, конкуренция растёт. В digital это ощущается сильнее всего – давление на эффективность и сроки стало нормой. Но паника ничего не меняет.

Мы видим ситуацию иначе. Когда рынок штормит, выигрывают не те, у кого больше ресурсов, а те, кто умеет быстро перестраиваться, усиливать процессы и работать точнее.

Мы знаем, как проходить спад: что оптимизировать, что автоматизировать, какие метрики реально важны, что помогает удерживать клиентов, а что – только создаёт иллюзию контроля.

В итоге несколько авторов digital-каналов решили объединиться и собрать всё полезное в одну папку — «Документы для тех, кто в digital»

🔴 Там 30 файлов, которые помогают выстроить управление, аналитику и внутренние процессы:

– Мотивация сотрудников в IT,

– Контроль сроков диджитал-проекта,

– Шаблон CSI,

– Фреймворк для проведения исследований через ИИ,

– Как создать продающее КП.

📂 Ссылка на папку: https://t.iss.one/addlist/mUVeZHwtrzc0NWYy

А чтобы добавить немного азарта — среди подписавшихся разыграют:

🥇 iPhone Air;
🥈 Яндекс Станцию Лайт 2;
🥉 HUAWEI Freebuds 5.

Как участвовать:

1. Подпишись на папку: https://t.iss.one/addlist/mUVeZHwtrzc0NWYy
2. Подтверди участие в боте

🗓 Итоги — 25 ноября.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1🔥1
💡 Qwen-Image-Edit получил полезное обновление.

Лаборатория eigen ai labs выпустила новую LoRA под названием Eigen-Banana. Она ориентирована на быстрые и точные правки изображений по текстовым подсказкам. Работает на высоких скоростях и хорошо понимает как английские, так и китайские запросы.

Важно: лицензия разрешает только некоммерческое использование.

Ссылка: https://huggingface.co/eigen-ai-labs/eigen-banana-qwen-image-edit

@Python_Community_ru
👍2
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ ПРИЁМ ДЛЯ ГЛАДКОЙ ПЕРЕДАЧИ ДАННЫХ В ASYNCIO

В сетевом Python можно «мягко» ограничивать скорость передачи данных без троттлинга на уровне сокета.

Приём - отправлять данные кусками и вставлять короткий await asyncio sleep после каждого drain(): это отдаёт управление циклу, даёт шанс другим корутинам и предотвращает монополизацию CPU.

Полезно в высоконагруженных стримерах.


простой «мягкий» троттлинг передачи данных

import asyncio

CHUNK = 32_000

async def send_smooth(writer, data: bytes):
for i in range(0, len(data), CHUNK):
writer.write(data[i:i+CHUNK])
await writer.drain()
await asyncio.sleep(0) # отдаём управление циклу

async def handle(reader, writer):
payload = b"x" * 5_000_000
await send_smooth(writer, payload)
writer.close()
await writer.wait_closed()

async def main():
srv = await asyncio.start_server(handle, "0.0.0.0", 8888)
async with srv:
await srv.serve_forever()

asyncio.run(main())

@Python_Community_ru
👍1
Microsoft выкатили **amplifier** - новую экспериментальную платформу для сборки AI-инструментов без лишнего кода.

Что это:
- способ описать экспертный процесс в виде шагов и автоматически превратить его в работающий инструмент;
- возможность комбинировать такие инструменты между собой, создавая цепочки автоматизации;
- платформа для исследований, поэтому всё ещё активно меняется.

Чем хорош инструмент:
- позволяет быстро превращать повторяющиеся задачи в автономные AI-процессы;
- помогает строить «агентов» с ролями — исследователь, критик, исполнитель;
- снижает порог входа: достаточно описать логику, а не писать всю реализацию.


Это пока исследовательский проект, но потенциал — большой.

👉 Репозиторий: https://github.com/microsoft/amplifier

@Python_Community_ru
🔥2👍1