PYTHONOMANIA
273 subscribers
195 photos
3 videos
1 file
616 links
Откройте для себя мир Python в PYTHONOMANIA!

Идеально подходит как для начинающих, так и для опытных разработчиков. Присоединяйтесь к нам, чтобы достичь совершенства в Python!

Сайт: https://pythonomania.github.io/
Download Telegram
📱Nbpipe.

Nbpipe - это
легковесная утилита, которая позволяет запускать последовательность Jupyter-ноутбуков как единый рабочий процесс (workflow). Вы можете управлять выполнением прямо из командной строки (CLI) или через удобную боковую панель в JupyterLab.

Это идеальное решение для ситуаций, когда ваш процесс разбит на несколько логических шагов (например: подготовка данных -> обучение модели ->генерация отчета), и их нужно выполнять строго друг за другом.

🔧 Установка:

pip install nbpipe


❓Как это работает:

🔘Создайте папку .nbpipe/ в корне вашего проекта.

🔘Опишите ваши шаги в YAML-файле (например, my_workflow.yaml):

name: my_workflow
steps:
- notebook: prepare_data.ipynb
output: data/processed.csv
- notebook: train_model.ipynb


🔘Запустите пайплайн одной командой:

nbpipe run .nbpipe/my_workflow.yaml


💡Что важно знать про шаги:

🔘Поле notebook (обязательное) — указывает путь к ноутбуку относительно корня проекта.

🔘Поле output (опциональное) — файл, который должен быть сгенерирован после выполнения этого шага. Работает как проверка качества: если ноутбук отработал, а нужный файл не появился — пайплайн упадет с ошибкой. Поле поддерживает маски файлов (например, report_*.csv).

#Python #Jupyter #JupyterLab #DataScience #DataEngineering #MachineLearning #DevTools #Workflow #Автоматизация

📱Ссылка на репозиторий:
https://github.com/ngafar/nbpipe
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍3⚡2
📱PyTrendy.

PyTrendy —
это надежное решение для поиска и анализа трендов во временных рядах.

В отличие от большинства других библиотек для тренд-детекшена, PyTrendy устойчива к сильному шуму и плоским («флэт») участкам данных. Она с высокой точностью определяет как плавные (gradual), так и резкие (abrupt) изменения графиков, претендуя на звание лучшего пакета для поиска трендов на Python.

🔹Основные возможности:

🔘Устойчивость к шуму: Отлично фильтрует случайные колебания, не ломая общую картину.

🔘Распознавание боковиков: Четко отделяет реальное движение вверх или вниз от горизонтального коридора (Flat).

🔘Высокая точность: Одинаково хорошо ловит как затяжные плавные тренды, так и внезапные скачки.

🔘Визуализация: Автоматически строит наглядные графики с выделенными зонами трендов.

🚀Быстрый старт:

pip install pytrendy


В коде инструмент используется буквально в несколько строк:

import pytrendy as pt

# Загружаем тестовые данные
df = pt.load_data('series_synthetic')

# Запускаем поиск трендов
results = pt.detect_trends(df, date_col='date', value_col='gradual', plot=True)
results.print_summary()


В консоли вы получите структурированный и понятный отчет:

Detected: - 3 Uptrends. - 3 Downtrends. - 3 Flats. - 0 Noise.

The best detected trend is Down between dates 2025-05-09 - 2025-06-17


Помимо краткой сводки, библиотека возвращает подробный датафрейм, где для каждого найденного участка указаны направление (Up/Down/Flat), даты начала и конца, длительность в днях, общее изменение значения (total_change) и класс тренда.

#Python #TimeSeries #DataScience #Analytics #PyTrendy #DataEngineering #OpenSource #MachineLearning #АнализДанных

📱Ссылка на репозиторий:
https://github.com/RussellSB/pytrendy
Please open Telegram to view this post
VIEW IN TELEGRAM
5⚡4👍3
📱NumCircBuf.

NumCircBuf —
это высокопроизводительная библиотека для Python (реализованная на Cython), предоставляющая численные циклические буферы (circular buffers) со статистическими аккумуляторами, работающими за константное время O(1).

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

🔹Главные фичи и преимущества:

🔘Бешеная производительность: За счет обхода стандартного оверхеда Python/NumPy библиотека работает в 500–1500 раз быстрее, чем collections.deque или обычные списки при массовом добавлении данных (extend), и до 10 раз быстрее кольцевых буферов на чистом NumPy. Тесты показывают пропускную способность до 73 ГБ/с!

🔘Статистика за O(1): Специализированные буферы мгновенно выдают скользящее среднее или среднеквадратичное значение без необходимости каждый раз пересчитывать все элементы в окне.

🔘Zero-Copy представления: Метод .view() возвращает логическое read-only представление буфера без копирования данных в памяти. Оно ведет себя в коде точно так же, как стандартный одномерный NumPy-массив.

🔘Строгая типизация и безопасность: Полная поддержка типов данных fp32, fp64, int32, int64, uint32 и uint64. Привычный API с методами append, extend и clear позволяет внедрить библиотеку как drop-in замену.

🛠Основные типы буферов в комплекте:

🔘OverwriteCircBuffer — оптимизирован для сценариев с высокой интенсивностью записи, где старые данные автоматически заменяются новыми.

🔘BlockingCircBuffer — потокобезопасный блокирующий буфер для многопоточных приложений (паттерн Producer/Consumer). Писатель засыпает, если буфер полон, а читатель ждет, если в буфере пусто.

🔘RunningMeanBuffer и RunningMeanSqBuffer — утилиты со встроенным O(1) расчетом среднего и среднеквадратичного значений с защитой от накопления погрешности округления (floating-point drift).

🔘IntegratedGatedBuffer — узкоспециализированный буфер для расчета интегральной стробированной громкости звука (по международному стандарту ITU-R BS.1770).

📦Установка:

pip install numcircbuf


#Python #Cython #NumPy #DataScience #SignalProcessing #TimeSeries #Performance #DevTools #OpenSource #Оптимизация

📱Ссылка на репозиторий:
https://github.com/basimali-ai/NumCircBuf
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍11
📱Symbolica.

Symbolica -
это высокопроизводительная библиотека компьютерной алгебры для Python и Rust. Она спроектирована специально для работы с огромными математическими выражениями, символьных преобразований (symbolic rewrites), точной полиномиальной арифметики и оптимизированных численных вычислений.

Этому инструменту доверяют ученые из CERN, а также ведущие исследовательские группы из ETH Zurich, Университета Цюриха, Университета Берна и Технологического института Карлсруэ.

❓Почему Symbolica:

🔘Единое ядро: Нативные API для Python и Rust, работающие на одном и том же сверхбыстром символьном движке.

🔘Максимальное ускорение: Оптимизированные численные вычислители с генерацией кода на лету (JIT), поддержкой C++, SIMD, ASM и вычислений на GPU через CUDA.

🔘Работа с Big Data в математике: Встроенные инструменты потоковой передачи данных (streaming) для выражений, которые слишком велики, чтобы целиком поместиться в оперативной памяти.

🔘Гибкая логика: Сопоставление с образцом (pattern matching) и перезапись для адаптации алгебры под конкретные доменные задачи.

🔘Смешанные вычисления: Поддержка комбинации точных и численных расчетов с автоматическим отслеживанием погрешности.

🔻Пример использования (калибровка маятника):

Библиотека позволяет изящно совмещать символьные манипуляции, разложение в ряды и финальный численный расчет:

from symbolica import *

θ, κ = S("θ", "κ")
V = κ * (1 - θ.cos())
τ = -V.derivative(θ) # Символьное дифференцирование: −κ*sin(θ)

# Разложение крутящего момента в ряд для модели малых углов
# Результат: −κθ + 1/6*κθ³ + O(θ⁴)
τ_small = τ.series(θ, 0, 3)

# Подстановка точек измерений, автоматическое решение
# параметрической линейной системы и вывод численного результата...


📦Установка:

pip install symbolica

#Symbolica #Python #Rust #Math #ComputerAlgebra #CERN #DataScience #Physics #CUDA #DevTools #OpenSource

📱Ссылка на репозиторий:
https://github.com/symbolica-dev/symbolica
Please open Telegram to view this post
VIEW IN TELEGRAM
14👍3
📱Supertree.

Supertree
- это библиотека для интерактивной визуализации деревьев решений прямо внутри ваших блокнотов Jupyter, JupyterLab и Google Colab.

Если вы когда-нибудь пытались визуализировать глубокое дерево решений стандартными средствами, то знаете, в какую перегруженную и нечитаемую «кашу» оно обычно превращается. supertree решает эту проблему, заменяя статичные графики динамическим интерфейсом.

❓Что умеет инструмент:

🔘Полный интерактив: Поддерживает масштабирование (zoom), перемещение (pan) и сворачивание отдельных узлов/веток, чтобы сфокусироваться на нужных участках.

🔘Трассировка путей: Позволяет наглядно отслеживать, через какие условия и по какому пути шел конкретный сэмпл данных до финального предсказания.

🔘Работает с ансамблями: Умеет вытаскивать и детально показывать отдельные деревья из случайных лесов (Random Forest) или моделей градиентного бустинга.

📦Поддерживаемые экосистемы:

🔘Scikit-learn: Полная совместимость с DecisionTreeClassifier/Regressor, RandomForestClassifier/Regressor, GradientBoosting, HistGradientBoosting и др.

🔘XGBoost: Поддержка XGBClassifier/Regressor, XGBRFClassifier/Regressor и нативных бустеров.

🔘LightGBM: Поддержка LGBMClassifier/Regressor и бустеров.

🔘ONNX: Модели, конвертированные в формат ONNX.

🚀Быстрый старт:

Установка:

pip install supertree


Пример визуализации классификатора на датасете Iris:

from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris
from supertree import SuperTree

# Загружаем данные и обучаем модель
iris = load_iris()
model = DecisionTreeClassifier(max_depth=3)
model.fit(iris.data, iris.target)

# Инициализируем визуализатор
super_tree = SuperTree(model, iris.data, iris.target, iris.feature_names, iris.target_names)

# Отрисовываем интерактивное дерево в ноутбуке
super_tree.show_tree()


Если вы работаете со случайным лесом (например, RandomForestRegressor) и хотите изучить конкретное дерево из ансамбля (допустим, с индексом 2), просто укажите его номер при вызове: super_tree.show_tree(2).

#Python #MachineLearning #DataScience #DataVisualization #Jupyter #ScikitLearn #XGBoost #LightGBM #OpenSource #DevTools

📱Ссылка на репозиторий:
https://github.com/mljar/supertree
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍2🔥22
📱Google Antigravity SDK.

Google Antigravity SDK
- это официальный Python SDK для разработки автономных ИИ-агентов на базе технологий Antigravity и моделей Gemini.

Инструмент предоставляет безопасный, масштабируемый и сохраняющий состояние (stateful) слой инфраструктуры. Он полностью берет на себя оркестрацию «агентного цикла» (agentic loop), управление историей и вызов инструментов, позволяя разработчику сфокусироваться на бизнес-логике и поведении агента, а не на его рантайме.

SDK поддерживает как локальный запуск, так и бесшовную интеграцию с Gemini Enterprise Agent Platform (ранее известной как Vertex AI).

🔹Ключевые фичи и возможности:

🔘Мультимодальный ввод: Помимо текстовых промптов, агенту можно напрямую скармливать медиафайлы (изображения, видео, аудио) и тяжелые документы. SDK умеет считывать их как из путей файловой системы с автоматическим определением MIME-типов, так и в виде сырых байтов прямо из оперативной памяти.

🔘Глубокий стриминг рантайма: Вы можете в реальном времени асинхронно получать не только текстовые токены ответа, но и цепочки внутренних рассуждений модели (response.thoughts), а также события перехвата вызовов внешних инструментов (response.tool_calls).

🔘Кастомные инструменты и MCP: Любая стандартная Python-функция с docstring регистрируется как инструмент для агента в один клик. Также «из коробки» поддерживается интеграция со сторонними серверами протокола MCP (Model Context Protocol).

🔘Декларативные политики безопасности (Hooks & Policies): По умолчанию агент запускается в безопасном режиме read-only. Вы можете гибко настраивать правила доступа: например, разрешить чтение файлов, запретить любые сетевые запросы, а на выполнение терминальных команд повесить хук ask_user для обязательного подтверждения человеком.

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

🔻Пример использования (Базовый асинхронный агент):

import asyncio
from google.antigravity import Agent, LocalAgentConfig

async def main():
config = LocalAgentConfig(
system_instructions="Ты эксперт по навигации в кодовой базе.",
)
# Высокоуровневый класс Agent сам управляет всем жизненным циклом
async with Agent(config) as agent:
response = await agent.chat("Какие файлы находятся в текущей директории?")
print(await response.text())

if __name__ == "__main__":
asyncio.run(main())


⚠️Важное примечание по установке: Google Antigravity SDK жестко опирается на скомпилированный бинарный файл рантайма, который поставляется исключительно внутри платформозависимых wheel-пакетов на PyPI. Простое клонирование GitHub-репозитория не сработает. Всегда устанавливайте инструмент через pip:

pip install google-antigravity


#Google #Gemini #VertexAI #AntigravitySDK #Python #AIAgents #LLM #DevTools #OpenSource #DataScience

📱Ссылка на репозиторий:
https://github.com/google-antigravity
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥32👍1
📱Ome-zarr-py.

Ome-zarr-py
- это официальный Python-инструмент для работы с многомасштабными (multi-resolution) наборами изображений в формате Zarr, соответствующими открытой спецификации OME-NGFF (Open Microscopy Environment Next Generation File Format).

Библиотека разработана сообществом OME и предназначена для эффективного считывания, записи и управления многомерными (2D–5D) научными данными и микроскопическими снимками гигантского объема.

🔹Ключевые возможности:

🔘Поддержка стандарта OME-NGFF: Реализация формата хранения биовизуализационных данных нового поколения.

🔘Формат Zarr: Оптимизированное сжатие, разбиение на чанки и параллельный доступ к элементам массивов локально и в облачных хранилищах.

🔘Пирамиды изображений (Мультиразрешение): Позволяет загружать только требуемый уровень детализации и конкретный фрагмент изображения без выгрузки всего файла целиком в память.

🛠Инфраструктура и разработка:

🔘Документация: Публикуется на Read the Docs и собирается локально с помощью Sphinx:

pip install -r docs/requirements.txt
sphinx-build -b html docs/source/ docs/build/html


🔘Тестирование: Локальная проверка кода организована через tox, а перед коммитами используется валидация pre-commit.

🔘Версионирование: Номера версий автоматически управляются через setuptools_scm.

🔘Лицензия: Распространяется под открытой лицензией BSD.

#ome #zarr #Python #Bioinformatics #Microscopy #DataScience #OpenSource #DevTools #Imaging #OME_NGFF

📱Ссылка на репозиторий:
https://github.com/ome/ome-zarr-py
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍2🔥21
📱Cnsplots.

Cnsplots
- это Python-библиотека для создания научных графиков и иллюстраций, полностью готовых к публикации в ведущих рецензируемых журналах уровня Cell, Nature и Science (CNS).

Она построена поверх matplotlib, полностью совместима с seaborn и берет на себя всю рутинную работу по стилизации, позволяя исследователям сфокусироваться на содержании работы, а не на подгонке параметров оформления.

🔹Главные фичи и возможности:

🔘Готовые журнальные стандарты: Предустановленные стили и палитры, строго соответствующие требованиям топовых научных изданий (Cell, Nature, Science, Ecotyper и др.).

🔘Идеальная интеграция с Adobe Illustrator: Векторный экспорт (SVG/PDF) сохраняет шрифты как редактируемый текст без конвертации в кривые (no text-to-path conversion), что позволяет дорабатывать верстку статьи без потери качества.

🔘25+ типов научных графиков:

✔️Статистические: боксплоты (Box plots), виолончельные диаграммы (Violin plots), точечные и регрессионные графики.

✔️Биомедицинские и специальные: кривые выживаемости Каплана-Мейера, ROC-кривые, диаграммы Волкано (Volcano plots), графики анализа GSEA, форест-плоты (Forest plots) и матрицы ошибок.

✔️Структурные: тепловые карты с иерархической кластеризацией, диаграммы Санки (Sankey), диаграммы Венна и UpSet-плоты.

🔘Встроенный статанализ: Автоматически рассчитывает $P$-value и добавляет на график аннотации значимости (тест Манна — Уитни, $t$-критерий Уэлча, точный тест Фишера).

🔘 Мультипанельные фигуры: Автоматизирует сборку составных иллюстраций из нескольких графиков с буквенными маркерами (A, B, C...).

🔘Поддержка ИИ-кодеров: Содержит встроенные скиллы для работы в Codex и Claude Code ($cnsplots / /cnsplots).

🚀Быстрый старт:

Установка из PyPI:

pip install cnsplots


Пример создания боксплота со статистическим сравнением групп:

import cnsplots as cns

# Загрузка данных и создание холста точного размера в пикселях
df = cns.datasets.load_dataset("tips")
cns.figure(width=150, height=150)

# Отрисовка боксплота со сравнением выбранных пар
cns.boxplot(
data=df,
x="day",
y="total_bill",
pairs=[("Thur", "Fri"), ("Sat", "Sun")]
)

# Сохранение в векторный SVG для Illustrator
cns.savefig("figure.svg")


#Python #DataVisualization #DataScience #Bioinformatics #Matplotlib #Seaborn #Cell #Nature #Science #ScientificPublishing #OpenSource #DevTools

📱Ссылка на репозиторий:
https://github.com/faridrashidi/cnsplots
Please open Telegram to view this post
VIEW IN TELEGRAM
33⚡2🔥1
📱Whoosh.

Whoosh
- это библиотека для полнотекстового поиска, индексации и исправления опечаток на чистом Python, работающая без внешних серверов, C-компиляторов и бинарных зависимостей.

Вся система поднимается одной командой pip install whoosh3. Индекс хранится прямо в виде файлов в локальной директории, поэтому инструмент идеально подходит для десктопных и CLI-приложений, генераторов статических сайтов, а также RAG-пайплайнов для нейросетей.

🔹Ключевые возможности:

🔘Чистый Python: Запускается везде, где есть CPython (включая PyPy и WebAssembly/Pyodide прямо в браузере).

🔘Встроенный формат (Embedded): Никаких внешних сервисов, портов и настройки инфраструктуры — поисковый индекс представляет собой обычную папку с файлами.

🔘Полноценный поисковый движок: Поддерживает ранжирование результатов по алгоритму BM25F, сложный язык запросов (фразовый поиск, wildcards, fuzzy, логические операторы), подсветку найденных фрагментов и фасетную навигацию.

🔘Проверка орфографии: Встроенный модуль коррекции опечаток и подсказок «Возможно, вы имели в виду...» (Did you mean?).

🔘Строгая типизация (PEP 561): Полная поддержка подсказок типов для mypy, pyright и современный IDE.

🤖Современные ИИ-сценарии:

🔘RAG для LLM: Используется как быстрый BM25-ретривер для нейросетей без развертывания тяжелых векторных баз данных (есть готовые интеграции для LangChain и LlamaIndex).

🔘MCP-сервер: Содержит встроенный модуль whoosh3[mcp], позволяющий превратить любую папку с документами в локальный инструмент поиска для ИИ-агентов.

🔘Поиск в терминале: Включает готовый CLI-инструмент whoosh search ~/notes — удобная альтернатива grep с поддержкой морфологии (стемминга) и ранжирования результатов.

🚀Быстрый старт:

from whoosh.fields import Schema, TEXT, ID
from whoosh.index import create_in
from whoosh.qparser import QueryParser
import tempfile

# 1. Описываем схему документов
schema = Schema(title=TEXT(stored=True), path=ID(stored=True), content=TEXT)

# 2. Создаем индекс в папке
ix = create_in(tempfile.mkdtemp(), schema)

# 3. Добавляем документы
writer = ix.writer()
writer.add_document(title="Первая", path="/a", content="Полнотекстовый поиск на Python")
writer.commit()

# 4. Ищем по индексу
with ix.searcher() as searcher:
query = QueryParser("content", ix.schema).parse("поиск")
for hit in searcher.search(query):
print(hit["title"], "->", hit["path"])


#Python #Whoosh #SearchEngine #BM25 #RAG #MCP #DevTools #OpenSource #DataScience

📱Ссылка на репозиторий:
https://github.com/priya-sundaram-dev/whoosh
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥4⚡22
📱GeoEq.

GeoEq
- это open-source библиотека для Python, созданная для полного цикла геотехнических расчетов, механики грунтов и проектирования фундаментов.

Проект призван заменить громоздкие и хрупкие Excel-таблицы с кучей вкладок и копипастом формул на воспроизводимый и прозрачный Python-код. Библиотека предоставляет 170+ валидированных функций под единым плоским пространством имен (import geoeq as ge). Каждая формула содержит прямую ссылку на научный источник или учебник и протестирована на эталонных значениях.

🔹Ключевые возможности GeoEq:

🔘Классификация грунтов: Автоматическое определение типа грунта по системам USCS (ASTM D2487), AASHTO M145 и текстурному треугольнику USDA на основе гранулометрии и пределов Аттерберга.

🔘Интерпретация полевых изысканий: Обработка данных динамического (SPT) и статического (CPT) зондирования — получение поправок $N_{60}$, угла внутреннего трения, сопротивления недренированному сдвигу ($s_u$), модуля деформации и типа грунта.

🔘Расчет оснований и фундаментов:

✔️Несущая способность: Методы Терцаги, Мейергофа, Хансена и Весича с учетом формы, глубины и наклона нагрузки.

✔️Осадки: Мгновенная (упругая), первичная и вторичная консолидация, а также метод Шмертманна.

✔️Сваи: Оценка несущей способности по острию и боковой поверхности ($\alpha$, $\beta$, $\lambda$ методы).

🔘Устойчивость откосов и подпорные стены: Анализ устойчивости методами Бишопа, Тейлора и Кульмана, расчет бокового давления грунта (Ренкин, Кулон, Яки) и проверок на сдвиг/опрокидывание.

🔘Динамика грунтов: Оценка потенциала разжижения грунтов при сейсмических воздействиях по упрощенной методике NCEER / Идрисс — Буланже.

🔘Импорт/Экспорт данных: Встроенный парсинг инполяционных данных из форматов CSV, AGS4 и GEF-CPT с возможностью автоматической построения публикационных графиков (300 DPI).

🚀Быстрый старт:

Установка требует только numpy, scipy и matplotlib:

pip install geoeq


Пример работы в несколько строк:

import geoeq as ge

# 1. Расчет несущей способности фундамента по Мейергофу
bc = ge.bearing_capacity(c=25, gamma=8.7, Df=2, B=3, L=3, phi=0, method="meyerhof")
print(f"Предельная несущая способность q_u = {bc['q_u']:.0f} кПа")

# 2. Оценка коэффициента запаса против разжижения грунта
csr = ge.liquefaction_csr(amax=0.25, sigma_v=120, sigma_v_eff=70, z=6, Mw=7.0)
crr = ge.liquefaction_crr(N160cs=12, method="youd_2001")
fs = ge.liquefaction_fos(csr["CSR"], crr["CRR"], Mw=7.0)
print(f"Фактор безопасности FS = {fs['FS']:.2f}")


✅Проект распространяется под свободной коммерческой лицензией Apache 2.0 (без ограничений на использование в инжиниринговом консалтинге и коммерческих продуктах).

#GeoEq #Python #GeotechnicalEngineering #CivilEngineering #SoilMechanics #Geology #OpenSource #DevTools #DataScience

📱Ссылка на репозиторий:
https://github.com/geoeq/geoeq
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍2🔥2⚡11
📱Pyhctsa.

Pyhctsa
- это библиотека для Python, предназначенная для масштабного сравнительного анализа временных рядов (Highly Comparative Time-Series Analysis) и автоматического извлечения сотен математических и статистических признаков (features).

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

🔹Ключевые возможности:

🔘Сотни методов анализа: Включает классические статистические тесты, алгоритмы нелинейной динамики (включая адаптации пакета TISEAN), вейвлет-анализ и узкоспециализированные функции (например, вариабельность сердечного ритма / HRV).

🔘Готовность к ML: Результаты извлечения автоматически собираются в привычный pandas.DataFrame размерности $N \times F$ (где $N$ — число временных рядов, а $F$ — вектор признаков).

🔘Многопоточность из коробки: Извлечение сотен признаков ресурсоемко, поэтому встроенный LocalDistributor позволяет легко распараллелить расчеты по всем физическим ядрам процессора.

🔘Любая длина сигналов: Входные временные ряды в одной выборке не обязательно должны быть одинаковой длины.

🔘Гибкая конфигурация: Можно рассчитать весь пул метрик сразу, выбрать кастомный профиль через YAML-файл конфигурации или вызывать отдельные функции изолированно.

🔻Пример использования:

from pyhctsa.calculator import FeatureCalculator
from pyhctsa.distribute import LocalDistributor
from pyhctsa.utils import get_dataset

# Загрузка данных
data = get_dataset()

# Инициализация калькулятора и настройка параллельных вычислений на 4 ядра
calc = FeatureCalculator()
dist = LocalDistributor(n_workers=4)

# Извлечение всех признаков в DataFrame
features_df = calc.extract(data, distributor=dist)
print(features_df.head())


📦Установка:

pip install pyhctsa


✅Проект распространяется под открытой лицензией GNU GPL v3.

#Python #TimeSeries #DataScience #MachineLearning #FeatureExtraction #Analytics #OpenSource #DevTools

📱Ссылка на репозиторий:
https://github.com/DynamicsAndNeuralSystems/pyhctsa
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥4👍21
📱CogDB.

CogDB
- это встраиваемая (embedded) персистентная графовая база данных для Python, работающая прямо внутри процесса вашего приложения без необходимости поднимать отдельный сервер.

Вся база хранится локально на диске, не требует сложной инфраструктуры и легко запускается как в обычных бэкенд-скриптах, так и в интерактивных блокнотах Jupyter или Google Colab.

🔹Главные особенности:

🔘Модель триплстора (Triple Store): Данные моделируются в виде понятных троек «Узел → Связь → Узел» (alice → follows → bob), что дает выразительность графа при простоте key-value хранилища.

🔘Нативный язык запросов Torque: Забудьте о громоздких строках на Cypher или SPARQL. Запросы пишутся через понятный чейнинг методов прямо на чистом Python: g.v("alice").out("follows").all().

🔘Векторные эмбеддинги и семантический поиск: Поддерживает загрузку векторов (GloVe, Word2Vec) и быстрый поиск ближайших соседей (k-NN) на базе SIMD-оптимизированной библиотеки SimSIMD. Можно комбинировать обход графа с фильтрацией по косинусному сходству.

🔘Интерактивная визуализация: Метод g.v().out().show() на лету генерирует интерактивный 2D-граф прямо в браузере или ячейке блокнота.

🔘Поддержка JSON и RDF: Умеет индексировать сырые JSON-документы (putj), загружать CSV-таблицы и читать RDF-дампы в формате N-Triples.

🔘Опциональный HTTP-сервер: Если локального режима мало, граф можно расшарить по сети вызовом g.serve(port=8080) и опрашивать удаленно из другого микросервиса.

🔻Пример использования:

from cog.torque import Graph

# Создаем персистентный граф
g = Graph("social")

# Добавляем связи и свойства
g.put("alice", "follows", "bob")
g.put("bob", "follows", "charlie")
g.put("bob", "status", "active")

# Графовые запросы:
# Кто подписан на тех, на кого подписана Алиса?
result = g.v("alice").out("follows").out("follows").all()
print(result)
# -> {'result': [{'id': 'charlie'}]}

# Поиск с фильтрацией по свойствам
active_users = g.v().has("status", "active").all()


📦Установка:

pip install cogdb


#Python #CogDB #GraphDatabase #NoSQL #Embeddings #DataScience #Jupyter #OpenSource #DevTools #Database

📱Ссылка на репозиторий:
https://github.com/arun1729/cog
Please open Telegram to view this post
VIEW IN TELEGRAM
3⚡2🔥21
📱PySuricata.

PySuricata
- это быстрый и легковесный инструмент для исследовательского анализа данных (EDA) на Python, построенный на потоковых алгоритмах.

Главная проблема большинства инструментов профилирования данных — они требуют загрузки всего датасета в оперативную память и выполняют множество тяжелых прогонов. PySuricata считывает данные всего за один проход (single pass), сохраняя фиксированный расход RAM независимо от количества строк в таблице.

🔹Главные фичи и преимущества:

🔘Потоковая архитектура: Данные обрабатываются чанками. Обработка 1 миллиона строк требует не больше памяти, чем 20 тысяч, что позволяет анализировать датасеты, превышающие объем RAM.

🔘Глубокая интеграция с Arrow и экосистемой: Нативно работает с pandas, polars (включая LazyFrame), файлами Parquet, Arrow IPC (.arrow, .feather) и запросами DuckDB без промежуточной материализации всего фрейма.

🔘Честная математика и вероятностные структуры: Для моментов распределений (среднее, дисперсия, асимметрия) используется потоковый алгоритм Уэлфорда/Пебая, для подсчета уникальных значений — скетчи KMV, а для частых элементов — алгоритм Мизры-Гриса. В отчете честно указываются границы погрешностей приближенных оценок.

🔘Автономный HTML-отчет в один файл: На выходе получается единый self-contained HTML-файл со встроенными SVG, стилями и скриптами, который можно пересылать по почте и открывать без подключения к интернету.

🔘Контроль качества и дрейфа данных в CI/CD:

✔️summarize() — отдает чистый версионированный JSON со метриками;

✔️compare() — рассчитывает смещение признаков между двумя выборками;

✔️pysuricata check / официальный GitHub Action — блокирует пайплайн (exit code $\ne 0$), если превышен процент пропусков или обнаружен дрейф данных.

🚀Быстрый старт:

import pandas as pd
from pysuricata import profile

df = pd.read_csv("large_dataset.csv")

# Анализируем данные и сохраняем автономный отчет
profile(df).save_html("report.html")


Анализ файлов напрямую (без загрузки в DataFrame):


from pysuricata import profile

# Потоковое чтение Parquet-файла без перегрузки RAM
report = profile("data/events.parquet")
report.save_html("events_report.html")


📦Установка:

pip install pysuricata
# или через uv:
uv add pysuricata


#Python #PySuricata #DataScience #EDA #Pandas #Polars #DuckDB #DataEngineering #MachineLearning #OpenSource #DevTools

📱Ссылка на репозиторий:
https://github.com/alvarodiez20/pysuricata
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥3👍21
📱Pydantic Pint.

Pydantic Pint
- это библиотека для Python, объединяющая возможности валидации данных из Pydantic с библиотекой для работы с физическими величинами и единицами измерения.

Если ваш проект связан с инженерией, научными вычислениями, геоданными или физикой, вам наверняка знакома проблема: Pydantic отлично проверяет типы и структуры, а Pint берет на себя математику над размерными величинами (метры, килограммы, секунды, градусы). По умолчанию они несовместимы, и разработчикам приходится писать кастомные сериализаторы. pydantic-pint устраняет этот разрыв с помощью чистого синтаксиса typing.Annotated.

🔹Ключевые возможности:

🔘Строгая типизация размерностей: Позволяет задать целевую единицу измерения для поля модели через аннотацию PydanticPintQuantity("unit").

🔘Автоматическая конвертация: Если поле ожидает километры (km), а на вход передали строку "12 meters", библиотека проверит размерность и сама пересчитает значение в 0.012 kilometer. Ошибочные размерности (например, попытка передать секунды вместо метров) приведут к ошибке валидации.

🔘Полная поддержка сериализации: Корректно выгружается в структуры Python и JSON через стандартные методы Pydantic V2 (model_dump() и model_dump_json()).

🔘Современный синтаксис: Не требует наследования от специальных базовых классов — работает прямо внутри стандартного pydantic.BaseModel.

🔻Пример использования:
from typing import Annotated
from pydantic import BaseModel
from pydantic_pint import PydanticPintQuantity
from pint import Quantity

class Coordinates(BaseModel):
latitude: Annotated[Quantity, PydanticPintQuantity("deg")]
longitude: Annotated[Quantity, PydanticPintQuantity("deg")]
# Поле ожидает километры:
altitude: Annotated[Quantity, PydanticPintQuantity("km")]

# Передаем высоту в метрах — библиотека сконвертирует её сама:
coord = Coordinates(
latitude="39.905705 deg",
longitude="-75.166519 deg",
altitude="12 meters",
)

print(coord.altitude)
# -> <Quantity(0.012, 'kilometer')>

# Сериализация в JSON
print(coord.model_dump_json())
# -> {"latitude":"39.905705 degree","longitude":"-75.166519 degree","altitude":"0.012 kilometer"}


📦Установка:
pip install pydantic-pint


#Python #Pydantic #Pint #DataValidation #DataScience #Physics #Engineering #Backend #OpenSource #DevTools

📱Ссылка на репозиторий:
https://github.com/tylerh111/pydantic-pint
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42🔥1
📱Praxist.

Praxist
- это автономная исследовательская система («персональная R&D-команда»), автоматизирующая процесс научного поиска и экспериментов.

В отличие от стандартного AutoML, который просто перебирает гиперпараметры в фиксированных рамках, или обычных LLM-промптов, Praxist берет на себя весь исследовательский цикл целиком. Система разворачивает команду параллельных агентов, которые выдвигают конкурирующие гипотезы, модифицируют код, валидируют результаты в изолированных тестах и передают доказанный опыт из поколения в поколение.

🔹Ключевые возможности:

🔘Параллельные исследовательские агенты (Peers): Одновременное исследование альтернативных архитектур, алгоритмов и подходов без взаимной блокировки.

🔘Эволюционный синтез поколений: Накопленные артефакты и выводы предыдущего поколения структурируются в виде доказательной базы и определяют повестку следующей итерации исследований.

🔘Слои зрелости решений (Evidence Lanes): Кандидаты ранжируются по жестким контрактам валидации и распределяются по стадиям (инкубатор, фронтир, проверенные решения / Gems) с учетом компромиссов по Парето при оптимизации нескольких метрик.

🔘Quality-Diversity (QD) и Deep Innovation Gate (DIG): Встроенные эвристики диверсификации, которые не дают системе застрять в локальных оптимумах и стимулируют принципиально новые направления поиска.

🔘Глубокая интеграция с Codex и Claude Code: Практически бесшовная работа через агентские скиллы (команда $praxist-takeover в Codex берет существующий репозиторий, валидирует метрики и автоматически настраивает тестовый контур).

🔘Воспроизводимость и аудит: Исходный код проекта изолирован от случайных поломок, метрики фиксируются до начала прогона (preregistration), а каждый положительный результат сопровождается полной цепочкой воспроизведения (lineage).

💻Быстрый старт:

Установка пакета и запуск мастера первоначальной настройки:

pip install "praxist[agents,codex]"
praxist setup --interactive --install-skills codex


Запуск задачи через Codex в корне готового проекта:

$praxist-takeover
Optimize <целевая метрика и направление> while preserving <ограничения>.
Use 4 peers for up to 5 generations within $50 budget.


Мониторинг и управление активными исследованиями:

# Просмотр статуса в реальном времени
praxist --monitor --latest

# Остановка или возобновление задачи
praxist stop <run_id>
praxist resume <run_dir>


✅Проект распространяется под лицензией Fair Source 1.0 (бесплатно для некоммерческих академических исследований и компаний с годовым доходом до $1 млн).

#Praxist #AIAgents #MachineLearning #Research #Codex #AutoML #Python #DataScience #OpenSource #DevTools #Algorithms

📱Ссылка на репозиторий:
https://github.com/sapientinc/PRAXIST
Please open Telegram to view this post
VIEW IN TELEGRAM
👍33⚡2
📱SGLang.

SGLang
- это высокопроизводительный движок и фреймворк для инференса и развертывания больших языковых (LLM) и мультимодальных моделей (VLM), разработанный сообществом LMSYS.

Проект оптимизирован как для запуска моделей на одиночных потребительских видеокартах, так и для масштабирования на гигантские серверные кластеры. SGLang стал де-факто индустриальным стандартом для инференса MoE-архитектур (включая модели линейки DeepSeek) и генерации роллаутов (rollout engine) на этапе обучения с подкреплением (RL).

🔹Ключевые возможности и архитектурные решения:

🔘RadixAttention: Умное автоматическое кэширование KV-кэша по дереву префиксов (Radix tree). Ускоряет инференс в разы в сценариях с общими системными промптами, few-shot примерами, агентскими циклами и multi-turn диалогами.

🔘Архитектура PD Disaggregation: Разделение стадий prefill (обработка входного контекста) и decode (потоковая генерация токенов) по разным GPU-нодам для максимальной утилизации вычислительной мощности.

🔘Параллелизм масштаба дата-центров: Полная поддержка Tensor, Pipeline, Data и масштабируемого Expert Parallelism (EP) для MoE-моделей на десятках и сотнях GPU (включая стойки NVIDIA GB200/GB300 NVL72).

🔘Быстрый структурированный вывод: Генерация строгого JSON и следование схемам до 3 раз быстрее аналогов благодаря оптимизированным конечным автоматам (Compressed FSM).

🔘Day-0 поддержка новейших моделей: Мгновенная адаптация топовых открытых моделей (DeepSeek-V3/R1/V4, Kimi K3, Nemotron 3, GLM, LLaVA, диффузионных генераторов видео и изображений WAN и Qwen-Image).

🔘Аппаратная всеядность: Оптимизирован под архитектуры NVIDIA (от RTX 4090/5090 до H100/B200/GB300), AMD Instinct (MI300X, MI355), Google TPU (через бэкенд на JAX) и Intel Xeon.

🔘Основа для RL и Post-Training: Служит высокоскоростным бэкендом генерации ответов во фреймворках обучения с подкреплением (verl, Miles, AReaL, slime).

💻Быстрый старт:

Установка:
pip install "sglang[all]"


Запуск OpenAI-совместимого сервера инференса:

python -m sglang.launch_server \
--model-path deepseek-ai/DeepSeek-V3 \
--port 30000 \
--tp 8


Отправка запроса через Python:

import openai

client = openai.Client(base_url="http://127.0.0.1:30000/v1", api_key="None")

response = client.chat.completions.create(
model="default",
messages=[{"role": "user", "content": "Объясни квантовые вычисления простыми словами."}],
temperature=0.7,
)
print(response.choices[0].message.content)


#SGLang #LLM #AI #Inference #MachineLearning #DeepSeek #NVIDIA #AMD #OpenSource #DevTools #Python #DataScience

📱Ссылка на репозиторий:
https://github.com/sgl-project/sglang
Please open Telegram to view this post
VIEW IN TELEGRAM
4⚡1👍1
📱Plotex.

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

Главное преимущество библиотеки — она полностью автономна: базовый функционал не требует никаких внешних зависимостей и библиотек вроде matplotlib или numpy. При этом она способна превратить обычную консоль в полноценную графическую панель.

🔹Ключевые возможности:

🔘Широкий набор типов графиков:

✔️Базовые: линейные графики (line), точечные (scatter), стержневые (stem).

Столбчатые и статистические: гистограммы, боксплоты (box plots), накопленные (stacked) и плавающие столбчатые диаграммы.

✔️Специализированные: тепловые карты (heatmaps), матрицы ошибок (confusion matrices), полосы погрешностей (error bars) и индикаторы.

✔️Финансовые: японские свечи (candlestick) и шкалы дат/времени.

🔘Субсимвольное разрешение: Разбивает знакоместо символа на матрицу суб-точек (включая символы Брайля), позволяя отображать в 4–8 раз больше точек данных на том же экранном пространстве.

🔘Интерактивность и медиа: Поддерживает анимацию, потоковое обновление графиков в реальном времени (live stream), рендеринг картинок, GIF и даже воспроизведение видео со звуком (включая ролики с YouTube).

🔘Сетки и сабплоты (Subplots): Позволяет верстать сложные многопанельные дашборды с любой степенью вложенности, индивидуальными темами и масштабом.

🔘Гибкая стилизация: 12 готовых тем оформления, настройка осей, меток, легенды, а также поддержка собственных цветовых палитр терминала.

🔘Готовый CLI-инструмент: Позволяет строить графики из входного потока данных прямо в командной строке без написания Python-кода.

💻Пример использования:

import plotext as plt

# Данные для графика
y = [1, 5, 3, 8, 4, 9, 6]

# Настройка и вывод
plt.plot(y)
plt.title("График в терминале")
plt.theme("dark")
plt.show()


📦Установка:

pip install plotext


#Python #Plotext #DataVisualization #Terminal #CLI #DataScience #DevTools #OpenSource #Console #Analytics

📱Ссылка на репозиторий:
https://github.com/piccolomo/plotext
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡32
📱Hyperresearch.

Hyperresearch
- это специализированная среда и фреймворк (research harness) для Claude Code, превращающий ассистента в автономного агента глубоких исследований (Deep Research Agent) с автоматической верификацией источников и защитой от галлюцинаций.

Инструмент берет один исследовательский промпт и прогоняет его через адаптивный 16-шаговый пайплайн: от декомпозиции запроса и поиска сотен источников до параллельной критики черновиков и точечного патчинга финального отчета. Все собранные материалы сохраняются в локальное постоянное хранилище, благодаря чему агент «умнеет» от сессии к сессии.

🔹Главные фичи и архитектурные решения:

🔘250+ источников за один прогон: Масштабный охват предметной области с автоматическим поиском пробелов (gap-fill) и отслеживанием цепочек цитирований (citation chasing).

🔘Аудит независимости (Independence Audit): Система группирует синонимичные копии и перепечатки — пять повторов одного пресс-релиза в разных СМИ считаются за один источник, исключая иллюзию консенсуса.

🔘Верификация цитат и проверка отзывов (Retraction Check): Встроенный скептический модуль проверяет, действительно ли источник подтверждает написанный тезис. Выдуманные цитаты или ссылки на отозванные научные статьи блокируют выпуск отчета.

🔘Враждебная критика (Adversarial by design): Четыре агента-критика параллельно атакуют готовый драфт (по диалектике, глубине, ширине охвата и соответствию задаче). Агент-патчер ограничен правами [Read, Edit] и может вносить только точечные хирургические правки — переписать отчет целиком он физически не может.

🔘Академический поиск в один запрос: Команда hpr scholar search одновременно опрашивает OpenAlex, Crossref, CORE, DOAB, ClinicalTrials.gov, SEC EDGAR и FRED, возвращая единый дедуплицированный список (статьи, монографии, клинические испытания, отчеты регуляторов).

🔘Легальный доступ к полным текстам (Open Access): При обнаружении пейволла Hyperresearch автоматически ищет легальные открытые копии через Unpaywall, Europe PMC и CORE, выгружая полный текст вместо короткого абстракта.

🔘Постоянное хранилище (Vault): Статьи и заметки сохраняются в формате Markdown + SQLite (с поддержкой FTS, PageRank-графа ссылок и векторного поиска). Хранилище доступно вне Claude Code через встроенный MCP-сервер и локальный веб-интерфейс.

🔘Защита от Prompt Injection: Весь спарсенный веб-контент изолируется в теги <untrusted-source>, гарантируя, что внедренные на страницах инструкции не перехватят управление агентом.

⏱️Режимы работы (Tiers):

🔘Light (~30–40 мин): Компактный 5-шаговый маршрут для фактологических справок и экспресс-сравнений.

🔘Full (~1.5–2.5 ч): Полный 16-шаговый цикл с глубоким анализом, оппонирующими критиками и аудитом цитирований (55–130 источников).

🔘Dissertation (экспериментальный, ~4–8 ч): Разбивка на 4–10 глав, анализ 300–450 источников и формирование объемных документов на 25 000 – 80 000 слов.

💻Быстрый старт:

Установка:
cd your-project
pip install hyperresearch && hyperresearch install


Запуск исследования в интерфейсе Claude Code:

/hyperresearch Объясни состояние рынка квантовых вычислений на ионных ловушках


✅Проект написан на Python (3.11–3.14) и распространяется под открытой лицензией MIT.

#Hyperresearch #ClaudeCode #DeepResearch #AIAgents #Anthropic #Python #Research #LLM #OpenSource #DevTools #DataScience

📱Ссылка на репозиторий:
https://github.com/jordan-gibbs/hyperresearch
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡2👍21
📱Taste-Bench.

Taste-Bench
- это бенчмарк для языковых моделей и ИИ-агентов, оценивающий их инженерную интуицию и «вкус» (taste) — способность выбирать верное направление на ключевых развилках при решении сложных долгосрочных задач (long-horizon tasks).

В длительных циклах автономной разработки или ML-исследований неверное решение на раннем этапе часто кажется вполне логичным в моменте, но в итоге заводит агента в тупик и сжигает весь бюджет контекста. Taste-Bench проверяет, способна ли модель почувствовать правильный вектор развития еще до того, как последствия станут очевидными.

🧩Как устроен датасет:

Модели на вход подается описание задачи, накопленный контекст работы агента до развилки (до 64k токенов) и два альтернативных варианта следующего действия (A и B). Задача — выбрать шаг, который в скрытом продолжении реальной траектории привел к успеху.

Все 502 вопроса бенчмарка добыты напрямую из логов реальных запусков без ручной разметки экспертами:
✔️
• 🔀 Параллельные развилки (Parallel forks): Независимые попытки решить одну задачу, разошедшиеся в определенной точке с противоположным итоговым результатом (одна прошла тесты, вторая упала).

🔘Развилки с откатом (Detour forks): Ситуации, где агент выбрал ложный путь, столкнулся с ошибкой, откатился и нашел рабочее решение. Сравнивается тупиковое действие и правильный корректирующий шаг.

🔘Строгая фильтрация: Исключены тривиальные развилки (где очевиден выбор без контекста) и спорные случаи (где судьи-модели не сошлись в оценке). 390 вопросов взяты из SWE-bench и SWE-bench Pro (software engineering), а 112 — из METR MALT / RE-Bench / HCAST (ML-исследования).

⚖️Бескомпромиссный протокол тестирования:

Оценка проводится по протоколу paired_order_v1: каждый вопрос задается дважды с перестановкой вариантов (A/B и B/A). Балл засчитывается только при верном выборе в обоих случаях.
• Случайное угадывание дает всего 25%.
• Стратегия «всегда выбирать A» дает 0%.

🏆Результаты лидерборда (Frontier Models):
Даже ведущие модели с трудом преодолевают планку в 50–60% точности:


✔️GPT-5.6 Sol — 59.7%

✔️GPT-5.5 — 59.5%

✔️Claude Opus 5 — 55.5%

✔️Grok 4.5 — 54.6%

✔️GLM-5.2 — 53.9%

✔️Claude Sonnet 5 — 51.6%

✔️DeepSeek V4 Flash — 43.3%

💻Быстрый старт:

git clone https://github.com/wbopan/tastebench && cd tastebench
uv sync

# Загрузка датасета (требуется доступ на Hugging Face)
uv run tb download

# Запуск оценки модели через OpenAI-совместимый эндпоинт
export TASTEBENCH_API_KEY="your-key"
uv run tb run --model gpt-5.5 --api https://api.openai.com/v1/chat/completions

# Подсчет итогового скора
uv run tb score runs/gpt-5.5/<date>


Датасет доступен в библиотеке datasets:

from datasets import load_dataset
rows = load_dataset("wenbopan/taste-bench", "engineering", split="test", revision="v1.0")


✅Код бенчмарка распространяется под лицензией MIT, данные — под CC BY 4.0.

#TasteBench #Benchmark #AIAgents #LLM #MachineLearning #SWEbench #SoftwareEngineering #DataScience #OpenSource #DevTools #Eval

📱Ссылка на репозиторий:
https://github.com/wbopan/tastebench
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥21
📱Flowfile.

Flowfile
- это инструмент для визуального построения ETL-пайплайнов, который компилируется в высокопроизводительный код на Polars.

Главная идея проекта — стереть грань между визуальным no-code/low-code и классической разработкой: визуальный холст (canvas) с нодами и Python-код являются двумя синхронными представлениями одного и того же графа вычислений.

Flowfile работает без тяжелых кластеров (вроде Apache Spark): все преобразования выполняются in-process на базе Polars, утилизируя ресурсы одной машины на максимум.

🔹Ключевые возможности:

🔘Холст + Код (Dual-Mode):

✔️49 готовых типов узлов: джойны, нечеткое сопоставление (fuzzy matching), сводные таблицы (pivot), оконные функции, агрегации, древовидное разворачивание (bill-of-materials explosion) и ветвление.

✔️Редактор формул с 95 встроенными функциями.

✔️Узел произвольного Polars-кода для специфической логики, не покрытой стандартными блоками.

✔️Живое интерактивное превью данных (Live Data Preview) на каждом этапе пайплайна.

🔤Генерация чистого Python-кода: Вы можете быстро спроектировать логику визуально, а затем экспортировать её в лаконичный независимый скрипт на чистом Polars (import polars as pl) без необходимости тащить Flowfile на прод. Графы сохраняются в человекочитаемом YAML для версионирования в Git.

🔤Встроенный AI-ассистент: Позволяет генерировать и модифицировать структуру пайплайна прямо на холсте по текстовому описанию задачи (поддерживаются ключи OpenAI, Anthropic, Google, Groq, OpenRouter или локальная Ollama).

🔤Каталог данных на Delta Lake и SQL: Встроенный каталог таблиц с поддержкой версионирования, Time Travel и предикатного пушдауна (pushdown) в виртуальных таблицах. Для исследовательской работы есть встроенный SQL-редактор (Polars SQLContext) и модуль визуализации графиков Graphic Walker (аналог Tableau).

🔤Источники и коннекторы: Локальные файлы (CSV, Parquet, Excel, JSON), СУБД (PostgreSQL, DuckDB, MySQL, SQLite, SQL Server), облачные хранилища (S3, GCS, ADLS с поддержкой Delta Lake и Iceberg на чтение), Kafka (consumer) и внешние REST API.

🔤Запуск в любом окружении:

✔️В браузере: мгновенная работа через WebAssembly / Pyodide на demo.flowfile.org без установки и сервера;

✔️Локально на ноутбуке: установка в одну команду через pip или готовые десктопные приложения (Tauri);

✔️В команде: развертывание через Docker Compose с авторизацией, ролями пользователей, общим каталогом, планировщиком задач (scheduler) и изолированными Jupyter-подобными Python-кернелами.

💻Пример кода на Python:

Вы можете описать пайплайн кодом через API в стиле Polars и в один вызов открыть его в визуальном редакторе:

import flowfile as ff
from flowfile import col, open_graph_in_editor

# Загрузка и трансформация данных
df = ff.from_dict({
"category": ["A", "B", "A", "C", "B"],
"value": [100, 200, 150, 300, 250]
})

result = (
df.filter(col("value") > 150)
.with_columns((col("value") * 2).alias("double_value"))
.group_by("category")
.agg(col("value").sum().alias("total"))
)

# Открытие собранного графа в визуальном интерфейсе
open_graph_in_editor(result.flow_graph)


🚀Быстрый запуск:

Установка и запуск UI на локальной машине (Python 3.10–3.13):

pip install Flowfile
flowfile run ui


Командный запуск в Docker Compose:


git clone https://github.com/edwardvaneechoud/Flowfile.git
cd Flowfile
docker compose up -d
# Веб-интерфейс будет доступен по адресу http://localhost:8080


✅Проект распространяется под свободной лицензией MIT.

#Flowfile #Python #Polars #ETL #DataEngineering #DataScience #SQL #DeltaLake #DuckDB #OpenSource #DevTools #DataPipelines

📱Ссылка на репозиторий:
https://github.com/Edwardvaneechoud/Flowfile
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41