mirror of
https://github.com/python/cpython.git
synced 2024-11-23 18:04:37 +08:00
138 lines
4.2 KiB
Python
138 lines
4.2 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'),
|
|
}
|
|
|
|
PYTHON2_EXCEPTIONS = (
|
|
"ArithmeticError",
|
|
"AssertionError",
|
|
"AttributeError",
|
|
"BaseException",
|
|
"BufferError",
|
|
"BytesWarning",
|
|
"DeprecationWarning",
|
|
"EOFError",
|
|
"EnvironmentError",
|
|
"Exception",
|
|
"FloatingPointError",
|
|
"FutureWarning",
|
|
"GeneratorExit",
|
|
"IOError",
|
|
"ImportError",
|
|
"ImportWarning",
|
|
"IndentationError",
|
|
"IndexError",
|
|
"KeyError",
|
|
"KeyboardInterrupt",
|
|
"LookupError",
|
|
"MemoryError",
|
|
"NameError",
|
|
"NotImplementedError",
|
|
"OSError",
|
|
"OverflowError",
|
|
"PendingDeprecationWarning",
|
|
"ReferenceError",
|
|
"RuntimeError",
|
|
"RuntimeWarning",
|
|
# StandardError is gone in Python 3, so we map it to Exception
|
|
"StopIteration",
|
|
"SyntaxError",
|
|
"SyntaxWarning",
|
|
"SystemError",
|
|
"SystemExit",
|
|
"TabError",
|
|
"TypeError",
|
|
"UnboundLocalError",
|
|
"UnicodeDecodeError",
|
|
"UnicodeEncodeError",
|
|
"UnicodeError",
|
|
"UnicodeTranslateError",
|
|
"UnicodeWarning",
|
|
"UserWarning",
|
|
"ValueError",
|
|
"Warning",
|
|
"ZeroDivisionError",
|
|
)
|
|
|
|
for excname in PYTHON2_EXCEPTIONS:
|
|
NAME_MAPPING[("exceptions", excname)] = ("builtins", excname)
|
|
|
|
NAME_MAPPING[("exceptions", "StandardError")] = ("builtins", "Exception")
|
|
|
|
# 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())
|