It's been a long time since my last post, and it would be appropriate that I post about whatever it is that I've been working on. But I won't. I'm writing this post only to tell you about an interesting new python library I stumbled upon.
Baker, in their own words, "lets you easily add a command line interface".
In other words, it lets you expose your python utility functions to your favorite shell.
The only requirements are that:
- Your function must accept string arguments (an exception: it accepts ints/floats if you provide a default argument)
- Your function must print its output to stdout
Okay, so these are a little limiting. But the interesting part about Baker is not its implementation (which is still a bit clunky and basic), but rather its concept. Here's a small piece of code I wrote:
@baker.command def substr(text, start, end, step=1): print text[int(start):int(end):step]
if __name__ == '__main__': baker.run()
And here's how I use it from the command line:
> baketest.py substr "Hello World!" 1 10
> baketest.py substr "Hello World!" 1 10 --step 2
The simplicity and intuitiveness of this interface really appealed to me. Hopefully this will catch on, and we'll see more python scripts providing command-line interface, just because it's very easy.