@@ -73,8 +73,8 @@ def clsToWhat(cls):
73
73
def populate_sub_parser_by_class (cls , sub_parser ):
74
74
sub_parser_class = sub_parser .add_subparsers (
75
75
dest = 'action' ,
76
- title = "action " ,
77
- description = 'action to do' ,
76
+ title = "positional argument " ,
77
+ description = 'action with %s' % cls . __name__ ,
78
78
help = 'action to do'
79
79
)
80
80
for action_name in ACTION :
@@ -87,27 +87,29 @@ def populate_sub_parser_by_class(cls, sub_parser):
87
87
continue
88
88
sub_parser_action = sub_parser_class .add_parser (action_name )
89
89
if action_name == LIST :
90
- [sub_parser_action .add_argument ("--%s" % x .replace ('_' , '-' )) for x in cls .requiredListAttrs ]
90
+ [sub_parser_action .add_argument ("--%s" % x .replace ('_' , '-' ), required = True ) for x in cls .requiredListAttrs ]
91
91
sub_parser_action .add_argument ("--page" , required = False )
92
92
sub_parser_action .add_argument ("--per-page" , required = False )
93
93
elif action_name in [GET , DELETE ]:
94
94
if cls not in [gitlab .CurrentUser ]:
95
95
sub_parser_action .add_argument ("--id" , required = True )
96
96
[sub_parser_action .add_argument ("--%s" % x .replace ('_' , '-' )) for x in cls .requiredGetAttrs ]
97
97
elif action_name == CREATE :
98
- [sub_parser_action .add_argument ("--%s" % x .replace ('_' , '-' )) for x in cls .requiredCreateAttrs ]
98
+ [sub_parser_action .add_argument ("--%s" % x .replace ('_' , '-' ), required = True ) for x in
99
+ cls .requiredCreateAttrs ]
99
100
[sub_parser_action .add_argument ("--%s" % x .replace ('_' , '-' ), required = False ) for x in
100
101
cls .optionalCreateAttrs ]
101
102
elif action_name == UPDATE :
102
- [sub_parser_action .add_argument ("--%s" % x .replace ('_' , '-' )) for x in cls .requiredCreateAttrs ]
103
+ [sub_parser_action .add_argument ("--%s" % x .replace ('_' , '-' ), required = True ) for x in
104
+ cls .requiredCreateAttrs ]
103
105
[sub_parser_action .add_argument ("--%s" % x .replace ('_' , '-' ), required = False ) for x in
104
106
cls .optionalCreateAttrs ]
105
107
106
108
if cls in extra_actions :
107
109
for action_name in sorted (extra_actions [cls ]):
108
110
sub_parser_action = sub_parser_class .add_parser (action_name )
109
111
d = extra_actions [cls ][action_name ]
110
- [sub_parser_action .add_argument ("--%s" % arg ) for arg in d ['requiredAttrs' ]]
112
+ [sub_parser_action .add_argument ("--%s" % arg , required = True ) for arg in d ['requiredAttrs' ]]
111
113
112
114
113
115
def do_auth ():
@@ -228,14 +230,18 @@ if __name__ == "__main__":
228
230
subparsers = parser .add_subparsers (
229
231
dest = 'what' ,
230
232
title = "what" ,
233
+ title = "positional argument" ,
231
234
description = 'GitLab object' ,
232
235
help = 'GitLab object'
233
236
)
234
237
#populate argparse for all Gitlab Object
235
238
for cls in gitlab .__dict__ .values ():
236
- if gitlab .GitlabObject in getmro (cls ):
237
- sub_parser = subparsers .add_parser (clsToWhat (cls ))
238
- populate_sub_parser_by_class (cls , sub_parser )
239
+ try :
240
+ if gitlab .GitlabObject in getmro (cls ):
241
+ sub_parser = subparsers .add_parser (clsToWhat (cls ))
242
+ populate_sub_parser_by_class (cls , sub_parser )
243
+ except :
244
+ pass
239
245
240
246
arg = parser .parse_args ()
241
247
d = arg .__dict__
0 commit comments