Hello HN!

I'm the creator of this tool. It's been around for a few years, but now that it has this new documentation website, I've finally found the confidence to share it around more!

You know how your automation scripts usually start off with a couple of innocent lines of bash? And then before you know it you've got a big clumsy monster that you really hope doesn't break because you're too scared to touch it? And then you have to code & test the repetitive not-all-that-interesting plumbing of sequencing tasks, parse & validate cli input arguments, parse config files, write output files, handling errors, retrying commands on error, running a group of commands in a loop, invoking the cli from python or invoking python from the cli?

pypyr helps with that. With pypyr you create your automation workflows in a human-friendly yaml pipeline.

- Add loops, error-handling & automatic retries to your command & program sequences, without having to write & troubleshoot code.

- Create your own cli app, with your own custom command line arguments, without having to do all that arg parsing & validation yourself.

- Control-of-flow where you conditionally execute or skip steps based upon input expressions & switches.

- Easily work with config files like json, yaml or plain old text to parse & substitute values.

- No-code to low-code way of sequencing commands & programs, while still having the power to drop into full-on Python if you need to express something more complicated.

The reason this exists, is because when you're writing automation scripts, I find myself jumping between bash/shell and a more advanced language like Python to get things done efficiently. For example. . . sometimes a quick sed from the cli is quicker to implement, sometimes more advanced string parsing in Python is necessary - sometimes both things are necessary at different parts in the same automation sequence. Some tools you need to invoke to automate your tasks only have CLIs, other tools only have APIs. . .

The famous Unix philosophy of building programs that do one thing and do them well, have given us a lot of battle-tested amazing utilities that have been around for decades (think curl, grep, awk, sed. . .) Why not use them, rather than reinvent the wheel? So the point of pypyr is to make it easier for you to stitch together those awesome utilities, do some of your own scripting in between them, and generally automate it all without the usual repetitive pain points.

The obvious hard-core developer response is: yeah, I just code that myself, why bother with this? And yes, of course, you totally can code all of the surrounding, boring, repetitive not-all-that-interesting bits of automation code for retries and err handling etc. yourself, but I'm sure you'd rather keep yourself busy with doing cool new algos or functional code, rather than get mired down in automation tasks.

I wrote the 1st code for this years ago when I found myself having to solve the same sort of problems each time I wrote some sort of automation script. . . Over the years it's grown as I've found more & more uses for it and expanded upon it, and because it was open-source from day one pypyr has been blessed with great enhancements from superb contributors over the years who brought ideas, enhancements and fixes that I wouldn't even have thought of. Big shout out to you all!

The source code is here: https://github.com/pypyr/pypyr. If you want to contribute, even just a GitHub star is useful. From the beginning I've made an effort to keep 100% test coverage over both unit & integration tests, and this (although annoying to keep to that sometimes. . .) has been invaluable in preventing regressions & providing steady stability of the tool as it evolved, but let me not break my arm patting myself on the back here. . . this implementation detail is probably not all that interesting unless you're into code.

The new docs website source-code is also open-source, and packaged as a re-usable Hugo static site generator theme.

Feedback, comments and/or ideas to make things better on pypyr itself and also the new website are very welcome. . . Also, if you have questions, feel very free to ask, I'm here to help!