Package web2py :: Package gluon :: Module compileapp
[hide private]
[frames] | no frames]

Module compileapp

source code

This file is part of web2py Web Framework (Copyrighted, 2007-2010). Developed by Massimo Di Pierro <mdipierro@cs.depaul.edu>. License: GPL v2

Functions required to execute app components

FOR INTERNAL USE ONLY

Classes [hide private]
  LoadFactory
Attention: this helper is new and experimental
Functions [hide private]
 
getcfs(key, filename, filter=None)
Caches the *filtered* file `filename` with `key` until the file is modified.
source code
 
local_import_aux(name, force=False, app='welcome')
In apps, instead of importing a local module (in applications/app/modules) with::
source code
 
build_environment(request, response, session)
Build the environment dictionary into which web2py files are executed.
source code
 
save_pyc(filename)
Bytecode compiles the file `filename`
source code
 
read_pyc(filename)
Read the code inside a bytecode compiled file if the MAGIC number is compatible
source code
 
compile_views(folder)
Compiles all the views in the application specified by `folder`
source code
 
compile_models(folder)
Compiles all the models in the application specified by `folder`
source code
 
compile_controllers(folder)
Compiles all the controllers in the application specified by `folder`
source code
 
run_models_in(environment)
Runs all models (in the app specified by the current folder) It tries pre-compiled models first before compiling them.
source code
 
run_controller_in(controller, function, environment)
Runs the controller.function() (for the app specified by the current folder).
source code
 
run_view_in(environment)
Executes the view for the requested action.
source code
 
remove_compiled_application(folder)
Deletes the folder `compiled` containing the compiled application.
source code
 
compile_application(folder)
Compiles all models, views, controller for the application in `folder`.
source code
 
test()
Example:
source code
Variables [hide private]
  is_gae = None
  TEST_CODE = '\ndef _TEST():\n import doctest, sys, cStringI...
  cfs = {}
  cfs_lock = thread.allocate_lock()
Function Details [hide private]

getcfs(key, filename, filter=None)

source code 

Caches the *filtered* file `filename` with `key` until the file is
modified.

:param key: the cache key
:param filename: the file to cache
:param filter: is the function used for filtering. Normally `filename` is a
    .py file and `filter` is a function that bytecode compiles the file.
    In this way the bytecode compiled file is cached. (Default = None)

This is used on Google App Engine since pyc files cannot be saved.

local_import_aux(name, force=False, app='welcome')

source code 

In apps, instead of importing a local module
(in applications/app/modules) with::

   import a.b.c as d

you should do::

   d = local_import('a.b.c')

or (to force a reload):

   d = local_import('a.b.c', reload=True)

This prevents conflict between applications and un-necessary execs.
It can be used to import any module, including regular Python modules.

read_pyc(filename)

source code 

Read the code inside a bytecode compiled file if the MAGIC number is compatible

:returns: a code object

run_controller_in(controller, function, environment)

source code 

Runs the controller.function() (for the app specified by the current folder). It tries pre-compiled controller_function.pyc first before compiling it.

run_view_in(environment)

source code 

Executes the view for the requested action. The view is the one specified in `response.view` or determined by the url or `view/generic.extension` It tries the pre-compiled views_controller_function.pyc before compiling it.

test()

source code 

Example:

   >>> import traceback, types
   >>> environment={'x':1}
   >>> open('a.py', 'w').write('print 1/x')
   >>> save_pyc('a.py')
   >>> os.unlink('a.py')
   >>> if type(read_pyc('a.pyc'))==types.CodeType: print 'code'
   code
   >>> exec read_pyc('a.pyc') in environment
   1

Variables Details [hide private]

TEST_CODE

Value:
'''
def _TEST():
    import doctest, sys, cStringIO, types, cgi, gluon.fileutils
    if not gluon.fileutils.check_credentials(request):
        raise HTTP(400, web2py_error=\'invalid credentials\')
    stdout = sys.stdout
    html = \'<h2>Testing controller "%s.py" ... done.</h2><br/>\\n\' \\
\
...