diff options
author | Jason R. Coombs <jaraco@jaraco.com> | 2013-06-18 15:01:44 -0500 |
---|---|---|
committer | Jason R. Coombs <jaraco@jaraco.com> | 2013-06-18 15:01:44 -0500 |
commit | b0abfb1c076baced9bf182a357dd47e9482bf065 (patch) | |
tree | 55a30c8bdd916583a818895c0b660f73815202d0 /setuptools/compat.py | |
parent | c04abca662dcbffd00d928e06fbf32b9f49f8e57 (diff) | |
parent | 3c86c861ab9665df0e502f250a7471d09240e413 (diff) | |
download | external_python_setuptools-b0abfb1c076baced9bf182a357dd47e9482bf065.tar.gz external_python_setuptools-b0abfb1c076baced9bf182a357dd47e9482bf065.tar.bz2 external_python_setuptools-b0abfb1c076baced9bf182a357dd47e9482bf065.zip |
Merge Python 3 native support from distribute
--HG--
rename : tests/test_distribute_setup.py => tests/test_ez_setup.py
Diffstat (limited to 'setuptools/compat.py')
-rw-r--r-- | setuptools/compat.py | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/setuptools/compat.py b/setuptools/compat.py new file mode 100644 index 00000000..e2f64de2 --- /dev/null +++ b/setuptools/compat.py @@ -0,0 +1,94 @@ +import sys +import itertools + +if sys.version_info[0] < 3: + PY3 = False + + basestring = basestring + import __builtin__ as builtins + import ConfigParser + from StringIO import StringIO + BytesIO = StringIO + execfile = execfile + func_code = lambda o: o.func_code + func_globals = lambda o: o.func_globals + im_func = lambda o: o.im_func + from htmlentitydefs import name2codepoint + import httplib + from BaseHTTPServer import HTTPServer + from SimpleHTTPServer import SimpleHTTPRequestHandler + from BaseHTTPServer import BaseHTTPRequestHandler + iteritems = lambda o: o.iteritems() + long_type = long + maxsize = sys.maxint + next = lambda o: o.next() + numeric_types = (int, long, float) + reduce = reduce + unichr = unichr + unicode = unicode + from urllib import url2pathname + import urllib2 + from urllib2 import urlopen, HTTPError, URLError, unquote, splituser + from urlparse import urlparse, urlunparse, urljoin + xrange = xrange + filterfalse = itertools.ifilterfalse + + def exec_(code, globs=None, locs=None): + if globs is None: + frame = sys._getframe(1) + globs = frame.f_globals + if locs is None: + locs = frame.f_locals + del frame + elif locs is None: + locs = globs + exec("""exec code in globs, locs""") + + exec_("""def reraise(tp, value, tb=None): + raise tp, value, tb""") +else: + PY3 = True + + basestring = str + import builtins + import configparser as ConfigParser + exec_ = eval('exec') + from io import StringIO, BytesIO + func_code = lambda o: o.__code__ + func_globals = lambda o: o.__globals__ + im_func = lambda o: o.__func__ + from html.entities import name2codepoint + import http.client as httplib + from http.server import HTTPServer, SimpleHTTPRequestHandler + from http.server import BaseHTTPRequestHandler + iteritems = lambda o: o.items() + long_type = int + maxsize = sys.maxsize + next = next + numeric_types = (int, float) + from functools import reduce + unichr = chr + unicode = str + from urllib.error import HTTPError, URLError + import urllib.request as urllib2 + from urllib.request import urlopen, url2pathname + from urllib.parse import urlparse, urlunparse, unquote, splituser, urljoin + xrange = range + filterfalse = itertools.filterfalse + + def execfile(fn, globs=None, locs=None): + if globs is None: + globs = globals() + if locs is None: + locs = globs + f = open(fn) + try: + source = f.read() + finally: + f.close() + exec_(compile(source, fn, 'exec'), globs, locs) + + def reraise(tp, value, tb=None): + if value.__traceback__ is not tb: + raise value.with_traceback(tb) + raise value |