diff options
author | Benjamin Peterson <benjamin@python.org> | 2010-11-24 19:17:26 -0600 |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2010-11-24 19:17:26 -0600 |
commit | 1e1456b7c4aa0ac2df39bc1bfd4569ef36c06d0f (patch) | |
tree | d39af8dfcfc6d42d55ecd7bb25e73a10f4a7b120 /six.py | |
parent | fd8ff98b80fca7325c4465bd9dd90460179eb3c9 (diff) | |
download | six-1e1456b7c4aa0ac2df39bc1bfd4569ef36c06d0f.tar.gz |
expose api for adding things to six.moves
Diffstat (limited to 'six.py')
-rw-r--r-- | six.py | 101 |
1 files changed, 60 insertions, 41 deletions
@@ -52,10 +52,10 @@ class _LazyDescr(object): return result -class _Module(_LazyDescr): +class MovedModule(_LazyDescr): def __init__(self, name, old, new=None): - super(_Module, self).__init__(name) + super(MovedModule, self).__init__(name) if PY3: if new is None: new = name @@ -67,10 +67,10 @@ class _Module(_LazyDescr): return _import_module(self.mod) -class _Attribute(_LazyDescr): +class MovedAttribute(_LazyDescr): def __init__(self, name, old_mod, new_mod, old_attr=None, new_attr=None): - super(_Attribute, self).__init__(name) + super(MovedAttribute, self).__init__(name) if PY3: if new_mod is None: new_mod = name @@ -98,43 +98,46 @@ class _MovedItems(types.ModuleType): _moved_attributes = [ - _Attribute("cStringIO", "cStringIO", "io", "StringIO"), - _Attribute("reload_module", "__builtin__", "imp", "reload"), - _Attribute("reduce", "__builtin__", "functools"), - _Attribute("StringIO", "StringIO", "io"), - _Attribute("xrange", "__builtin__", "builtins", "xrange", "range"), - - _Module("builtins", "__builtin__"), - _Module("configparser", "ConfigParser"), - _Module("copyreg", "copy_reg"), - _Module("http_cookiejar", "cookielib", "http.cookiejar"), - _Module("http_cookies", "Cookie", "http.cookies"), - _Module("html_entities", "htmlentitydefs", "html.entities"), - _Module("html_parser", "HTMLParser", "html.parser"), - _Module("http_client", "httplib", "http.client"), - _Module("BaseHTTPServer", "BaseHTTPServer", "http.server"), - _Module("CGIHTTPServer", "CGIHTTPServer", "http.server"), - _Module("SimpleHTTPServer", "SimpleHTTPServer", "http.server"), - _Module("cPickle", "cPickle", "pickle"), - _Module("queue", "Queue"), - _Module("reprlib", "repr"), - _Module("socketserver", "SocketServer"), - _Module("tkinter", "Tkinter"), - _Module("tkinter_dialog", "Dialog", "tkinter.dialog"), - _Module("tkinter_filedialog", "FileDialog", "tkinter.filedialog"), - _Module("tkinter_scrolledtext", "ScrolledText", "tkinter.scrolledtext"), - _Module("tkinter_simpledialog", "SimpleDialog", "tkinter.simpledialog"), - _Module("tkinter_tix", "Tix", "tkinter.tix"), - _Module("tkinter_constants", "Tkconstants", "tkinter.constants"), - _Module("tkinter_dnd", "Tkdnd", "tkinter.dnd"), - _Module("tkinter_colorchooser", "tkColorChooser", "tkinter.colorchooser"), - _Module("tkinter_commondialog", "tkCommonDialog", "tkinter.commondialog"), - _Module("tkinter_tkfiledialog", "tkFileDialog", "tkinter.filedialog"), - _Module("tkinter_font", "tkFont", "tkinter.font"), - _Module("tkinter_messagebox", "tkMessageBox", "tkinter.messagebox"), - _Module("tkinter_tksimpledialog", "tkSimpleDialog", "tkinter.simpledialog"), - _Module("urllib_robotparser", "robotparser", "urllib.robotparser"), - _Module("winreg", "_winreg"), + MovedAttribute("cStringIO", "cStringIO", "io", "StringIO"), + MovedAttribute("reload_module", "__builtin__", "imp", "reload"), + MovedAttribute("reduce", "__builtin__", "functools"), + MovedAttribute("StringIO", "StringIO", "io"), + MovedAttribute("xrange", "__builtin__", "builtins", "xrange", "range"), + + MovedModule("builtins", "__builtin__"), + MovedModule("configparser", "ConfigParser"), + MovedModule("copyreg", "copy_reg"), + MovedModule("http_cookiejar", "cookielib", "http.cookiejar"), + MovedModule("http_cookies", "Cookie", "http.cookies"), + MovedModule("html_entities", "htmlentitydefs", "html.entities"), + MovedModule("html_parser", "HTMLParser", "html.parser"), + MovedModule("http_client", "httplib", "http.client"), + MovedModule("BaseHTTPServer", "BaseHTTPServer", "http.server"), + MovedModule("CGIHTTPServer", "CGIHTTPServer", "http.server"), + MovedModule("SimpleHTTPServer", "SimpleHTTPServer", "http.server"), + MovedModule("cPickle", "cPickle", "pickle"), + MovedModule("queue", "Queue"), + MovedModule("reprlib", "repr"), + MovedModule("socketserver", "SocketServer"), + MovedModule("tkinter", "Tkinter"), + MovedModule("tkinter_dialog", "Dialog", "tkinter.dialog"), + MovedModule("tkinter_filedialog", "FileDialog", "tkinter.filedialog"), + MovedModule("tkinter_scrolledtext", "ScrolledText", "tkinter.scrolledtext"), + MovedModule("tkinter_simpledialog", "SimpleDialog", "tkinter.simpledialog"), + MovedModule("tkinter_tix", "Tix", "tkinter.tix"), + MovedModule("tkinter_constants", "Tkconstants", "tkinter.constants"), + MovedModule("tkinter_dnd", "Tkdnd", "tkinter.dnd"), + MovedModule("tkinter_colorchooser", "tkColorChooser", + "tkinter.colorchooser"), + MovedModule("tkinter_commondialog", "tkCommonDialog", + "tkinter.commondialog"), + MovedModule("tkinter_tkfiledialog", "tkFileDialog", "tkinter.filedialog"), + MovedModule("tkinter_font", "tkFont", "tkinter.font"), + MovedModule("tkinter_messagebox", "tkMessageBox", "tkinter.messagebox"), + MovedModule("tkinter_tksimpledialog", "tkSimpleDialog", + "tkinter.simpledialog"), + MovedModule("urllib_robotparser", "robotparser", "urllib.robotparser"), + MovedModule("winreg", "_winreg"), ] for attr in _moved_attributes: setattr(_MovedItems, attr.name, attr) @@ -143,6 +146,22 @@ del attr moves = sys.modules["six.moves"] = _MovedItems("moves") +def add_move(move): + """Add an item to six.moves.""" + setattr(_MovedItems, move.name, move) + + +def remove_move(name): + """Remove item from six.moves.""" + try: + delattr(_MovedItems, name) + except AttributeError: + try: + del moves.__dict__[name] + except KeyError: + raise AttributeError("no such move, %r" % (name,)) + + if PY3: _meth_func = "__func__" _meth_self = "__self__" |