3763fbb
diff -up mc-4.8.24/src/vfs/extfs/helpers/uc1541.python3 mc-4.8.24/src/vfs/extfs/helpers/uc1541
3763fbb
--- mc-4.8.24/src/vfs/extfs/helpers/uc1541.python3	2020-01-20 14:40:30.637996501 +0100
3763fbb
+++ mc-4.8.24/src/vfs/extfs/helpers/uc1541	2020-01-20 14:37:55.253442507 +0100
3763fbb
@@ -1,4 +1,4 @@
3763fbb
-#!/usr/bin/env python
3763fbb
+#!/usr/bin/env python3
3763fbb
 """
3763fbb
 UC1541 Virtual filesystem
3763fbb
 
Tomasz Kłoczko 08dede9
--- a/src/vfs/extfs/helpers/s3+.in	(original)
Tomasz Kłoczko 08dede9
+++ b/src/vfs/extfs/helpers/s3+.in	(refactored)
Tomasz Kłoczko 08dede9
@@ -153,16 +153,16 @@
Tomasz Kłoczko 08dede9
 	Propagates exception safely.
Tomasz Kłoczko 08dede9
 	"""
Tomasz Kłoczko 08dede9
 	from threading import Thread
Tomasz Kłoczko 08dede9
-	import Queue
Tomasz Kłoczko 08dede9
+	import queue
Tomasz Kłoczko 08dede9
 
Tomasz Kłoczko 08dede9
 	items = list(iterable)
Tomasz Kłoczko 08dede9
 	nitems = len(items)
Tomasz Kłoczko 08dede9
 	if nitems < 2:
Tomasz Kłoczko 08dede9
-		return map(fun, items)
Tomasz Kłoczko 08dede9
+		return list(map(fun, items))
Tomasz Kłoczko 08dede9
 
Tomasz Kłoczko 08dede9
 	# Create and fill input queue
Tomasz Kłoczko 08dede9
-	input = Queue.Queue()
Tomasz Kłoczko 08dede9
-	output = Queue.Queue()
Tomasz Kłoczko 08dede9
+	input = queue.Queue()
Tomasz Kłoczko 08dede9
+	output = queue.Queue()
Tomasz Kłoczko 08dede9
 
Tomasz Kłoczko 08dede9
 	for i,item in enumerate(items):
Tomasz Kłoczko 08dede9
 		input.put( (i,item) )
Tomasz Kłoczko 08dede9
@@ -181,7 +181,7 @@
Tomasz Kłoczko 08dede9
 						output.put( (i,result) )
Tomasz Kłoczko 08dede9
 					except:
Tomasz Kłoczko 08dede9
 						output.put( (None,sys.exc_info()) )
Tomasz Kłoczko 08dede9
-				except Queue.Empty:
Tomasz Kłoczko 08dede9
+				except queue.Empty:
Tomasz Kłoczko 08dede9
 					return
Tomasz Kłoczko 08dede9
 
Tomasz Kłoczko 08dede9
 	# Start threads
Tomasz Kłoczko 08dede9
@@ -196,8 +196,8 @@
Tomasz Kłoczko 08dede9
 		try:
Tomasz Kłoczko 08dede9
 			i,res = output.get()
Tomasz Kłoczko 08dede9
 			if i == None:
Tomasz Kłoczko 08dede9
-				raise res[0],res[1],res[2]
Tomasz Kłoczko 08dede9
-		except Queue.Empty:
Tomasz Kłoczko 08dede9
+				raise res[0](res[1]).with_traceback(res[2])
Tomasz Kłoczko 08dede9
+		except queue.Empty:
Tomasz Kłoczko 08dede9
 			break
Tomasz Kłoczko 08dede9
 		ret.append(res)
Tomasz Kłoczko 08dede9
 
Tomasz Kłoczko 08dede9
@@ -241,7 +241,7 @@
Tomasz Kłoczko 08dede9
 		b = s3.get_bucket(name, validate=False)
Tomasz Kłoczko 08dede9
 		b.get_location() # just to raise an exception on error
Tomasz Kłoczko 08dede9
 		return b
Tomasz Kłoczko 08dede9
-	except boto.exception.S3ResponseError, e:
Tomasz Kłoczko 08dede9
+	except boto.exception.S3ResponseError as e:
Tomasz Kłoczko 08dede9
 		# Seems this is the only proper way to switch to the bucket's region.
Tomasz Kłoczko 08dede9
 		# Requesting of the default region for "?location" does not work unfortunately.
Tomasz Kłoczko 08dede9
 		m = re.search(r'<Region>(.*?)</Region>', e.body)
Tomasz Kłoczko 08dede9
@@ -340,7 +340,7 @@
Tomasz Kłoczko 08dede9
 	expr = re.compile(r'^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})\.\d{3}Z$')
Tomasz Kłoczko 08dede9
 	def convDate(awsdatetime):
Tomasz Kłoczko 08dede9
 		m = expr.match(awsdatetime)
Tomasz Kłoczko 08dede9
-		ye,mo,da,ho,mi,se = map(int,m.groups())
Tomasz Kłoczko 08dede9
+		ye,mo,da,ho,mi,se = list(map(int,m.groups()))
Tomasz Kłoczko 08dede9
 
Tomasz Kłoczko 08dede9
 		dt = datetime.datetime(ye,mo,da,ho,mi,se, tzinfo=pytz.utc)
Tomasz Kłoczko 08dede9
 		return dt.astimezone(tz).strftime('%m-%d-%Y %H:%M')