✔️ Centaur - это платформа для совместного использования AI-агентов, интегрированных в Slack.
Она позволяет командам взаимодействовать с агентами, которые выполняют задачи в изолированных средах Kubernetes, обеспечивая безопасность и гибкость.
🚀 Основные моменты:
- Slack-агенты для выполнения задач и получения ответов.
- Изолированные среды для безопасного выполнения команд.
- Поддержка пользовательских инструментов и плагинов.
- Долговременные рабочие процессы с возможностью восстановления.
- Хранение состояния для повторного подключения без потери данных.
📌 GitHub: https://github.com/paradigmxyz/centaur
#python
@Python_Community_ru
Она позволяет командам взаимодействовать с агентами, которые выполняют задачи в изолированных средах Kubernetes, обеспечивая безопасность и гибкость.
🚀 Основные моменты:
- Slack-агенты для выполнения задач и получения ответов.
- Изолированные среды для безопасного выполнения команд.
- Поддержка пользовательских инструментов и плагинов.
- Долговременные рабочие процессы с возможностью восстановления.
- Хранение состояния для повторного подключения без потери данных.
📌 GitHub: https://github.com/paradigmxyz/centaur
#python
@Python_Community_ru
GitHub
GitHub - paradigmxyz/centaur: Centaur is frontier, agentic infrastructure that you own. Centaur is like Claude Tag, but open source…
Centaur is frontier, agentic infrastructure that you own. Centaur is like Claude Tag, but open source and on steroids. - paradigmxyz/centaur
🚀 GPU-библиотека для классического машинного обучения
FlashLib предлагает высокопроизводительные реализации операторов машинного обучения, таких как kmeans, PCA и DBSCAN, с использованием Triton и CuteDSL. Библиотека позволяет эффективно обрабатывать данные на GPU, обеспечивая простоту использования и высокую скорость выполнения.
🚀Основные моменты:
- Поддержка 15 высокоуровневых примитивов для машинного обучения.
- Информативный API для оценки производительности операций.
- Оптимизированные реализации для кластеризации, регрессии и декомпозиции.
- Легкая интеграция с PyTorch и sklearn.
📌 GitHub: https://github.com/FlashML-org/flashlib
#python
@Python_Community_ru
FlashLib предлагает высокопроизводительные реализации операторов машинного обучения, таких как kmeans, PCA и DBSCAN, с использованием Triton и CuteDSL. Библиотека позволяет эффективно обрабатывать данные на GPU, обеспечивая простоту использования и высокую скорость выполнения.
🚀Основные моменты:
- Поддержка 15 высокоуровневых примитивов для машинного обучения.
- Информативный API для оценки производительности операций.
- Оптимизированные реализации для кластеризации, регрессии и декомпозиции.
- Легкая интеграция с PyTorch и sklearn.
📌 GitHub: https://github.com/FlashML-org/flashlib
#python
@Python_Community_ru
GitHub
GitHub - FlashML-org/flashlib: Fast and memory-efficient classical machine learning operators
Fast and memory-efficient classical machine learning operators - FlashML-org/flashlib
🔍 Обнаружение уязвимостей с помощью Audit
Audit — это агент для поиска уязвимостей, использующий 8-ступенчатую методологию, основанную на взаимодействии узких агентов и принципе "умышленного несогласия". Он интегрируется с Claude Pro и предлагает структурированные отчеты о безопасности.
🚀 Основные моменты:
- Многопоточность: узкие агенты работают параллельно для поиска уязвимостей.
- Умышленное несогласие: второй агент проверяет выводы первого.
- Отслеживание доступности: подтверждает, что уязвимости могут быть достигнуты злоумышленником.
- Обратная связь: находит новые задачи на основе обнаруженных уязвимостей.
📌 GitHub: https://github.com/evilsocket/audit
#python
@Python_Community_ru
Audit — это агент для поиска уязвимостей, использующий 8-ступенчатую методологию, основанную на взаимодействии узких агентов и принципе "умышленного несогласия". Он интегрируется с Claude Pro и предлагает структурированные отчеты о безопасности.
🚀 Основные моменты:
- Многопоточность: узкие агенты работают параллельно для поиска уязвимостей.
- Умышленное несогласие: второй агент проверяет выводы первого.
- Отслеживание доступности: подтверждает, что уязвимости могут быть достигнуты злоумышленником.
- Обратная связь: находит новые задачи на основе обнаруженных уязвимостей.
📌 GitHub: https://github.com/evilsocket/audit
#python
@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
Возможности
- проверка корректности телефонного номера
- определение страны и оператора связи
- поиск упоминаний через 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
Большинство используют 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
Обычный 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
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
Для больших датасетов 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
Это не просто красивые страницы ошибок. При включённом 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
Автор десятилетиями использовал Python практически для всего, но со временем пришёл к простой мысли: хороший универсальный язык не обязан быть лучшим инструментом для каждой задачи.
В презентации разбирается, где ограничения Python начинают перевешивать его удобство и почему для некоторых проектов сегодня разумнее посмотреть на другие языки и экосистемы.
При этом это не очередное «Python умер».
Наоборот, автор по-прежнему активно использует Python и отдельно показывает области, где язык остаётся одним из лучших вариантов.
Получился полезный взгляд без фанатизма: выбирать язык не по привычке, а под конкретную задачу.
#/
#Python #Programming #SoftwareEngineering #Development
@Python_Community_ru
https://menno.io/presentations/not-python-2026/index.html