speeding with map()
This commit is contained in:
+12
-24
@@ -160,12 +160,8 @@ def LOAD(c=None, f='index', args=None, vars=None,
|
|||||||
if not isinstance(args,(list,tuple)):
|
if not isinstance(args,(list,tuple)):
|
||||||
args = [args]
|
args = [args]
|
||||||
c = c or request.controller
|
c = c or request.controller
|
||||||
other_request = Storage()
|
other_request = Storage(request)
|
||||||
for key, value in request.items():
|
other_request['env'] = Storage(request.env)
|
||||||
other_request[key] = value
|
|
||||||
other_request['env'] = Storage()
|
|
||||||
for key, value in request.env.items():
|
|
||||||
other_request.env[key] = value
|
|
||||||
other_request.controller = c
|
other_request.controller = c
|
||||||
other_request.function = f
|
other_request.function = f
|
||||||
other_request.extension = extension or request.extension
|
other_request.extension = extension or request.extension
|
||||||
@@ -200,8 +196,7 @@ def LOAD(c=None, f='index', args=None, vars=None,
|
|||||||
page = run_controller_in(c, f, other_environment)
|
page = run_controller_in(c, f, other_environment)
|
||||||
if isinstance(page, dict):
|
if isinstance(page, dict):
|
||||||
other_response._vars = page
|
other_response._vars = page
|
||||||
for key in page:
|
other_response._view_environment.update(page)
|
||||||
other_response._view_environment[key] = page[key]
|
|
||||||
run_view_in(other_response._view_environment)
|
run_view_in(other_response._view_environment)
|
||||||
page = other_response.body.getvalue()
|
page = other_response.body.getvalue()
|
||||||
current.request, current.response = original_request, original_response
|
current.request, current.response = original_request, original_response
|
||||||
@@ -245,12 +240,8 @@ class LoadFactory(object):
|
|||||||
args = [args]
|
args = [args]
|
||||||
c = c or request.controller
|
c = c or request.controller
|
||||||
|
|
||||||
other_request = Storage()
|
other_request = Storage(request)
|
||||||
for key, value in request.items():
|
other_request['env'] = Storage(request.env)
|
||||||
other_request[key] = value
|
|
||||||
other_request['env'] = Storage()
|
|
||||||
for key, value in request.env.items():
|
|
||||||
other_request.env['key'] = value
|
|
||||||
other_request.controller = c
|
other_request.controller = c
|
||||||
other_request.function = f
|
other_request.function = f
|
||||||
other_request.extension = extension or request.extension
|
other_request.extension = extension or request.extension
|
||||||
@@ -283,8 +274,7 @@ class LoadFactory(object):
|
|||||||
page = run_controller_in(c, f, other_environment)
|
page = run_controller_in(c, f, other_environment)
|
||||||
if isinstance(page, dict):
|
if isinstance(page, dict):
|
||||||
other_response._vars = page
|
other_response._vars = page
|
||||||
for key in page:
|
other_response._view_environment.update(page)
|
||||||
other_response._view_environment[key] = page[key]
|
|
||||||
run_view_in(other_response._view_environment)
|
run_view_in(other_response._view_environment)
|
||||||
page = other_response.body.getvalue()
|
page = other_response.body.getvalue()
|
||||||
current.request, current.response = original_request, original_response
|
current.request, current.response = original_request, original_response
|
||||||
@@ -359,11 +349,10 @@ def build_environment(request, response, session, store_current=True):
|
|||||||
Build the environment dictionary into which web2py files are executed.
|
Build the environment dictionary into which web2py files are executed.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
environment = {}
|
_validators = validators
|
||||||
for key in html.__all__:
|
_html = html
|
||||||
environment[key] = getattr(html, key)
|
environment = dict(map(lambda key: (key, getattr(_html, key)), _html.__all__))
|
||||||
for key in validators.__all__:
|
environment.update(map(lambda key: (key, getattr(_validators, key)), _validators.__all__))
|
||||||
environment[key] = getattr(validators, key)
|
|
||||||
if not request.env:
|
if not request.env:
|
||||||
request.env = Storage()
|
request.env = Storage()
|
||||||
|
|
||||||
@@ -570,8 +559,7 @@ def run_controller_in(controller, function, environment):
|
|||||||
response = environment['response']
|
response = environment['response']
|
||||||
vars=response._vars
|
vars=response._vars
|
||||||
if response.postprocessing:
|
if response.postprocessing:
|
||||||
for p in response.postprocessing:
|
vars = reduce(lambda vars, p: p(vars), response.postprocessing, vars)
|
||||||
vars = p(vars)
|
|
||||||
if isinstance(vars,unicode):
|
if isinstance(vars,unicode):
|
||||||
vars = vars.encode('utf8')
|
vars = vars.encode('utf8')
|
||||||
elif hasattr(vars,'xml') and callable(vars.xml):
|
elif hasattr(vars,'xml') and callable(vars.xml):
|
||||||
@@ -592,7 +580,7 @@ def run_view_in(environment):
|
|||||||
path = os.path.join(folder, 'compiled')
|
path = os.path.join(folder, 'compiled')
|
||||||
badv = 'invalid view (%s)' % response.view
|
badv = 'invalid view (%s)' % response.view
|
||||||
patterns = response.generic_patterns or []
|
patterns = response.generic_patterns or []
|
||||||
regex = re.compile('|'.join(fnmatch.translate(r) for r in patterns))
|
regex = re.compile('|'.join(map(fnmatch.translate, patterns)))
|
||||||
short_action = '%(controller)s/%(function)s.%(extension)s' % request
|
short_action = '%(controller)s/%(function)s.%(extension)s' % request
|
||||||
allow_generic = patterns and regex.search(short_action)
|
allow_generic = patterns and regex.search(short_action)
|
||||||
if not isinstance(response.view, str):
|
if not isinstance(response.view, str):
|
||||||
|
|||||||
+6
-2
@@ -6289,6 +6289,8 @@ class Row(dict):
|
|||||||
this is only used to store a Row
|
this is only used to store a Row
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
__slots__=()
|
||||||
|
|
||||||
__setattr__ = dict.__setitem__
|
__setattr__ = dict.__setitem__
|
||||||
__getattr__ = dict.__getitem__
|
__getattr__ = dict.__getitem__
|
||||||
__delattr__ = dict.__delitem__
|
__delattr__ = dict.__delitem__
|
||||||
@@ -6501,7 +6503,8 @@ class DAL(dict):
|
|||||||
db.define_table('tablename', Field('fieldname1'),
|
db.define_table('tablename', Field('fieldname1'),
|
||||||
Field('fieldname2'))
|
Field('fieldname2'))
|
||||||
"""
|
"""
|
||||||
|
__slots__ = ()
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def set_folder(folder):
|
def set_folder(folder):
|
||||||
"""
|
"""
|
||||||
@@ -7219,7 +7222,8 @@ class Table(dict):
|
|||||||
db.users.insert(name='me') # print db.users._insert(...) to see SQL
|
db.users.insert(name='me') # print db.users._insert(...) to see SQL
|
||||||
db.users.drop()
|
db.users.drop()
|
||||||
"""
|
"""
|
||||||
|
__slots__ = ()
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
db,
|
db,
|
||||||
|
|||||||
Reference in New Issue
Block a user