markmuetz/remake

Created Dec 27, 2020 · View the markmuetz/remake repository page

Pure Python build tool.

Want this for your repo?

Render a free sample of any GitHub repo in seconds.

Visualize your own →

Contributors

1

Lines of Code

442

From

Feb 18, 2020

To

Dec 23, 2020

About markmuetz/remake

Remake is a Python-based build tool designed as a modern alternative to Make, specifically tailored for file-based task automation. It allows developers to define complex task graphs using pure Python by subclassing a TaskRule class, where each task can depend on outputs from previous tasks. The tool uses filename formatters to elegantly specify inputs and outputs for each task, making it straightforward to construct intricate workflows without complex configuration files.

The tool is content-aware, meaning it tracks file and task contents to determine which tasks need rerunning. If a task's code or any of its input files change, Remake will automatically rerun that task and any dependent tasks. This smart invalidation system makes Remake particularly well-suited for scientific workflows, where reliably recreating specific output files by running only necessary computations is crucial. It can also generate detailed reports showing how any particular file was produced, providing full traceability through the build process.

Remake can be used either interactively within a Python shell or as a command-line tool, providing flexibility in how users integrate it into their workflows. The project includes comprehensive documentation and demonstrates good software engineering practices with automated testing and code coverage tracking.

Share this video