33 lines
		
	
	
		
			817 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			817 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| import sys, string
 | |
| 
 | |
| class Reloader:
 | |
| 	'''
 | |
| 	Class allows for reloading all modules imported
 | |
| 	after the instance is created. Normally you will
 | |
| 	use this by doing:
 | |
| 		import <anything you don't want reloaded>
 | |
| 		from mcf.utils import reloader
 | |
| 		<do testing and rewriting>
 | |
| 		reloader.go()
 | |
| 	'''
 | |
| 	def __init__(self):
 | |
| 		self.keys = sys.modules.keys()
 | |
| 	def __call__(self, *args, **namedargs):
 | |
| 		done = []
 | |
| 		for key, val in sys.modules.items():
 | |
| 			if key not in self.keys:
 | |
| 				try:
 | |
| 					reload( val )
 | |
| 					done.append( key )
 | |
| 				except (ImportError):
 | |
| 					print '''Couldn't reload module:''', key
 | |
| 				except (TypeError): # for None's
 | |
| 					# is a flag to prevent reloading
 | |
| 					pass
 | |
| 		if done:
 | |
| 			print '''Reloaded:''', string.join( done, ', ')
 | |
| 		else:
 | |
| 			print '''No modules reloaded'''
 | |
| 
 | |
| # the default reloader...
 | |
| go = Reloader() | 
