base.py 文件源码

python
阅读 20 收藏 0 点赞 0 评论 0

项目:niceman 作者: ReproNim 项目源码 文件源码
def backend_help(resource_type=None):
    """
    Helper function for displaying backend help listing for interface commands.

    To use, add this to the interface argparse parameters:

        backend=Parameter(
            args=("-b", "--backend"),
            nargs="+",
            doc=backend_help()
        )

    """
    types = ResourceManager._discover_types() if not resource_type else [resource_type]

    help_message = "One or more backend parameters in the form KEY=VALUE. Options are: "
    help_args = []

    for module_name in types:
        class_name = ''.join([token.capitalize() for token in module_name.split('_')])
        try:
            module = import_module('niceman.resource.{}'.format(module_name))
        except ImportError as exc:
            raise ResourceError(
                "Failed to import resource {}: {}.  Known ones are: {}".format(
                    module_name,
                    exc_str(exc),
                    ', '.join(ResourceManager._discover_types()))
            )
        cls = getattr(module, class_name)
        if not issubclass(cls, Resource):
            lgr.debug(
                "Skipping %s.%s since not a Resource. Consider moving away",
                module, class_name
            )
            continue
        args = attr.fields(cls)
        for arg in args:
            if 'doc' in arg.metadata:
                help_args.append('"{}" ({})'.format(arg.name, arg.metadata['doc']))

    return help_message + ", ".join(help_args)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号