Revision 320af781 kamaki/cli/__init__.py
b/kamaki/cli/__init__.py | ||
---|---|---|
64 | 64 |
'_', ' ') |
65 | 65 |
|
66 | 66 |
|
67 |
def _required_syntax(arguments, required): |
|
68 |
if isinstance(required, tuple): |
|
69 |
return ' '.join([_required_syntax(arguments, k) for k in required]) |
|
70 |
elif isinstance(required, list): |
|
71 |
return '(%s)' % ' | '.join([ |
|
72 |
_required_syntax(arguments, k) for k in required]) |
|
73 |
return '/'.join(arguments[required].parsed_name) |
|
74 |
|
|
75 |
|
|
76 | 67 |
def _construct_command_syntax(cls): |
77 | 68 |
spec = getargspec(cls.main.im_func) |
78 | 69 |
args = spec.args[1:] |
... | ... | |
82 | 73 |
cls.syntax = ' '.join([required, optional]) |
83 | 74 |
if spec.varargs: |
84 | 75 |
cls.syntax += ' <%s ...>' % spec.varargs |
85 |
required = getattr(cls, 'required', None) |
|
86 |
if required: |
|
87 |
arguments = getattr(cls, 'arguments', dict()) |
|
88 |
cls.syntax += ' %s' % _required_syntax(arguments, required) |
|
89 | 76 |
|
90 | 77 |
|
91 | 78 |
def _num_of_matching_terms(basic_list, attack_list): |
Also available in: Unified diff