| 
					
				 | 
			
			
				@@ -22,7 +22,7 @@ from collections import namedtuple, deque, abc 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from contextlib import contextmanager 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from datetime import datetime, timezone, timedelta 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from fnmatch import translate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-from functools import wraps, partial 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+from functools import wraps, partial, lru_cache 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from itertools import islice 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from operator import attrgetter 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from string import Formatter 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -722,19 +722,6 @@ def format_archive(archive): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-def memoize(function): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    cache = {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    def decorated_function(*args): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return cache[args] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        except KeyError: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            val = function(*args) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            cache[args] = val 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return val 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return decorated_function 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class Buffer: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     """ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     provide a thread-local buffer 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -776,7 +763,7 @@ class Buffer: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return self._thread_local.buffer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@memoize 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@lru_cache(maxsize=None) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 def uid2user(uid, default=None): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return pwd.getpwuid(uid).pw_name 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -784,7 +771,7 @@ def uid2user(uid, default=None): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return default 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@memoize 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@lru_cache(maxsize=None) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 def user2uid(user, default=None): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return user and pwd.getpwnam(user).pw_uid 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -792,7 +779,7 @@ def user2uid(user, default=None): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return default 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@memoize 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@lru_cache(maxsize=None) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 def gid2group(gid, default=None): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return grp.getgrgid(gid).gr_name 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -800,7 +787,7 @@ def gid2group(gid, default=None): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return default 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-@memoize 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@lru_cache(maxsize=None) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 def group2gid(group, default=None): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return group and grp.getgrnam(group).gr_gid 
			 |