| 
					
				 | 
			
			
				@@ -8,15 +8,12 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 # See the file COPYING for more details, or visit <http://unlicense.org>. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import argparse, os, sys, serial, struct, time 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import importlib 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import serial.tools.list_ports 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from greaseweazle import version 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from greaseweazle import error 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 from greaseweazle import usb as USB 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-from greaseweazle.image.scp import SCP 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-from greaseweazle.image.hfe import HFE 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-from greaseweazle.image.ipf import IPF 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-from greaseweazle.image.adf import ADF 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 class CmdlineHelpFormatter(argparse.ArgumentDefaultsHelpFormatter): 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -66,11 +63,16 @@ def split_opts(seq): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 def get_image_class(name): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    image_types = { '.adf': ADF, '.scp': SCP, '.hfe': HFE, '.ipf': IPF } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    image_types = { '.adf': 'ADF', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    '.scp': 'SCP', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    '.hfe': 'HFE', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    '.ipf': 'IPF' } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     _, ext = os.path.splitext(name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     error.check(ext.lower() in image_types, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 "%s: Unrecognised file suffix '%s'" % (name, ext)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return image_types[ext.lower()] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    typename = image_types[ext.lower()] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    mod = importlib.import_module('greaseweazle.image.' + typename.lower()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return mod.__dict__[typename] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 def with_drive_selected(fn, usb, args, *_args, **_kwargs): 
			 |