| 
					
				 | 
			
			
				@@ -13,6 +13,9 @@ logger = create_logger() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class FileLikeWrapper: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    def __init__(self, fd): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.fd = fd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def __enter__(self): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.fd.__enter__() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return self 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -59,7 +62,7 @@ class FileHashingWrapper(FileLikeWrapper): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     FACTORY: Callable = None 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def __init__(self, backing_fd, write): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.fd = backing_fd 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        super().__init__(backing_fd) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.writing = write 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.hash = self.FACTORY() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -142,7 +145,8 @@ class IntegrityCheckedFile(FileLikeWrapper): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             # TODO: When we're reading but don't have any digests, i.e. no integrity file existed, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             # TODO: then we could just short-circuit. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        self.fd = self.hasher = hash_cls(backing_fd=self.file_fd, write=write) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        self.hasher = hash_cls(backing_fd=self.file_fd, write=write) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        super().__init__(self.hasher) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self.hash_filename(filename) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     def load_integrity_data(self, path, integrity_data): 
			 |