A tiny lib for nice, handy prompts, primarily for Ops scripts.
This README contains all documentation.
pip install tinyprompt
Use tinyprompt.skippable to wrap script steps with a Yes / Skip / Quit prompt. This is very useful for simple scripted operations where - yes is the normal case - skip can be used to resume after a failure or abort - quit is used to abort when issues are encountered
import tinyprompt
# note: tinyprompt.skippable passes arguments through verbatim, but it's
# not guaranteed to return a meaningful result
# `quit` does a sys.exit(1) and `skip` makes it return `None`
@tinyprompt.skippable('skippable script step')
def my_func():
"""
Do some things, this docstring will show up as a command description
when the script is run.
The "skippable script step" arg will be uppercased and used as the step
name.
"""
print('this skippable step')
@tinyprompt.skippable('other skippable script step', color=False)
def my_func2():
"""another func"""
print('hi')
def otherfunc():
# yes, it's on purpose
tinyprompt.color_print('red string', tinyprompt.GREEN)
tinyprompt.color_print('yellow string', tinyprompt.BLUE)
tinyprompt.color_print('green string', tinyprompt.GRAY)
tinyprompt.color_print('blue string', tinyprompt.RED)
tinyprompt.color_print('gray string', tinyprompt.YELLOW)
def main():
my_func() # skippable
my_func2() # skippable
otherfunc() # not skippable, but not reached on quit
if __name__ == '__main__':
main()
- All code must pass make test
- All code is autoformatted with black and isort
- Try to write a test whenever you find a bug
- Make your PRs clean. Rebase to avoid merge conflicts and squash fixup commits