##// END OF EJS Templates
fixes #200, rewrote the whole caching mechanism to get rid of such problems. Now cached instances are attached...
fixes #200, rewrote the whole caching mechanism to get rid of such problems. Now cached instances are attached to db repository instance, and then fetched from cache. Also made all current test work.

File last commit:

r1360:1f47adeb beta
r1366:9c0f5d55 beta
Show More
environment.py
80 lines | 2.9 KiB | text/x-python | PythonLexer
renamed project to rhodecode
r547 """Pylons environment configuration"""
moved out celerypylons import to enviromnet to prevent celery from displaying celeryconfig.py warning
r1006
import os
import logging
renamed project to rhodecode
r547 from mako.lookup import TemplateLookup
from pylons.configuration import PylonsConfig
from pylons.error import handle_mako_error
moved out celerypylons import to enviromnet to prevent celery from displaying celeryconfig.py warning
r1006
import rhodecode.lib.app_globals as app_globals
import rhodecode.lib.helpers
renamed project to rhodecode
r547 from rhodecode.config.routing import make_map
moved out celerypylons import to enviromnet to prevent celery from displaying celeryconfig.py warning
r1006 from rhodecode.lib import celerypylons
fixed problem with `Cannot operate on a closed database` error, by forcing NullPool when using sqlite database.
r1300 from rhodecode.lib import engine_from_config
from rhodecode.lib.timerproxy import TimerProxy
Major refactoring, removed when possible calls to app globals....
r1036 from rhodecode.lib.auth import set_available_permissions
renamed hg_app to rhodecode
r548 from rhodecode.lib.utils import repo2db_mapper, make_ui, set_rhodecode_config
renamed project to rhodecode
r547 from rhodecode.model import init_model
Refactor codes for scm model...
r691 from rhodecode.model.scm import ScmModel
renamed project to rhodecode
r547
log = logging.getLogger(__name__)
added __license__ into main of rhodecode, PEP8ify
r1205
renamed project to rhodecode
r547 def load_environment(global_conf, app_conf, initial=False):
"""Configure the Pylons environment via the ``pylons.config``
object
"""
config = PylonsConfig()
Hacking for git support,and new faster repo scan
r631
renamed project to rhodecode
r547 # Pylons paths
root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
paths = dict(root=root,
controllers=os.path.join(root, 'controllers'),
static_files=os.path.join(root, 'public'),
templates=[os.path.join(root, 'templates')])
# Initialize config with the basic options
config.init_app(global_conf, app_conf, package='rhodecode', paths=paths)
config['routes.map'] = make_map(config)
config['pylons.app_globals'] = app_globals.Globals(config)
config['pylons.h'] = rhodecode.lib.helpers
Hacking for git support,and new faster repo scan
r631
renamed project to rhodecode
r547 # Setup cache object as early as possible
import pylons
pylons.cache._push_object(config['pylons.app_globals'].cache)
Hacking for git support,and new faster repo scan
r631
renamed project to rhodecode
r547 # Create the Mako TemplateLookup, with the default auto-escaping
config['pylons.app_globals'].mako_lookup = TemplateLookup(
directories=paths['templates'],
error_handler=handle_mako_error,
module_directory=os.path.join(app_conf['cache_dir'], 'templates'),
input_encoding='utf-8', default_filters=['escape'],
imports=['from webhelpers.html import escape'])
#sets the c attribute access when don't existing attribute are accessed
config['pylons.strict_tmpl_context'] = True
test = os.path.split(config['__file__'])[-1] == 'test.ini'
if test:
from rhodecode.lib.utils import create_test_env, create_test_index
Tests rewrite for 1.2 added some globals configs to make tests easier....
r688 from rhodecode.tests import TESTS_TMP_PATH
create_test_env(TESTS_TMP_PATH, config)
create_test_index(TESTS_TMP_PATH, True)
Hacking for git support,and new faster repo scan
r631
renamed project to rhodecode
r547 #MULTIPLE DB configs
# Setup the SQLAlchemy database engine
Bumped sqlalchemy version to 0.7, replaced timerproxy with new event system for sqlalchemy....
r1360 sa_engine_db1 = engine_from_config(config, 'sqlalchemy.db1.')
renamed project to rhodecode
r547
init_model(sa_engine_db1)
Hacking for git support,and new faster repo scan
r631
Major refactoring, removed when possible calls to app globals....
r1036 repos_path = make_ui('db').configitems('paths')[0][1]
repo2db_mapper(ScmModel().repo_scan(repos_path))
renamed project to rhodecode
r547 set_available_permissions(config)
Major refactoring, removed when possible calls to app globals....
r1036 config['base_path'] = repos_path
renamed hg_app to rhodecode
r548 set_rhodecode_config(config)
renamed project to rhodecode
r547 # CONFIGURATION OPTIONS HERE (note: all config options will override
# any Pylons config options)
Hacking for git support,and new faster repo scan
r631
renamed project to rhodecode
r547 return config