예제 #1
0
def _method_code(method_name, method, url, args, kwargs, url_kw, defaults, success_code, keywords, doc_string, keyword_map):
    params_kw = set(args) - (set(defaults) | set(url_kw) | {"self"}) - IGNORE_KW
    url_kw = set(url_kw) - IGNORE_KW

    defaults = {k: v if type(v) is not str else "'%s'" % v for k, v in defaults.items()}
    args = [arg for arg in args if arg not in {common.KW_HEADERS, common.KW_CREDENTIALS, common.KW_ENFORCER}]
    assert not ((common.KW_FILE in args) and (common.KW_LIST in args)), \
        "Can only have {} or {} in method args".format(common.KW_FILE, common.KW_LIST)

    if doc_string is not None:
        # Fix doc string indentation.
        doc_string = '\n    '.join(doc_string.split('\n'))

    for key, value in kwargs.iteritems():
        if isinstance(value, six.string_types):
            kwargs[key] = '"{}"'.format(value)

    return METHOD_TEMPLATE.render(  # pylint: disable=no-member
        method_name=names.to_variable_name(method_name),
        method=method,
        url=url,
        args=args,
        kwargs=kwargs,
        url_kw=url_kw,
        params_kw=params_kw,
        defaults=defaults,
        success_code=success_code,
        kw_file=common.KW_FILE,
        kw_list=common.KW_LIST,
        keywords=keywords,
        doc_string=doc_string,
        keyword_map=keyword_map,
    )
예제 #2
0
파일: client.py 프로젝트: l-grebe/hammock
def _method_code(method_name, method, url, args, kwargs, url_kw, defaults, success_code, keywords, doc_string, keyword_map):
    params_kw = set(args) - (set(defaults) | set(url_kw) | {"self"}) - IGNORE_KW
    url_kw = set(url_kw) - IGNORE_KW

    defaults = {k: v if type(v) is not str else "'%s'" % v for k, v in defaults.items()}
    args = [arg for arg in args if arg not in {common.KW_HEADERS, common.KW_CREDENTIALS, common.KW_ENFORCER}]
    assert not ((common.KW_FILE in args) and (common.KW_LIST in args)), \
        "Can only have {} or {} in method args".format(common.KW_FILE, common.KW_LIST)

    if doc_string is not None:
        # Fix doc string indentation.
        doc_string = '\n    '.join(doc_string.split('\n'))

    for key, value in kwargs.iteritems():
        if isinstance(value, six.string_types):
            kwargs[key] = '"{}"'.format(value)

    return METHOD_TEMPLATE.render(  # pylint: disable=no-member
        method_name=names.to_variable_name(method_name),
        method=method,
        url=url,
        args=args,
        kwargs=kwargs,
        url_kw=url_kw,
        params_kw=params_kw,
        defaults=defaults,
        success_code=success_code,
        kw_file=common.KW_FILE,
        kw_list=common.KW_LIST,
        keywords=keywords,
        doc_string=doc_string,
        keyword_map=keyword_map,
    )
예제 #3
0
 def route_cli_commands_map(cls):
     mapping = {}
     for route_method in cls.iter_route_methods():
         method_name = names.to_variable_name(route_method.__name__)
         command_name = route_method.cli_command_name
         if command_name is False:
             mapping[method_name] = False
         elif route_method.client_methods:
             for name in route_method.client_methods:
                 mapping[name] = names.to_command(name)
         else:
             mapping[method_name] = command_name or names.to_command(route_method.__name__)
     return mapping
예제 #4
0
 def route_cli_commands_map(cls):
     mapping = {}
     for route_method in cls.iter_route_methods():
         method_name = names.to_variable_name(route_method.__name__)
         command_name = route_method.cli_command_name
         if command_name is False:
             mapping[method_name] = False
         elif route_method.client_methods:
             for name in route_method.client_methods:
                 mapping[name] = names.to_command(name)
         else:
             mapping[method_name] = command_name or names.to_command(route_method.__name__)
     return mapping
예제 #5
0
 def client_variable_name(cls):
     return cls.CLIENT_VAR_NAME or names.to_variable_name(cls.name())
예제 #6
0
def _package_tuple(package):
    """
    :return: a tuple of <variable_name>, <class_name>, <path>
    """
    return names.to_variable_name(package.class_name), package.class_name, package.path
예제 #7
0
 def client_variable_name(cls):
     return names.to_variable_name(cls.name())
예제 #8
0
파일: client.py 프로젝트: kindsof/hammock
def _package_tuple(package):
    """
    :return: a tuple of <variable_name>, <class_name>, <path>
    """
    return names.to_variable_name(
        package.class_name), package.class_name, package.path
예제 #9
0
파일: resource.py 프로젝트: kindsof/hammock
 def client_variable_name(cls):
     return names.to_variable_name(cls.name())
예제 #10
0
파일: args.py 프로젝트: l-grebe/hammock
 def _parser_name(self):
     return names.to_variable_name(self.name)