Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit4bdce7a

Browse files
author
Gauvain Pocentek
committed
[cli] fix listing for json and yaml output
Fixes#438
1 parent6c08266 commit4bdce7a

File tree

1 file changed

+35
-24
lines changed

1 file changed

+35
-24
lines changed

‎gitlab/v4/cli.py

Lines changed: 35 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -248,19 +248,34 @@ def extend_parser(parser):
248248
returnparser
249249

250250

251+
defget_dict(obj,fields):
252+
iffields:
253+
return {k:vfork,vinobj.attributes.items()
254+
ifkinfields}
255+
returnobj.attributes
256+
257+
251258
classJSONPrinter(object):
252259
defdisplay(self,d,**kwargs):
253260
importjson# noqa
254-
255261
print(json.dumps(d))
256262

263+
defdisplay_list(self,data,fields):
264+
importjson# noqa
265+
print(json.dumps([get_dict(obj,fields)forobjindata]))
266+
257267

258268
classYAMLPrinter(object):
259269
defdisplay(self,d,**kwargs):
260270
importyaml# noqa
261-
262271
print(yaml.safe_dump(d,default_flow_style=False))
263272

273+
defdisplay_list(self,data,fields):
274+
importyaml# noqa
275+
print(yaml.safe_dump(
276+
[get_dict(obj,fields)forobjindata],
277+
default_flow_style=False))
278+
264279

265280
classLegacyPrinter(object):
266281
defdisplay(self,d,**kwargs):
@@ -300,6 +315,15 @@ def display_dict(d, padding):
300315
value=getattr(obj,obj._short_print_attr)
301316
print('%s: %s'% (obj._short_print_attr,value))
302317

318+
defdisplay_list(self,data,fields,**kwargs):
319+
verbose=kwargs.get('verbose',False)
320+
forobjindata:
321+
ifisinstance(obj,gitlab.base.RESTObject):
322+
self.display(get_dict(obj,fields),verbose=verbose,obj=obj)
323+
else:
324+
print(obj)
325+
print('')
326+
303327

304328
PRINTERS= {
305329
'json':JSONPrinter,
@@ -310,28 +334,15 @@ def display_dict(d, padding):
310334

311335
defrun(gl,what,action,args,verbose,output,fields):
312336
g_cli=GitlabCLI(gl,what,action,args)
313-
ret_val=g_cli()
337+
data=g_cli()
314338

315339
printer=PRINTERS[output]()
316340

317-
defget_dict(obj):
318-
iffields:
319-
return {k:vfork,vinobj.attributes.items()
320-
ifkinfields}
321-
returnobj.attributes
322-
323-
ifisinstance(ret_val,dict):
324-
printer.display(ret_val,verbose=True,obj=ret_val)
325-
elifisinstance(ret_val,list):
326-
forobjinret_val:
327-
ifisinstance(obj,gitlab.base.RESTObject):
328-
printer.display(get_dict(obj),verbose=verbose,obj=obj)
329-
else:
330-
print(obj)
331-
print('')
332-
elifisinstance(ret_val,dict):
333-
printer.display(ret_val,verbose=verbose,obj=ret_val)
334-
elifisinstance(ret_val,gitlab.base.RESTObject):
335-
printer.display(get_dict(ret_val),verbose=verbose,obj=ret_val)
336-
elifisinstance(ret_val,six.string_types):
337-
print(ret_val)
341+
ifisinstance(data,dict):
342+
printer.display(data,verbose=True,obj=data)
343+
elifisinstance(data,list):
344+
printer.display_list(data,fields,verbose=verbose)
345+
elifisinstance(data,gitlab.base.RESTObject):
346+
printer.display(get_dict(data,fields),verbose=verbose,obj=data)
347+
elifisinstance(data,six.string_types):
348+
print(data)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp