#	picklemod.py				8/26/96 JJS##	This module pickles entire modules.  Handy when you're trying#	to save/restore the state of a program which uses many module-#	level variables.  Use it as follows:##	picklemod.save( somefile, module1, module2, ...)#		...#	picklemod.restore( somefile, module1, module2, ...)##	Note that you can't save the module from which these calls#	are made; if you figure out how to do this, let me know!#----------------------------------------------------------------------from types import *import pickleexclude = [ModuleType, FunctionType, ClassType, BuiltinFunctionType,	   BuiltinMethodType, CodeType, FileType ]def modvars(module):	dict = module.__dict__	list = []	for name, value in dict.items():		t = type(value)		if t not in exclude and name[:2] != '__':			list.append((name, value))	return listdef save( f, *pModules ):	p = pickle.Pickler(f)	for mod in pModules:		p.dump( modvars(mod) )def restore( f, *pModules ):	u = pickle.Unpickler(f)	for mod in pModules:		list = u.load()		for (name, value) in list:			setattr(mod, name, value)