"make-like" библиотека отслеживания зависимостей?

В Makefiles много приятных вещей и много болей в прикладе.

В ходе выполнения различных проектов (я научный сотрудник, "ученый данных" или что-то еще), я часто начинаю с нескольких данных объекты на диске, генерирующие из них различные артефакты, генерирующие артефакты из этих артефактов и т.д.

Было бы неплохо, если бы я мог просто сказать, что "этот объект зависит от этих других объектов", и "этот объект создается следующим образом от этих объектов", а затем попросите Make-like framework обрабатывать детали фактически создавая их, выясняя, какие объекты нужно обновлять, обрабатывая работу с несколькими процессорами (например, Make -j) и т.д. Makefiles может все это сделать, но огромная проблема заключается в том, что все действия должны быть записаны в виде команд оболочки. Это не удобно, если я работаю в R или Perl или в другой подобной среде. Более того, сильное предположение в Make заключается в том, что все цели являются файлами - есть некоторые исключения и обходные пути, но если мои цели являются, например, строк в базе данных, что было бы довольно болезненно.

Чтобы быть ясным, я не буду использовать систему сборки программного обеспечения. Меня интересует то, что (в более общем плане?) Связано с сетями зависимостей артефактов.

Кто-нибудь знает структуру для этих видов веб-сайтов зависимостей? Похоже, что это может быть хорошим инструментом для создания науки о данных и визуального отображения результатов и т.д.

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

Извините за неопределенный вопрос, дайте мне знать, будет ли полезно разъяснение.

Ответы

Ответ 1

Сегодня была объявлена ​​новая система под названием "Дрейк", которая нацелена на эту конкретную ситуацию: http://blog.factual.com/introducing-drake-a-kind-of-make-for-data. Выглядит очень многообещающе, хотя я еще не пробовал его.

Ответ 2

Red-R имеет концепцию программирования потока данных. Я еще не пробовал.