From 0190b770a1e3339c2cd96e6a44f44083aeeebb54 Mon Sep 17 00:00:00 2001 From: Armin Ronacher Date: Sun, 2 Jun 2013 17:23:53 +0100 Subject: [PATCH] Removed a bunch of code from _compat --- flask/_compat.py | 42 ++------------------------------------ flask/helpers.py | 5 ++++- flask/testsuite/helpers.py | 4 ++-- 3 files changed, 8 insertions(+), 43 deletions(-) diff --git a/flask/_compat.py b/flask/_compat.py index edc9957a..1d4e9808 100644 --- a/flask/_compat.py +++ b/flask/_compat.py @@ -13,13 +13,10 @@ import sys PY2 = sys.version_info[0] == 2 -PYPY = hasattr(sys, 'pypy_translation_info') _identity = lambda x: x if not PY2: - unichr = chr - range_type = range text_type = str string_types = (str,) integer_types = (int, ) @@ -28,29 +25,17 @@ if not PY2: itervalues = lambda d: iter(d.values()) iteritems = lambda d: iter(d.items()) - import pickle - from io import BytesIO, StringIO - NativeStringIO = StringIO + from io import StringIO def reraise(tp, value, tb=None): if value.__traceback__ is not tb: raise value.with_traceback(tb) raise value - ifilter = filter - imap = map - izip = zip - intern = sys.intern - - implements_iterator = _identity implements_to_string = _identity - encode_filename = _identity - get_next = lambda x: x.__next__ else: - unichr = unichr text_type = unicode - range_type = xrange string_types = (str, unicode) integer_types = (int, long) @@ -58,32 +43,15 @@ else: itervalues = lambda d: d.itervalues() iteritems = lambda d: d.iteritems() - import cPickle as pickle - from cStringIO import StringIO as BytesIO, StringIO - NativeStringIO = BytesIO + from cStringIO import StringIO as StringIO 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): cls.__unicode__ = cls.__str__ cls.__str__ = lambda x: x.__unicode__().encode('utf-8') 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): # 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 meta(name, bases, d) 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 diff --git a/flask/helpers.py b/flask/helpers.py index 06343cf3..1e7c87f0 100644 --- a/flask/helpers.py +++ b/flask/helpers.py @@ -18,9 +18,12 @@ from time import time from zlib import adler32 from threading import RLock from werkzeug.routing import BuildError -from werkzeug.urls import url_quote 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.exceptions import NotFound diff --git a/flask/testsuite/helpers.py b/flask/testsuite/helpers.py index c88c6241..b02025a9 100644 --- a/flask/testsuite/helpers.py +++ b/flask/testsuite/helpers.py @@ -15,7 +15,7 @@ import unittest from logging import StreamHandler from flask.testsuite import FlaskTestCase, catch_warnings, catch_stderr 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): @@ -546,7 +546,6 @@ class StreamingTestCase(FlaskTestCase): app = flask.Flask(__name__) app.testing = True called = [] - @implements_iterator class Wrapper(object): def __init__(self, gen): self._gen = gen @@ -556,6 +555,7 @@ class StreamingTestCase(FlaskTestCase): called.append(42) def __next__(self): return next(self._gen) + next = __next__ @app.route('/') def index(): def generate():