You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A tiny lib for nice, handy prompts, primarily for Ops scripts.
This README contains all documentation.
Usage
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
importtinyprompt# 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')defmy_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)defmy_func2():
"""another func"""print('hi')
defotherfunc():
# yes, it's on purposetinyprompt.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)
defmain():
my_func() # skippablemy_func2() # skippableotherfunc() # not skippable, but not reached on quitif__name__=='__main__':
main()
Contributing
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