2424force_bytes ,
2525PY3 ,
2626# just to satisfy flake8 on py3
27- unicode ,
27+ str ,
2828safe_decode ,
2929is_posix ,
3030is_win ,
@@ -128,7 +128,7 @@ def slots_to_dict(self, exclude=()):
128128
129129
130130def dict_to_slots_and__excluded_are_none (self ,d ,excluded = ()):
131- for k ,v in d .items ():
131+ for k ,v in list ( d .items () ):
132132setattr (self ,k ,v )
133133for k in excluded :
134134setattr (self ,k ,None )
@@ -381,7 +381,7 @@ def readlines(self, size=-1):
381381def __iter__ (self ):
382382return self
383383
384- def next (self ):
384+ def __next__ (self ):
385385line = self .readline ()
386386if not line :
387387raise StopIteration
@@ -714,7 +714,7 @@ def update_environment(self, **kwargs):
714714 :return: dict that maps environment variables to their old values
715715 """
716716old_env = {}
717- for key ,value in kwargs .items ():
717+ for key ,value in list ( kwargs .items () ):
718718# set value if it is None
719719if value is not None :
720720old_env [key ]= self ._environment .get (key )
@@ -763,8 +763,8 @@ def transform_kwarg(self, name, value, split_single_char_options):
763763def transform_kwargs (self ,split_single_char_options = True ,** kwargs ):
764764"""Transforms Python style kwargs into git command line options."""
765765args = list ()
766- kwargs = OrderedDict (sorted (kwargs .items (),key = lambda x :x [0 ]))
767- for k ,v in kwargs .items ():
766+ kwargs = OrderedDict (sorted (list ( kwargs .items () ),key = lambda x :x [0 ]))
767+ for k ,v in list ( kwargs .items () ):
768768if isinstance (v , (list ,tuple )):
769769for value in v :
770770args += self .transform_kwarg (k ,value ,split_single_char_options )
@@ -777,15 +777,15 @@ def __unpack_args(cls, arg_list):
777777if not isinstance (arg_list , (list ,tuple )):
778778# This is just required for unicode conversion, as subprocess can't handle it
779779# However, in any other case, passing strings (usually utf-8 encoded) is totally fine
780- if not PY3 and isinstance (arg_list ,unicode ):
780+ if not PY3 and isinstance (arg_list ,str ):
781781return [arg_list .encode (defenc )]
782782return [str (arg_list )]
783783
784784outlist = list ()
785785for arg in arg_list :
786786if isinstance (arg_list , (list ,tuple )):
787787outlist .extend (cls .__unpack_args (arg ))
788- elif not PY3 and isinstance (arg_list ,unicode ):
788+ elif not PY3 and isinstance (arg_list ,str ):
789789outlist .append (arg_list .encode (defenc ))
790790# END recursion
791791else :
@@ -840,8 +840,8 @@ def _call_process(self, method, *args, **kwargs):
840840 :return: Same as ``execute``"""
841841# Handle optional arguments prior to calling transform_kwargs
842842# otherwise these'll end up in args, which is bad.
843- exec_kwargs = dict ((k ,v )for k ,v in kwargs .items ()if k in execute_kwargs )
844- opts_kwargs = dict ((k ,v )for k ,v in kwargs .items ()if k not in execute_kwargs )
843+ exec_kwargs = dict ((k ,v )for k ,v in list ( kwargs .items () )if k in execute_kwargs )
844+ opts_kwargs = dict ((k ,v )for k ,v in list ( kwargs .items () )if k not in execute_kwargs )
845845
846846insert_after_this_arg = opts_kwargs .pop ('insert_kwargs_after' ,None )
847847