Skip to content

A tiny prompting lib

License

Apache-2.0, Unknown licenses found

Licenses found

Apache-2.0
LICENSE
Unknown
COPYING
Notifications You must be signed in to change notification settings

sirosen/tinyprompt

Repository files navigation

build status Latest Released Version Supported Python Versions License

tinyprompt

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

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()

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

About

A tiny prompting lib

Resources

License

Apache-2.0, Unknown licenses found

Licenses found

Apache-2.0
LICENSE
Unknown
COPYING

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published