Python Community
11.7K subscribers
1.45K photos
117 videos
15 files
981 links
Python Community RU - СНГ сообщество Python-разработчиков

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

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

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
✔️ Centaur - это платформа для совместного использования AI-агентов, интегрированных в Slack.

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

🚀 Основные моменты:
- Slack-агенты для выполнения задач и получения ответов.
- Изолированные среды для безопасного выполнения команд.
- Поддержка пользовательских инструментов и плагинов.
- Долговременные рабочие процессы с возможностью восстановления.
- Хранение состояния для повторного подключения без потери данных.

📌 GitHub: https://github.com/paradigmxyz/centaur

#python

@Python_Community_ru
🚀 GPU-библиотека для классического машинного обучения

FlashLib предлагает высокопроизводительные реализации операторов машинного обучения, таких как kmeans, PCA и DBSCAN, с использованием Triton и CuteDSL. Библиотека позволяет эффективно обрабатывать данные на GPU, обеспечивая простоту использования и высокую скорость выполнения.

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

📌 GitHub: https://github.com/FlashML-org/flashlib

#python

@Python_Community_ru
🔍 Обнаружение уязвимостей с помощью Audit

Audit — это агент для поиска уязвимостей, использующий 8-ступенчатую методологию, основанную на взаимодействии узких агентов и принципе "умышленного несогласия". Он интегрируется с Claude Pro и предлагает структурированные отчеты о безопасности.

🚀 Основные моменты:
- Многопоточность: узкие агенты работают параллельно для поиска уязвимостей.
- Умышленное несогласие: второй агент проверяет выводы первого.
- Отслеживание доступности: подтверждает, что уязвимости могут быть достигнуты злоумышленником.
- Обратная связь: находит новые задачи на основе обнаруженных уязвимостей.

📌 GitHub: https://github.com/evilsocket/audit

#python

@Python_Community_ru
Как создать аннотированный график с помощью #Python и matplotlib 🐍📊

@Python_Community_ru
⚡️ SearchPhone - open-source утилита на Python, которая автоматизирует сбор данных по телефонным номерам и формирует готовые отчёты.

Возможности

- проверка корректности телефонного номера
- определение страны и оператора связи
- поиск упоминаний через Google, Bing и DuckDuckGo
- поиск номера в открытом коде на GitHub
- поиск публикаций и обсуждений на Reddit
- создание отчётов в форматах JSON и PDF
- параллельная обработка запросов
- управление через простой CLI

Инструмент пригодится для OSINT-исследований, threat intelligence и проверки открытых источников.

Используйте его только законно и с соблюдением права на конфиденциальность.

🔗 GitHub: https://github.com/HackUnderway/SearchPhone

#OSINT #CyberSecurity #Python #OpenSource #GitHub #ThreatIntelligence #InfoSec

@Python_Community_ru
🐍 collections.Counter: больше, чем подсчёт частот

Большинство используют Counter только ради most_common(), хотя у него есть куда более интересные возможности.


from collections import Counter

a = Counter("abracadabra")
b = Counter("barbecue")


Можно складывать и вычитать частоты:


a + b
a - b


Пересечение и объединение счётчиков:


a & b # минимальные значения
a | b # максимальные значения


Удалить элементы с нулевой и отрицательной частотой:


clean = +a


Получить общее число элементов:


a.total()


Развернуть счётчик обратно в последовательность:


list(a.elements())


Особенно удобно для анализа логов, событий, токенов, категорий и любых данных, где важна частота появления.

#Python #Collections #Backend

@Python_Community_ru
🔥1
🐍 Python-совет: как объединить списки разной длины и не потерять данные

Обычный zip() останавливается на самом коротком списке:


numbers = [1, 2, 3, 4, 5]
letters = ["a", "b", "c"]

print(list(zip(numbers, letters)))
# [(1, 'a'), (2, 'b'), (3, 'c')]


Элементы 4 и 5 просто исчезнут. Чтобы сохранить их, используйте zip_longest():


from itertools import zip_longest

result = zip_longest(
numbers,
letters,
fillvalue="нет значения",
)

print(list(result))


Результат:


[
(1, "a"),
(2, "b"),
(3, "c"),
(4, "нет значения"),
(5, "нет значения"),
]


А когда списки обязаны иметь одинаковую длину, в Python 3.10+ лучше включить проверку:


zip(numbers, letters, strict=True)


Вместо тихой потери данных Python сразу выбросит ValueError.

Полезно при обработке таблиц, CSV, результатов API и параллельных наборов данных.

#Python #Programming #PythonTips

@Python_Community_ru
🚀 Neo4j без сервера: GraphForge запускает полноценный Cypher прямо внутри Python-скрипта

GraphForge занимает редкую нишу между NetworkX и серверными графовыми БД. Вы получаете встроенный графовый движок на Rust, полный openCypher и хранение проекта в обычной директории.

Что внутри:

- четыре независимых слоя на Rust: parser → IR → planning → execution;
- результаты сразу возвращаются как Apache Arrow Table;
- данные легко передаются в Pandas и Polars;
- постоянное хранение построено на Parquet;
- встроены PageRank, Louvain и гибридный текстово-векторный поиск;
- Python- и Node.js-биндинги работают поверх одного движка.


from graphforge import GraphForge

graph = GraphForge("research/")

result = graph.execute("""
MATCH (a)-[:CITES]->(b)
RETURN a.title, b.title
""")

print(result.to_pandas())


При этом GraphForge честно позиционируется как инструмент исследовательского и notebook-масштаба. Для миллиардных графов, высокой нагрузки и многопользовательского доступа по-прежнему нужна серверная БД.

Python и Node.js доступны сейчас, Swift и Kotlin находятся в планах. Лицензия — Apache 2.0.

https://github.com/CurateLabs/graphforge

#RustLang #Python #OpenSource #GraphDatabase #DataScience #KnowledgeGraph

@Python_Community_ru
XY - новая open-source библиотека визуализации от команды Reflex. Она пытается объединить удобство Matplotlib с интерактивностью браузерных графиков и производительностью Rust.

Для больших датасетов Rust-ядро XY вычисляет только то, что реально можно показать при текущем разрешении экрана. При приближении данные уточняются и появляются исходные точки.


import xy

chart = xy.line_chart(
xy.line(
[1, 2, 3, 4, 5],
[120, 180, 165, 240, 310]
)
)

chart


Есть даже совместимость с привычным стилем Matplotlib:


import xy.pyplot as plt

fig, ax = plt.subplots()
ax.plot(x, y)
plt.show()


По собственному бенчмарку разработчиков на Apple M5 Pro:

- 100 млн точек в density-режиме - ~0,081 с;
- 100 млн реальных маркеров без агрегации - ~1,34 с;
- библиотека уже использовалась для визуализации датасета OpenStreetMap примерно на 10 млрд точек.

Под капотом:


Python API

ColumnStore

Rust compute

binary buffers

WebGL2 / Canvas


Графики интерактивные: pan, zoom, hover, selection и linked charts. Их можно использовать в Jupyter и веб-приложениях, а затем экспортировать в HTML, PNG, SVG или PDF.

Установка:


pip install xy


Если подход оправдает себя, XY может стать интересной альтернативой связке Matplotlib + Plotly для действительно больших датасетов.

Источник:
https://github.com/reflex-dev/xy

#Python #DataScience #Visualization #Rust

@Python_Community_ru
🐍 Django-разработчикам: `DEBUG=True` в проде опаснее, чем кажется.

Это не просто красивые страницы ошибок. При включённом DEBUG приложение может раскрывать stack trace, настройки, пути файлов, middleware, URL-паттерны и другие детали окружения.

Главная рекомендация - fail closed:


DEBUG = False


То есть по умолчанию DEBUG всегда выключен, а включается только локально.

Даже staging, QA и preview-среды, доступные из интернета, лучше запускать с DEBUG=False.

Отдельная ловушка - переменные окружения:


DEBUG = os.environ.get("DEBUG", "False") != "False"


Здесь DEBUG=false или DEBUG=0 могут неожиданно превратиться в True.

Лучше явно парсить boolean или использовать django-environ.

Мелкая настройка, которая однажды может спасти production от очень неприятной утечки.

https://lincolnloop.com/blog/setting-djangos-debug-safely/

#Python #Django #Backend #Security #DevOps

@Python_Community_ru
🐍 Опытный Python-разработчик рассказал, для каких проектов в 2026 году он уже не выбирает Python первым.

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

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

При этом это не очередное «Python умер».

Наоборот, автор по-прежнему активно использует Python и отдельно показывает области, где язык остаётся одним из лучших вариантов.

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

#/

#Python #Programming #SoftwareEngineering #Development

@Python_Community_ru

https://menno.io/presentations/not-python-2026/index.html