mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 21:51:50 +00:00 
			
		
		
		
	 d9dfaa9487
			
		
	
	
		d9dfaa9487
		
	
	
	
	
		
			
			or dumping pickles with a 2.x-compatible protocol, in order to make data sharing and migration easier. This behaviour can be disabled using the new `fix_imports` optional argument.
		
			
				
	
	
		
			81 lines
		
	
	
	
		
			3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			81 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())
 |