| 
					
				 | 
			
			
				@@ -1,7 +1,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #!/usr/bin/env python 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import subprocess 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-from StringIO import StringIO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from io import StringIO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import re 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import sys 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -19,7 +19,7 @@ def get_all_options(cmd): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     stdoutdata, stderrdata = proc.communicate() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     cur_option = None 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     opts = {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    for line in StringIO(stdoutdata): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    for line in StringIO(stdoutdata.decode('utf-8')): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         match = opt_pattern.match(line) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if match: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             long_opt = match.group(2) 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -35,8 +35,8 @@ def get_all_options(cmd): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if cur_option: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         opts[cur_option.long_opt] = cur_option 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    # for opt in opts.itervalues(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    #     print opt.short_opt, opt.long_opt, opt.optional, opt.values 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    # for opt in opts.values(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    #     print(opt.short_opt, opt.long_opt, opt.optional, opt.values) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return opts 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -77,7 +77,7 @@ _aria2c() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 """) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     bool_opts = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     nonbool_opts = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    for opt in opts.itervalues(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    for opt in opts.values(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if opt.values == ['true', 'false']: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             bool_opts.append(opt) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         else: 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -105,7 +105,7 @@ _aria2c() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         output_value_case(out, opt.long_opt, opt.values) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # Complete directory 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     dir_opts = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    for opt in opts.itervalues(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    for opt in opts.values(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if opt.values and opt.values[0] == '/path/to/directory': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             dir_opts.append(opt) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     # Complete file 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -123,7 +123,7 @@ _aria2c() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             COMPREPLY=( $( compgen -W '\ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 """) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     bool_values = [ 'true', 'false' ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    for opt in opts.itervalues(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    for opt in opts.values(): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         out.write(opt.long_opt) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         out.write(' ') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         # Options which takes optional argument needs "=" between 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -159,8 +159,8 @@ complete -F _aria2c aria2c 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 if __name__ == '__main__': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if len(sys.argv) < 2: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        print "Generates aria2c(1) bash_completion using `aria2c --help=#all'" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        print "Usage: make_bash_completion.py /path/to/aria2c" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        print("Generates aria2c(1) bash_completion using `aria2c --help=#all'") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        print("Usage: make_bash_completion.py /path/to/aria2c") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         exit(1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     opts = get_all_options(sys.argv[1]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     output_case(sys.stdout, opts) 
			 |