Source code for click_utils.help

# -*- coding: utf-8 -*-

import click


[docs]class EnvHelpOption(click.Option): ''' '''
[docs] def get_help_record(self, ctx): ret = super(EnvHelpOption, self).get_help_record(ctx) envvars = self.get_envvar_names(ctx) if envvars: prefix = ' ' if ret[1] else '' return ret[0], ret[1] + prefix + '[env: %s]' % ', '.join(envvars) return ret
[docs] def get_envvar_names(self, ctx): if self.envvar is not None: if isinstance(self.envvar, (list, tuple)): return self.envvar else: return [self.envvar] else: if self.allow_from_autoenv and ctx.auto_envvar_prefix is not None: envvar = '%s_%s' % (ctx.auto_envvar_prefix, self.name.upper()) return [envvar]
[docs]class EnvHelpCommand(click.Command): ''' ''' def __init__(self, *args, **kwargs): patch_options = kwargs.pop('envhelp_patch_options', True) # patch_subcommands = kwargs.pop('envhelp_patch_subcommands', False) super(EnvHelpCommand, self).__init__(*args, **kwargs) if patch_options: for param in self.params: if isinstance(param, click.Option): param.__class__ = EnvHelpOption
# if patch_subcommands: # pass