From 7f5fc798c5248e2211f91986588f8cec74771142 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Richard=20V=C3=A9zina?= Date: Wed, 21 Jun 2017 13:30:02 -0400 Subject: [PATCH] Enhance compileapp.py PEP8 --- gluon/compileapp.py | 43 +++++++++++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/gluon/compileapp.py b/gluon/compileapp.py index 3dc08bcb..a40328ca 100644 --- a/gluon/compileapp.py +++ b/gluon/compileapp.py @@ -41,11 +41,12 @@ import imp import logging import types from functools import reduce -logger = logging.getLogger("web2py") from gluon import rewrite from gluon.custom_import import custom_import_install import py_compile +logger = logging.getLogger("web2py") + is_pypy = settings.global_settings.is_pypy is_gae = settings.global_settings.web2py_runtime_gae is_jython = settings.global_settings.is_jython @@ -111,7 +112,7 @@ class mybuiltin(object): NOTE could simple use a dict and populate it, NOTE not sure if this changes things though if monkey patching import..... """ - #__builtins__ + # __builtins__ def __getitem__(self, key): try: return getattr(builtin, key) @@ -185,7 +186,7 @@ def LOAD(c=None, f='index', args=None, vars=None, else: statement = "$.web2py.component('%s','%s');" % (url, target) attr['_data-w2p_remote'] = url - if not target is None: + if target is not None: return DIV(content, **attr) else: @@ -211,7 +212,8 @@ def LOAD(c=None, f='index', args=None, vars=None, request.env.path_info other_request.cid = target other_request.env.http_web2py_component_element = target - other_request.restful = types.MethodType(request.restful.__func__, other_request) # A bit nasty but needed to use LOAD on action decorates with @request.restful() + other_request.restful = types.MethodType(request.restful.__func__, other_request) + # A bit nasty but needed to use LOAD on action decorates with @request.restful() other_response.view = '%s/%s.%s' % (c, f, other_request.extension) other_environment = copy.copy(current.globalenv) # NASTY @@ -405,7 +407,7 @@ def build_environment(request, response, session, store_current=True): """ Build the environment dictionary into which web2py files are executed. """ - #h,v = html,validators + # h,v = html,validators environment = dict(_base_environment_) if not request.env: @@ -418,7 +420,7 @@ def build_environment(request, response, session, store_current=True): r'^%s/%s/\w+\.py$' % (request.controller, request.function) ] - t = environment['T'] = translator(os.path.join(request.folder,'languages'), + t = environment['T'] = translator(os.path.join(request.folder, 'languages'), request.env.http_accept_language) c = environment['cache'] = Cache(request) @@ -506,10 +508,12 @@ def compile_models(folder): save_pyc(filename) os.unlink(filename) + def find_exposed_functions(data): - data = regex_longcomments.sub('',data) + data = regex_longcomments.sub('', data) return regex_expose.findall(data) + def compile_controllers(folder): """ Compiles all the controllers in the application specified by `folder` @@ -524,16 +528,19 @@ def compile_controllers(folder): command = data + "\nresponse._vars=response._caller(%s)\n" % \ function filename = pjoin(folder, 'compiled', - 'controllers.%s.%s.py' % (fname[:-3],function)) + 'controllers.%s.%s.py' % (fname[:-3], function)) write_file(filename, command) save_pyc(filename) os.unlink(filename) + def model_cmp(a, b, sep='.'): return cmp(a.count(sep), b.count(sep)) or cmp(a, b) + def model_cmp_sep(a, b, sep=os.path.sep): - return model_cmp(a,b,sep) + return model_cmp(a, b, sep) + def run_models_in(environment): """ @@ -544,7 +551,7 @@ def run_models_in(environment): request = current.request folder = request.folder c = request.controller - #f = environment['request'].function + # f = environment['request'].function response = current.response path = pjoin(folder, 'models') @@ -557,9 +564,11 @@ def run_models_in(environment): models = sorted(listdir(path, '^\w+\.py$', 0, sort=False), model_cmp_sep) else: if compiled: - models = sorted(listdir(cpath, '^models[_.][\w.]+\.pyc$', 0), key=lambda f: '{0:03d}'.format(f.count('.')) + f) + models = sorted(listdir(cpath, '^models[_.][\w.]+\.pyc$', 0), + key=lambda f: '{0:03d}'.format(f.count('.')) + f) else: - models = sorted(listdir(path, '^\w+\.py$', 0, sort=False), key=lambda f: '{0:03d}'.format(f.count(os.path.sep)) + f) + models = sorted(listdir(path, '^\w+\.py$', 0, sort=False), + key=lambda f: '{0:03d}'.format(f.count(os.path.sep)) + f) models_to_run = None for model in models: @@ -570,10 +579,10 @@ def run_models_in(environment): if models_to_run: if compiled: n = len(cpath)+8 - fname = model[n:-4].replace('.','/')+'.py' + fname = model[n:-4].replace('.', '/')+'.py' else: n = len(path)+1 - fname = model[n:].replace(os.path.sep,'/') + fname = model[n:].replace(os.path.sep, '/') if not regex.search(fname) and c != 'appadmin': continue elif compiled: @@ -583,6 +592,7 @@ def run_models_in(environment): ccode = getcfs(model, model, f) restricted(ccode, environment, layer=model) + def run_controller_in(controller, function, environment): """ Runs the controller.function() (for the app specified by @@ -631,7 +641,7 @@ def run_controller_in(controller, function, environment): web2py_error=badc) code = getcfs(filename, filename, lambda: read_file(filename)) exposed = find_exposed_functions(code) - if not function in exposed: + if function not in exposed: raise HTTP(404, rewrite.THREAD_LOCAL.routes.error_message % badf, web2py_error=badf) @@ -678,7 +688,7 @@ def run_view_in(environment): layer = 'file stream' else: filename = pjoin(folder, 'views', view) - if os.path.exists(cpath): # compiled views + if os.path.exists(cpath): # compiled views x = view.replace('/', '.') files = ['views.%s.pyc' % x] is_compiled = os.path.exists(pjoin(cpath, files[0])) @@ -715,6 +725,7 @@ def run_view_in(environment): # parse_template saves everything in response body return environment['response'].body.getvalue() + def remove_compiled_application(folder): """ Deletes the folder `compiled` containing the compiled application.