from bentoml.cli.click_utils import BentoMLCommandGroup, conditional_argument, _echo from bentoml.cli.deployment import get_deployment_sub_command from bentoml.cli.config import get_configuration_sub_command from bentoml.utils import ProtoMessageToDict, reserve_free_port from bentoml.utils.usage_stats import track_cli from bentoml.utils.s3 import is_s3_url from bentoml.yatai.client import YataiClient from bentoml.proto import status_pb2 from bentoml.utils import status_pb_to_error_code_and_message from bentoml.exceptions import BentoMLException try: import click_completion click_completion.init() shell_types = click_completion.DocumentedChoice( click_completion.core.shells) except ImportError: # click_completion package is optional to use BentoML cli, click_completion = None shell_types = click.Choice(['bash', 'zsh', 'fish', 'powershell']) def escape_shell_params(param): k, v = param.split('=') v = re.sub(r'([^a-zA-Z0-9])', r'\\\1', v) return '{}={}'.format(k, v) def run_with_conda_env(bundle_path, command): config = load_saved_bundle_config(bundle_path) metadata = config['metadata']
from aprsd.aprsd import cli CONTEXT_SETTINGS = dict(help_option_names=["-h", "--help"]) @cli.group(help="Click Completion subcommands", context_settings=CONTEXT_SETTINGS) @click.pass_context def completion(ctx): pass # show dumps out the completion code for a particular shell @completion.command(help="Show completion code for shell", name="show") @click.option("-i", "--case-insensitive/--no-case-insensitive", help="Case insensitive completion") @click.argument("shell", required=False, type=click_completion.DocumentedChoice(click_completion.core.shells)) def show(shell, case_insensitive): """Show the click-completion-command completion code""" extra_env = {"_CLICK_COMPLETION_COMMAND_CASE_INSENSITIVE_COMPLETE": "ON"} if case_insensitive else {} click.echo(click_completion.core.get_code(shell, extra_env=extra_env)) # install will install the completion code for a particular shell @completion.command(help="Install completion code for a shell", name="install") @click.option("--append/--overwrite", help="Append the completion code to the file", default=None) @click.option("-i", "--case-insensitive/--no-case-insensitive", help="Case insensitive completion") @click.argument("shell", required=False, type=click_completion.DocumentedChoice(click_completion.core.shells)) @click.argument("path", required=False) def install(append, case_insensitive, shell, path): """Install the click-completion-command completion""" extra_env = {"_CLICK_COMPLETION_COMMAND_CASE_INSENSITIVE_COMPLETE": "ON"} if case_insensitive else {}