summaryrefslogtreecommitdiff
path: root/six.py
diff options
context:
space:
mode:
authorMarc Abramowitz <marc@marc-abramowitz.com>2013-12-08 21:27:01 -0800
committerMarc Abramowitz <marc@marc-abramowitz.com>2013-12-08 21:27:01 -0800
commit18c431dbc11eaa83a78ea15dac848fd970d9222c (patch)
treeea267d4d3467d6d4964f6a453109a76dc0bb9362 /six.py
parentc97fb65a16dca879b9d215cb6ed1ffdc93c8ef20 (diff)
parentb92f218239ea695f23bebe6659c150b166dfc281 (diff)
downloadsix-18c431dbc11eaa83a78ea15dac848fd970d9222c.tar.gz
Merge from tip to issue_19
Diffstat (limited to 'six.py')
-rw-r--r--six.py23
1 files changed, 16 insertions, 7 deletions
diff --git a/six.py b/six.py
index f622c20..41733dd 100644
--- a/six.py
+++ b/six.py
@@ -153,6 +153,7 @@ _moved_attributes = [
MovedModule("builtins", "__builtin__"),
MovedModule("configparser", "ConfigParser"),
MovedModule("copyreg", "copy_reg"),
+ MovedModule("dbm_gnu", "gdbm", "dbm.gnu"),
MovedModule("http_cookiejar", "cookielib", "http.cookiejar"),
MovedModule("http_cookies", "Cookie", "http.cookies"),
MovedModule("html_entities", "htmlentitydefs", "html.entities"),
@@ -168,6 +169,7 @@ _moved_attributes = [
MovedModule("queue", "Queue"),
MovedModule("reprlib", "repr"),
MovedModule("socketserver", "SocketServer"),
+ MovedModule("_thread", "thread", "_thread"),
MovedModule("tkinter", "Tkinter"),
MovedModule("tkinter_dialog", "Dialog", "tkinter.dialog"),
MovedModule("tkinter_filedialog", "FileDialog", "tkinter.filedialog"),
@@ -189,6 +191,7 @@ _moved_attributes = [
MovedModule("urllib_error", __name__ + ".moves.urllib_error", "urllib.error"),
MovedModule("urllib", __name__ + ".moves.urllib", __name__ + ".moves.urllib"),
MovedModule("urllib_robotparser", "robotparser", "urllib.robotparser"),
+ MovedModule("xmlrpc_client", "xmlrpclib", "xmlrpc.client"),
MovedModule("winreg", "_winreg"),
]
for attr in _moved_attributes:
@@ -283,6 +286,7 @@ _urllib_request_moved_attributes = [
MovedAttribute("urlcleanup", "urllib", "urllib.request"),
MovedAttribute("URLopener", "urllib", "urllib.request"),
MovedAttribute("FancyURLopener", "urllib", "urllib.request"),
+ MovedAttribute("proxy_bypass", "urllib", "urllib.request"),
]
for attr in _urllib_request_moved_attributes:
setattr(Module_six_moves_urllib_request, attr.name, attr)
@@ -483,8 +487,7 @@ _add_doc(u, """Text literal""")
if PY3:
- import builtins
- exec_ = getattr(builtins, "exec")
+ exec_ = getattr(moves.builtins, "exec")
def reraise(tp, value, tb=None):
@@ -492,10 +495,6 @@ if PY3:
raise value.with_traceback(tb)
raise value
-
- print_ = getattr(builtins, "print")
- del builtins
-
else:
def exec_(_code_, _globs_=None, _locs_=None):
"""Execute code in a namespace."""
@@ -515,14 +514,24 @@ else:
""")
+print_ = getattr(moves.builtins, "print", None)
+if print_ is None:
def print_(*args, **kwargs):
- """The new-style print function."""
+ """The new-style print function for Python 2.4 and 2.5."""
fp = kwargs.pop("file", sys.stdout)
if fp is None:
return
def write(data):
if not isinstance(data, basestring):
data = str(data)
+ # If the file has an encoding, encode unicode with it.
+ if (isinstance(fp, file) and
+ isinstance(data, unicode) and
+ fp.encoding is not None):
+ errors = getattr(fp, "errors", None)
+ if errors is None:
+ errors = "strict"
+ data = data.encode(fp.encoding, errors)
fp.write(data)
want_unicode = False
sep = kwargs.pop("sep", None)