1818
1919import json
2020import requests
21+ import sys
2122
2223__title__ = 'python-gitlab'
2324__version__ = '0.3'
@@ -298,8 +299,10 @@ def update(self, obj):
298299 # build a dict of data that can really be sent to server
299300 d = {}
300301 for k , v in obj .__dict__ .items ():
301- if type (v ) in (int , str , unicode , bool ):
302+ if type (v ) in (int , str , bool ):
302303 d [k ] = str (v )
304+ elif type (v ) == unicode :
305+ d [k ] = str (v .encode (sys .stdout .encoding , "replace" ))
303306
304307 try :
305308 r = requests .put (url , d , headers = self .headers , verify = self .ssl_verify )
@@ -520,6 +523,8 @@ def _obj_to_str(obj):
520523 elif isinstance (obj , list ):
521524 s = ", " .join ([GitlabObject ._obj_to_str (x ) for x in obj ])
522525 return "[ %s ]" % s
526+ elif isinstance (obj , unicode ):
527+ return obj .encode (sys .stdout .encoding , "replace" )
523528 else :
524529 return str (obj )
525530
@@ -530,7 +535,7 @@ def pretty_print(self, depth=0):
530535 if k == self .idAttr :
531536 continue
532537 v = self .__dict__ [k ]
533- pretty_k = k .replace ('_' , '-' )
538+ pretty_k = k .replace ('_' , '-' ). encode ( sys . stdout . encoding , "replace" )
534539 if isinstance (v , GitlabObject ):
535540 if depth == 0 :
536541 print ("%s:" % pretty_k )
0 commit comments