コード例 #1
0
def show(ctx, name_only, cmds, under, fields, format, **kwargs):
    """Show the parameters of a command"""
    cmds = cmds or sorted(config.parameters.readonly.keys())
    if under:
        cmds = [cmd for cmd in cmds if cmd.startswith(under)]
    with TablePrinter(fields, format) as tp, Colorer(kwargs) as colorer:
        for cmd_name in cmds:
            if name_only:
                click.echo(cmd_name)
            else:
                cmd = get_command_safe(cmd_name)

                def get_line(profile_name):
                    return " ".join([
                        quote(p)
                        for p in
                        config.parameters.all_settings.get(profile_name, {}).get(cmd_name, [])
                    ])

                if config.parameters.readprofile == "settings-file":
                    args = config.parameters.readonly.get(cmd_name, [])
                else:
                    values = {
                        profile.name: get_line(profile.name)
                        for profile in config.all_enabled_profiles
                    }
                    args = colorer.colorize(values, config.parameters.readprofile)
                if args == [""]:
                    # the command most likely has implicit settings and only
                    # explicit values are asked for. Skip it
                    continue
                if cmd is None:
                    LOGGER.warning("You should know that the command {} does not exist".format(cmd_name))
                args = args or 'None'
                tp.echo(cmd_name, args)
コード例 #2
0
ファイル: alias.py プロジェクト: zpyoung/click-project
def show(name_only, aliases, under, fields, format, **kwargs):
    """Show the aliases"""
    if name_only:
        fields = ['alias']
    aliases = aliases or sorted(config.alias.readonly.keys())
    if under:
        aliases = [alias for alias in aliases if alias.startswith(under)]
    with TablePrinter(fields, format, separator=' , ') as tp, Colorer(kwargs) as colorer:
        for alias in aliases:
            if config.alias.readprofile == "settings-file":
                args = [format(config.alias.readonly.get(alias, {}).get("commands", []))]
            elif "/" in config.alias.readprofile:
                args = [
                    " ".join(command)
                    for command in
                    config.alias.all_settings.get(
                        config.alias.readprofile,
                        {}).get(alias)["commands"]
                ]
            else:
                all_values = [
                    (profile.name, config.alias.all_settings.get(profile.name, {}).get(alias))
                    for profile in config.all_enabled_profiles
                ]
                all_values = [(profile, value) for profile, value in all_values
                              if value is not None]
                last_profile, last_value = all_values[-1]
                last_command = last_value["commands"]
                args = [colorer.apply_color(" ".join(map(quote, token)), last_profile) for token in last_command]
            tp.echo(alias, args)
コード例 #3
0
def show(fields, format, **kwargs):
    """List the path of all custom commands."""
    with TablePrinter(fields, format) as tp, Colorer(kwargs) as colorer:
        for profile in config.all_directory_profiles:
            for plugin in profile.plugin_source.list_plugins():
                tp.echo(colorer.apply_color(plugin, profile.name),
                        profile.plugin_short_doc(plugin) or "")
コード例 #4
0
def show(ctx, name_only, cmds, all, fields, format, **kwargs):
    """Show the flow dependencies of a command"""
    show_empty = len(cmds) > 0
    if all:
        cmds = cmds or sorted(get_sub_commands(ctx, config.main_command))
    else:
        cmds = cmds or sorted(config.flowdeps.readonly.keys())
    with TablePrinter(fields, format) as tp, Colorer(kwargs) as colorer:
        for cmd in cmds:
            if name_only:
                click.echo(cmd)
            else:
                if all:
                    deps = get_flow_commands_to_run(cmd)
                    formatted = " ".join(quote(p) for p in deps)
                else:
                    values = {
                        profile.name: " ".join([
                            quote(p) for p in config.flowdeps.all_settings.get(
                                profile.name, {}).get(cmd, [])
                        ])
                        for profile in config.all_enabled_profiles
                    }
                    args = colorer.colorize(values,
                                            config.flowdeps.readprofile)
                    formatted = " ".join(args)
                if show_empty:
                    formatted = formatted or "None"
                if formatted:
                    tp.echo(cmd, formatted)
コード例 #5
0
def show(ctx, name_only, cmds, full, under, fields, format, **kwargs):
    """Show the parameters of a command"""
    cmds = cmds or sorted(config.parameters.readonly.keys())
    if under:
        cmds = [cmd for cmd in cmds if cmd.startswith(under)]
    with TablePrinter(fields, format) as tp, Colorer(kwargs, full) as colorer:
        for cmd_name in cmds:
            if name_only:
                click.echo(cmd_name)
            else:
                cmd = get_command_safe(cmd_name)

                def get_line(level_name):
                    return " ".join([
                        quote(p) for p in config.parameters.all_settings.get(
                            level_name, {}).get(cmd_name, [])
                    ])

                if config.parameters.readlevel == "settings-file":
                    args = config.parameters.readonly.get(cmd_name, [])
                elif "/" in config.parameters.readlevel:
                    args = get_line(config.parameters.readlevel)
                else:
                    values = {
                        level_name: get_line(level_name)
                        for level_name in colorer.level_to_color
                    }
                    args = colorer.colorize(values,
                                            config.parameters.readlevel)
                if cmd is None:
                    LOGGER.warning(
                        "You should know that the command {} does not exist".
                        format(cmd_name))
                args = args or 'None'
                tp.echo(cmd_name, args)
コード例 #6
0
def _show(**kwargs):
    """Link the list recipes"""
    with Colorer(kwargs) as colorer:
        for profile in config.root_profiles:
            for name in profile.recipe_link_names:
                message = name
                enabled = profile.recipeislinkenabled(name)

                message += " ({})".format({
                    True: "enabled",
                    False: "disabled",
                    None: "implicitly disabled"
                }[enabled])
                colorer.echo(message, profile.name)
コード例 #7
0
def show(fields, format, link, order, recipes, enabled_only, disabled_only,
         **kwargs):
    """List the recipes and some info about them"""
    config_recipes = set(config.recipe.readonly.keys())
    avail_recipes = set([r.short_name for r in config.all_recipes])
    if not fields:
        fields = list(get_option_choices('fields'))
        if not link:
            fields.remove('link')
        if not order:
            fields.remove('order')

    if not recipes:
        for profile in config.root_profiles:
            config_recipes |= profile.recipe_link_names
        recipes = config_recipes | avail_recipes
    if not recipes:
        LOGGER.status("No recipe yet")
        exit(0)
    with Colorer(kwargs) as colorer, TablePrinter(fields, format) as tp:
        for recipe_name in sorted(recipes):
            profiles = ", ".join([
                click.style(profile.name, **colorer.get_style(profile.name))
                for profile in config.root_profiles
                if profile.has_recipe(recipe_name)
            ])
            link_profiles = ", ".join([
                profile.name for profile in config.root_profiles
                if profile.has_recipe_link(recipe_name)
            ])
            profile = colorer.last_profile_of_settings(
                recipe_name,
                config.recipe.all_settings,
            )
            recipe_enabled = config.is_recipe_enabled(recipe_name)
            if ((not enabled_only or recipe_enabled)
                    and (not disabled_only or not recipe_enabled)):
                profile_style = colorer.get_style(profile) if profile else {}

                tp.echo(
                    click.style(recipe_name,
                                fg="green" if recipe_enabled else "red"),
                    (profile and click.style(profile, **profile_style))
                    or "Unset",
                    profiles or "Undefined",
                    link_profiles,
                    config.get_recipe_order(recipe_name),
                )
コード例 #8
0
ファイル: trigger.py プロジェクト: hobeika/click-project
def show(name_only, triggers, position, **kwargs):
    """Show the triggers"""
    show_triggers = triggers or sorted(config.triggers.readonly.keys())
    with Colorer(kwargs) as colorer:
        for triggers_ in show_triggers:
            if name_only:
                click.echo(triggers_)
            else:
                values = {
                    profile.name:
                    format(config.triggers.all_settings[profile.name].get(
                        triggers_, {}).get(position, []))
                    for profile in config.all_enabled_profiles
                }
                args = colorer.colorize(values, config.triggers.readprofile)
                echo_key_value(triggers_, " , ".join(args), config.alt_style)
コード例 #9
0
def show(fields, format, **kwargs):
    """Show all the custom commands paths"""
    with Colorer(kwargs) as colorer, TablePrinter(fields, format) as tp:
        values = {
            profile.name: format_paths(
                config.customcommands.all_settings.get(profile.name, {}).get(
                    "pythonpaths", []))
            for profile in config.all_enabled_profiles
        }
        args = colorer.colorize(values, config.customcommands.readprofile)
        tp.echo("pythonpaths", " ".join(args))
        values = {
            profile.name: format_paths(
                config.customcommands.all_settings.get(profile.name, {}).get(
                    "executablepaths", []))
            for profile in config.all_enabled_profiles
        }
        args = colorer.colorize(values, config.customcommands.readprofile)
        tp.echo("executablepaths", " ".join(args))
コード例 #10
0
def show(ctx, name_only, launchers, all, fields, format, **kwargs):
    """Show the launchers"""
    launchers = launchers or sorted(config.settings.get("launchers", {}))
    with TablePrinter(fields, format) as tp, Colorer(kwargs, all) as colorer:
        for launcher_name in launchers:
            if name_only:
                click.echo(launcher_name)
            else:
                if config.launchers.readlevel == "settings-file":
                    args = config.launchers.readonly.get(launcher_name, [])
                else:
                    values = {
                        level_name: " ".join([
                            quote(p) for p in config.launchers.
                            all_settings[level_name].get(launcher_name, [])
                        ])
                        for level_name in colorer.level_to_color
                    }
                    args = colorer.colorize(values, config.launchers.readlevel)
                if args and args[0]:
                    tp.echo(launcher_name, args)
コード例 #11
0
def show(ctx, name_only, launchers, fields, format, **kwargs):
    """Show the launchers"""
    launchers = launchers or sorted(config.settings.get("launchers", {}))
    with TablePrinter(fields, format) as tp, Colorer(kwargs) as colorer:
        for launcher_name in launchers:
            if name_only:
                click.echo(launcher_name)
            else:
                if config.launchers.readprofile == "settings-file":
                    args = config.launchers.readonly.get(launcher_name, [])
                else:
                    values = {
                        profile.name: " ".join([
                            quote(p) for p in config.launchers.all_settings[
                                profile.name].get(launcher_name, [])
                        ])
                        for profile in config.all_enabled_profiles
                    }
                    args = colorer.colorize(values,
                                            config.launchers.readprofile)
                if any(args):
                    tp.echo(launcher_name, args)
コード例 #12
0
ファイル: triggers.py プロジェクト: cfecherolle/click-project
def show(name_only, triggers, position, **kwargs):
    """Show the triggers"""
    show_triggers = triggers or sorted(config.triggers.readonly.keys())
    with Colorer(kwargs) as colorer:
        for triggers_ in show_triggers:
            if name_only:
                click.echo(triggers_)
            else:
                values = {
                    level_name:
                    format(config.triggers.all_settings[level_name].get(
                        triggers_, {}).get(position, []))
                    for level_name in colorer.level_to_color
                }
                args = colorer.colorize(values, config.triggers.readlevel)
                if args and not args[0]:
                    if triggers_ in triggers:
                        args = ["None"]
                    else:
                        args = None
                if args:
                    echo_key_value(triggers_, " , ".join(args),
                                   config.alt_style)
コード例 #13
0
 def show(fields, format, keys, all, **kwargs):
     """Show the values"""
     keys = keys or (sorted(config.settings.get(settings_name, {}))
                     if all else sorted(
                         getattr(config, settings_name).readonly.keys()))
     with TablePrinter(fields, format) as tp, Colorer(kwargs,
                                                      all) as colorer:
         for key in keys:
             if getattr(config, settings_name).readlevel == "settings-file":
                 args = [
                     format(
                         getattr(config, settings_name).readonly.get(
                             key, {}).get("commands", []))
                 ]
             elif "/" in getattr(config, settings_name).readlevel:
                 args = getattr(config, settings_name).all_settings.get(
                     getattr(config, settings_name).readlevel,
                     {}).get(key, {}).get("value")
                 if args is None:
                     continue
             else:
                 all_values = [
                     (level,
                      getattr(config,
                              settings_name).all_settings.get(level,
                                                              {}).get(key))
                     for level in colorer.level_to_color.keys()
                 ]
                 all_values = [(level, value) for level, value in all_values
                               if value is not None]
                 if not all_values:
                     # noting to show for this key
                     continue
                 last_level, last_value = all_values[-1]
                 value = last_value["value"]
                 args = colorer.apply_color(value, last_level)
             tp.echo(key, args)