@@ -764,23 +764,31 @@ def custom_environment(self, **kwargs):
764764 finally :
765765 self .update_environment (** old_env )
766766
767+ def transform_kwarg (self , name , value , split_single_char_options ):
768+ if len (name ) == 1 :
769+ if value is True :
770+ return ["-%s" % name ]
771+ elif type (value ) is not bool :
772+ if split_single_char_options :
773+ return ["-%s" % name , "%s" % value ]
774+ else :
775+ return ["-%s%s" % (name , value )]
776+ else :
777+ if value is True :
778+ return ["--%s" % dashify (name )]
779+ elif type (value ) is not bool :
780+ return ["--%s=%s" % (dashify (name ), value )]
781+ return []
782+
767783 def transform_kwargs (self , split_single_char_options = True , ** kwargs ):
768784 """Transforms Python style kwargs into git command line options."""
769785 args = list ()
770786 for k , v in kwargs .items ():
771- if len (k ) == 1 :
772- if v is True :
773- args .append ("-%s" % k )
774- elif type (v ) is not bool :
775- if split_single_char_options :
776- args .extend (["-%s" % k , "%s" % v ])
777- else :
778- args .append ("-%s%s" % (k , v ))
787+ if isinstance (v , (list , tuple )):
788+ for value in v :
789+ args += self .transform_kwarg (k , value , split_single_char_options )
779790 else :
780- if v is True :
781- args .append ("--%s" % dashify (k ))
782- elif type (v ) is not bool :
783- args .append ("--%s=%s" % (dashify (k ), v ))
791+ args += self .transform_kwarg (k , v , split_single_char_options )
784792 return args
785793
786794 @classmethod
0 commit comments