ported some more stuff to py 3.3

removed init_jinja_globals hack from app.py after consulting mitsuhiko
(didn't work on py 3.3 "as is")

removed with_statement future imports, not needed any more

needs more work on 2.7 as well as on 3.3
This commit is contained in:
Thomas Waldmann 2013-05-22 01:33:04 +02:00
parent a503520ac5
commit e1d356fb71
24 changed files with 36 additions and 87 deletions

View file

@ -9,8 +9,6 @@
:license: BSD, see LICENSE for more details.
"""
from __future__ import with_statement
import os
import sys
from threading import Lock
@ -36,6 +34,7 @@ from .templating import DispatchingJinjaLoader, Environment, \
_default_template_ctx_processor
from .signals import request_started, request_finished, got_request_exception, \
request_tearing_down, appcontext_tearing_down
from flask._compat import reraise, string_types, integer_types
# a lock used for logger initialization
_logger_lock = Lock()
@ -585,21 +584,7 @@ class Flask(_PackageBoundObject):
@locked_cached_property
def jinja_env(self):
"""The Jinja2 environment used to load templates."""
rv = self.create_jinja_environment()
# Hack to support the init_jinja_globals method which is supported
# until 1.0 but has an API deficiency.
if getattr(self.init_jinja_globals, 'im_func', None) is not \
Flask.init_jinja_globals.__func__:
from warnings import warn
warn(DeprecationWarning('This flask class uses a customized '
'init_jinja_globals() method which is deprecated. '
'Move the code from that method into the '
'create_jinja_environment() method instead.'))
self.__dict__['jinja_env'] = rv
self.init_jinja_globals()
return rv
return self.create_jinja_environment()
@property
def got_first_request(self):
@ -1090,7 +1075,7 @@ class Flask(_PackageBoundObject):
def _register_error_handler(self, key, code_or_exception, f):
if isinstance(code_or_exception, HTTPException):
code_or_exception = code_or_exception.code
if isinstance(code_or_exception, (int, long)):
if isinstance(code_or_exception, integer_types):
assert code_or_exception != 500 or key is None, \
'It is currently not possible to register a 500 internal ' \
'server error on a per-blueprint level.'
@ -1137,7 +1122,7 @@ class Flask(_PackageBoundObject):
def is_prime(n):
if n == 2:
return True
for i in xrange(2, int(math.ceil(math.sqrt(n))) + 1):
for i in range(2, int(math.ceil(math.sqrt(n))) + 1):
if n % i == 0:
return False
return True
@ -1383,7 +1368,7 @@ class Flask(_PackageBoundObject):
if isinstance(e, typecheck):
return handler(e)
raise exc_type, exc_value, tb
reraise(exc_type, exc_value, tb)
def handle_exception(self, e):
"""Default exception handling that kicks in when an exception
@ -1405,7 +1390,7 @@ class Flask(_PackageBoundObject):
# (the function was actually called from the except part)
# otherwise, we just raise the error again
if exc_value is e:
raise exc_type, exc_value, tb
reraise(exc_type, exc_value, tb)
else:
raise e
@ -1565,14 +1550,14 @@ class Flask(_PackageBoundObject):
# set the headers and status. We do this because there can be
# some extra logic involved when creating these objects with
# specific values (like defualt content type selection).
if isinstance(rv, basestring):
if isinstance(rv, string_types):
rv = self.response_class(rv, headers=headers, status=status)
headers = status = None
else:
rv = self.response_class.force_type(rv, request.environ)
if status is not None:
if isinstance(status, basestring):
if isinstance(status, string_types):
rv.status = status
else:
rv.status_code = status
@ -1633,7 +1618,7 @@ class Flask(_PackageBoundObject):
# still the same one we can reraise it with the original traceback,
# otherwise we raise it from here.
if error is exc_value:
raise exc_type, exc_value, tb
reraise(exc_type, exc_value, tb)
raise error
def preprocess_request(self):