Polimer: фреймворк для автоматизации цепочек вызовов в Python

Фреймворк Polimer использует аннотации типов Python для автоматического построения цепочек вызовов функций, основываясь на соответствие выходных данных одной функции входным данным другой. Он анализирует аннотации, определяющие «полезную нагрузку» (например, 'price_list', 'num_days') а не просто типы данных, для построения дерева зависимостей. Это позволяет разработчику сконцентрироваться на логике, а не на явном управлении вызовами функций.
Polimer: фреймворк для автоматизации цепочек вызовов в Python
Изображение носит иллюстративный характер

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

Polimer упрощает код, особенно в сложных сценариях, где вычисления происходят в несколько этапов, как конвейер. Пример в статье — определение рыночных режимов на основе биржевых котировок. С использованием Polimer, код сокращается до однострочного вызова целевой функции, при этом все необходимые промежуточные шаги выполняются автоматически. Возможна явная директива для выбора пути вычислений в случае неоднозначности зависимостей (например, с разными вариантами конвертации валют).


Новое на сайте