Removed a bunch of code from _compat

This commit is contained in:
Armin Ronacher 2013-06-02 17:23:53 +01:00
parent c629f69e69
commit 0190b770a1
3 changed files with 8 additions and 43 deletions

View file

@ -13,13 +13,10 @@
import sys import sys
PY2 = sys.version_info[0] == 2 PY2 = sys.version_info[0] == 2
PYPY = hasattr(sys, 'pypy_translation_info')
_identity = lambda x: x _identity = lambda x: x
if not PY2: if not PY2:
unichr = chr
range_type = range
text_type = str text_type = str
string_types = (str,) string_types = (str,)
integer_types = (int, ) integer_types = (int, )
@ -28,29 +25,17 @@ if not PY2:
itervalues = lambda d: iter(d.values()) itervalues = lambda d: iter(d.values())
iteritems = lambda d: iter(d.items()) iteritems = lambda d: iter(d.items())
import pickle from io import StringIO
from io import BytesIO, StringIO
NativeStringIO = StringIO
def reraise(tp, value, tb=None): def reraise(tp, value, tb=None):
if value.__traceback__ is not tb: if value.__traceback__ is not tb:
raise value.with_traceback(tb) raise value.with_traceback(tb)
raise value raise value
ifilter = filter
imap = map
izip = zip
intern = sys.intern
implements_iterator = _identity
implements_to_string = _identity implements_to_string = _identity
encode_filename = _identity
get_next = lambda x: x.__next__
else: else:
unichr = unichr
text_type = unicode text_type = unicode
range_type = xrange
string_types = (str, unicode) string_types = (str, unicode)
integer_types = (int, long) integer_types = (int, long)
@ -58,32 +43,15 @@ else:
itervalues = lambda d: d.itervalues() itervalues = lambda d: d.itervalues()
iteritems = lambda d: d.iteritems() iteritems = lambda d: d.iteritems()
import cPickle as pickle from cStringIO import StringIO as StringIO
from cStringIO import StringIO as BytesIO, StringIO
NativeStringIO = BytesIO
exec('def reraise(tp, value, tb=None):\n raise tp, value, tb') exec('def reraise(tp, value, tb=None):\n raise tp, value, tb')
from itertools import imap, izip, ifilter
intern = intern
def implements_iterator(cls):
cls.next = cls.__next__
del cls.__next__
return cls
def implements_to_string(cls): def implements_to_string(cls):
cls.__unicode__ = cls.__str__ cls.__unicode__ = cls.__str__
cls.__str__ = lambda x: x.__unicode__().encode('utf-8') cls.__str__ = lambda x: x.__unicode__().encode('utf-8')
return cls return cls
get_next = lambda x: x.next
def encode_filename(filename):
if isinstance(filename, unicode):
return filename.encode('utf-8')
return filename
def with_metaclass(meta, *bases): def with_metaclass(meta, *bases):
# This requires a bit of explanation: the basic idea is to make a # This requires a bit of explanation: the basic idea is to make a
@ -103,9 +71,3 @@ def with_metaclass(meta, *bases):
return type.__new__(cls, name, (), d) return type.__new__(cls, name, (), d)
return meta(name, bases, d) return meta(name, bases, d)
return metaclass('temporary_class', None, {}) return metaclass('temporary_class', None, {})
try:
from urllib.parse import quote_from_bytes as url_quote
except ImportError:
from urllib import quote as url_quote

View file

@ -18,9 +18,12 @@ from time import time
from zlib import adler32 from zlib import adler32
from threading import RLock from threading import RLock
from werkzeug.routing import BuildError from werkzeug.routing import BuildError
from werkzeug.urls import url_quote
from functools import update_wrapper from functools import update_wrapper
try:
from werkzeug.urls import url_quote
except ImportError:
from urlparse import quote as url_quote
from werkzeug.datastructures import Headers from werkzeug.datastructures import Headers
from werkzeug.exceptions import NotFound from werkzeug.exceptions import NotFound

View file

@ -15,7 +15,7 @@ import unittest
from logging import StreamHandler from logging import StreamHandler
from flask.testsuite import FlaskTestCase, catch_warnings, catch_stderr from flask.testsuite import FlaskTestCase, catch_warnings, catch_stderr
from werkzeug.http import parse_cache_control_header, parse_options_header from werkzeug.http import parse_cache_control_header, parse_options_header
from flask._compat import StringIO, text_type, implements_iterator from flask._compat import StringIO, text_type
def has_encoding(name): def has_encoding(name):
@ -546,7 +546,6 @@ class StreamingTestCase(FlaskTestCase):
app = flask.Flask(__name__) app = flask.Flask(__name__)
app.testing = True app.testing = True
called = [] called = []
@implements_iterator
class Wrapper(object): class Wrapper(object):
def __init__(self, gen): def __init__(self, gen):
self._gen = gen self._gen = gen
@ -556,6 +555,7 @@ class StreamingTestCase(FlaskTestCase):
called.append(42) called.append(42)
def __next__(self): def __next__(self):
return next(self._gen) return next(self._gen)
next = __next__
@app.route('/') @app.route('/')
def index(): def index():
def generate(): def generate():