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

# Module compileapp

source code
This file is part of the web2py Web Framework Copyrighted by Massimo Di Pierro <mdipierro@cs.depaul.edu> License: LGPLv3 (http://www.gnu.org/licenses/lgpl.html)

# Functions required to execute app components

FOR INTERNAL USE ONLY

Classes | [hide private]
| mybuiltin NOTE could simple use a dict and populate it, NOTE not sure if this changes things though if monkey patching import.....
| LoadFactory Attention: this helper is new and experimental

Functions | [hide private]
local_import_aux(name, force=True, app=`'``welcome``'`) 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. | source code
build_environment(request, response, session, store_current=True) 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]
| logger = `logging.getLogger("web2py")`
| is_gae = `1` PyMySQL: A pure-Python drop-in replacement for MySQLdb.
| is_jython = `True`
| TEST_CODE = ``'``\ndef _TEST():\n import doctest, sys, cStringI``...``

Function Details | [hide private]

### local_import_aux(name, force=True, 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(401, web2py_error=\'invalid credentials\')
          stdout = sys.stdout
          html = \'<h2>Testing controller "%s.py" ... done.</h2><br/>\\n\' \
      \
      ...