mirror of
				https://github.com/python/cpython.git
				synced 2025-10-25 10:44:55 +00:00 
			
		
		
		
	
		
			
	
	
		
			82 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			82 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | # This module is used to map the old Python 2 names to the new names used in | ||
|  | # Python 3 for the pickle module.  This needed to make pickle streams | ||
|  | # generated with Python 2 loadable by Python 3. | ||
|  | 
 | ||
|  | # This is a copy of lib2to3.fixes.fix_imports.MAPPING.  We cannot import | ||
|  | # lib2to3 and use the mapping defined there, because lib2to3 uses pickle. | ||
|  | # Thus, this could cause the module to be imported recursively. | ||
|  | IMPORT_MAPPING = { | ||
|  |     'StringIO':  'io', | ||
|  |     'cStringIO': 'io', | ||
|  |     'cPickle': 'pickle', | ||
|  |     '__builtin__' : 'builtins', | ||
|  |     'copy_reg': 'copyreg', | ||
|  |     'Queue': 'queue', | ||
|  |     'SocketServer': 'socketserver', | ||
|  |     'ConfigParser': 'configparser', | ||
|  |     'repr': 'reprlib', | ||
|  |     'FileDialog': 'tkinter.filedialog', | ||
|  |     'tkFileDialog': 'tkinter.filedialog', | ||
|  |     'SimpleDialog': 'tkinter.simpledialog', | ||
|  |     'tkSimpleDialog': 'tkinter.simpledialog', | ||
|  |     'tkColorChooser': 'tkinter.colorchooser', | ||
|  |     'tkCommonDialog': 'tkinter.commondialog', | ||
|  |     'Dialog': 'tkinter.dialog', | ||
|  |     'Tkdnd': 'tkinter.dnd', | ||
|  |     'tkFont': 'tkinter.font', | ||
|  |     'tkMessageBox': 'tkinter.messagebox', | ||
|  |     'ScrolledText': 'tkinter.scrolledtext', | ||
|  |     'Tkconstants': 'tkinter.constants', | ||
|  |     'Tix': 'tkinter.tix', | ||
|  |     'ttk': 'tkinter.ttk', | ||
|  |     'Tkinter': 'tkinter', | ||
|  |     'markupbase': '_markupbase', | ||
|  |     '_winreg': 'winreg', | ||
|  |     'thread': '_thread', | ||
|  |     'dummy_thread': '_dummy_thread', | ||
|  |     'dbhash': 'dbm.bsd', | ||
|  |     'dumbdbm': 'dbm.dumb', | ||
|  |     'dbm': 'dbm.ndbm', | ||
|  |     'gdbm': 'dbm.gnu', | ||
|  |     'xmlrpclib': 'xmlrpc.client', | ||
|  |     'DocXMLRPCServer': 'xmlrpc.server', | ||
|  |     'SimpleXMLRPCServer': 'xmlrpc.server', | ||
|  |     'httplib': 'http.client', | ||
|  |     'htmlentitydefs' : 'html.entities', | ||
|  |     'HTMLParser' : 'html.parser', | ||
|  |     'Cookie': 'http.cookies', | ||
|  |     'cookielib': 'http.cookiejar', | ||
|  |     'BaseHTTPServer': 'http.server', | ||
|  |     'SimpleHTTPServer': 'http.server', | ||
|  |     'CGIHTTPServer': 'http.server', | ||
|  |     'test.test_support': 'test.support', | ||
|  |     'commands': 'subprocess', | ||
|  |     'UserString' : 'collections', | ||
|  |     'UserList' : 'collections', | ||
|  |     'urlparse' : 'urllib.parse', | ||
|  |     'robotparser' : 'urllib.robotparser', | ||
|  |     'whichdb': 'dbm', | ||
|  |     'anydbm': 'dbm' | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | # This contains rename rules that are easy to handle.  We ignore the more | ||
|  | # complex stuff (e.g. mapping the names in the urllib and types modules). | ||
|  | # These rules should be run before import names are fixed. | ||
|  | NAME_MAPPING = { | ||
|  |     ('__builtin__', 'xrange'):     ('builtins', 'range'), | ||
|  |     ('__builtin__', 'reduce'):     ('functools', 'reduce'), | ||
|  |     ('__builtin__', 'intern'):     ('sys', 'intern'), | ||
|  |     ('__builtin__', 'unichr'):     ('builtins', 'chr'), | ||
|  |     ('__builtin__', 'basestring'): ('builtins', 'str'), | ||
|  |     ('__builtin__', 'long'):       ('builtins', 'int'), | ||
|  |     ('itertools', 'izip'):         ('builtins', 'zip'), | ||
|  |     ('itertools', 'imap'):         ('builtins', 'map'), | ||
|  |     ('itertools', 'ifilter'):      ('builtins', 'filter'), | ||
|  |     ('itertools', 'ifilterfalse'): ('itertools', 'filterfalse'), | ||
|  | } | ||
|  | 
 | ||
|  | # Same, but for 3.x to 2.x | ||
|  | REVERSE_IMPORT_MAPPING = dict((v, k) for (k, v) in IMPORT_MAPPING.items()) | ||
|  | REVERSE_NAME_MAPPING = dict((v, k) for (k, v) in NAME_MAPPING.items()) |