annotate rhodecode/config/environment.py @ 2165:dc2584ba5fbc

merged beta into default branch
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 28 Mar 2012 19:54:16 +0200
parents 82a88013a3fd 8ecfed1d8f8b
children edfff9f37916
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
1 """Pylons environment configuration"""
1006
02246101c846 moved out celerypylons import to enviromnet to prevent celery from displaying celeryconfig.py warning
Marcin Kuzminski <marcin@python-works.com>
parents: 760
diff changeset
2
02246101c846 moved out celerypylons import to enviromnet to prevent celery from displaying celeryconfig.py warning
Marcin Kuzminski <marcin@python-works.com>
parents: 760
diff changeset
3 import os
02246101c846 moved out celerypylons import to enviromnet to prevent celery from displaying celeryconfig.py warning
Marcin Kuzminski <marcin@python-works.com>
parents: 760
diff changeset
4 import logging
2109
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
5 import rhodecode
1006
02246101c846 moved out celerypylons import to enviromnet to prevent celery from displaying celeryconfig.py warning
Marcin Kuzminski <marcin@python-works.com>
parents: 760
diff changeset
6
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
7 from mako.lookup import TemplateLookup
43
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
8 from pylons.configuration import PylonsConfig
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
9 from pylons.error import handle_mako_error
1006
02246101c846 moved out celerypylons import to enviromnet to prevent celery from displaying celeryconfig.py warning
Marcin Kuzminski <marcin@python-works.com>
parents: 760
diff changeset
10
2109
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
11 # don't remove this import it does magic for celery
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
12 from rhodecode.lib import celerypylons
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
13
1006
02246101c846 moved out celerypylons import to enviromnet to prevent celery from displaying celeryconfig.py warning
Marcin Kuzminski <marcin@python-works.com>
parents: 760
diff changeset
14 import rhodecode.lib.app_globals as app_globals
02246101c846 moved out celerypylons import to enviromnet to prevent celery from displaying celeryconfig.py warning
Marcin Kuzminski <marcin@python-works.com>
parents: 760
diff changeset
15
547
1e757ac98988 renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 491
diff changeset
16 from rhodecode.config.routing import make_map
2109
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
17
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
18 from rhodecode.lib import helpers
1036
405b80e4ccd5 Major refactoring, removed when possible calls to app globals.
Marcin Kuzminski <marcin@python-works.com>
parents: 1018
diff changeset
19 from rhodecode.lib.auth import set_available_permissions
2109
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
20 from rhodecode.lib.utils import repo2db_mapper, make_ui, set_rhodecode_config,\
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
21 load_rcextensions
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
22 from rhodecode.lib.utils2 import engine_from_config, str2bool
547
1e757ac98988 renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 491
diff changeset
23 from rhodecode.model import init_model
691
7486da5f0628 Refactor codes for scm model
Marcin Kuzminski <marcin@python-works.com>
parents: 688
diff changeset
24 from rhodecode.model.scm import ScmModel
239
b18f89d6d17f Adde draft for permissions systems, made all needed decorators, and checks. For future usage in the system.
Marcin Kuzminski <marcin@python-works.com>
parents: 107
diff changeset
25
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
26 log = logging.getLogger(__name__)
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
27
1205
f4807acf643d added __license__ into main of rhodecode, PEP8ify
Marcin Kuzminski <marcin@python-works.com>
parents: 1036
diff changeset
28
365
ec7b76d4bda4 Added initial query skipp when seting up the app.
Marcin Kuzminski <marcin@python-works.com>
parents: 341
diff changeset
29 def load_environment(global_conf, app_conf, initial=False):
2109
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
30 """
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
31 Configure the Pylons environment via the ``pylons.config``
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
32 object
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
33 """
43
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
34 config = PylonsConfig()
631
05528ad948c4 Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents: 629
diff changeset
35
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
36 # Pylons paths
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
37 root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
2109
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
38 paths = dict(
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
39 root=root,
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
40 controllers=os.path.join(root, 'controllers'),
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
41 static_files=os.path.join(root, 'public'),
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
42 templates=[os.path.join(root, 'templates')]
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
43 )
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
44
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
45 # Initialize config with the basic options
547
1e757ac98988 renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 491
diff changeset
46 config.init_app(global_conf, app_conf, package='rhodecode', paths=paths)
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
47
1726
fe8c2e881403 moved pylons config out of global scope for celerypylons
Marcin Kuzminski <marcin@python-works.com>
parents: 1725
diff changeset
48 # store some globals into rhodecode
1723
64e91067b996 - refactoring to overcome poor usage of global pylons config
Marcin Kuzminski <marcin@python-works.com>
parents: 1401
diff changeset
49 rhodecode.CELERY_ON = str2bool(config['app_conf'].get('use_celery'))
64e91067b996 - refactoring to overcome poor usage of global pylons config
Marcin Kuzminski <marcin@python-works.com>
parents: 1401
diff changeset
50
43
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
51 config['routes.map'] = make_map(config)
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
52 config['pylons.app_globals'] = app_globals.Globals(config)
2109
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
53 config['pylons.h'] = helpers
2016
6020e3884a58 implements #212 moved default encoding variable into rhodecode-config. It's now possible to change
Marcin Kuzminski <marcin@python-works.com>
parents: 1726
diff changeset
54 rhodecode.CONFIG = config
2105
926f55b038bc added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents: 2016
diff changeset
55
2109
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
56 load_rcextensions(root_path=config['here'])
8ecfed1d8f8b utils/conf
Marcin Kuzminski <marcin@python-works.com>
parents: 2107
diff changeset
57
43
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
58 # Setup cache object as early as possible
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
59 import pylons
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
60 pylons.cache._push_object(config['pylons.app_globals'].cache)
631
05528ad948c4 Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents: 629
diff changeset
61
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
62 # Create the Mako TemplateLookup, with the default auto-escaping
41
71ffa932799d Added app basic auth.
Marcin Kuzminski <marcin@python-blog.com>
parents: 32
diff changeset
63 config['pylons.app_globals'].mako_lookup = TemplateLookup(
32
f93b523c0be3 dirty fix for multiple file encodings,
Marcin Kuzminski <marcin@python-blog.com>
parents: 12
diff changeset
64 directories=paths['templates'],
f93b523c0be3 dirty fix for multiple file encodings,
Marcin Kuzminski <marcin@python-blog.com>
parents: 12
diff changeset
65 error_handler=handle_mako_error,
f93b523c0be3 dirty fix for multiple file encodings,
Marcin Kuzminski <marcin@python-blog.com>
parents: 12
diff changeset
66 module_directory=os.path.join(app_conf['cache_dir'], 'templates'),
41
71ffa932799d Added app basic auth.
Marcin Kuzminski <marcin@python-blog.com>
parents: 32
diff changeset
67 input_encoding='utf-8', default_filters=['escape'],
71ffa932799d Added app basic auth.
Marcin Kuzminski <marcin@python-blog.com>
parents: 32
diff changeset
68 imports=['from webhelpers.html import escape'])
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
69
2016
6020e3884a58 implements #212 moved default encoding variable into rhodecode-config. It's now possible to change
Marcin Kuzminski <marcin@python-works.com>
parents: 1726
diff changeset
70 # sets the c attribute access when don't existing attribute are accessed
107
5e2470ebdbc6 Added repo switcher, in base and long term caching for this.
Marcin Kuzminski <marcin@python-works.com>
parents: 49
diff changeset
71 config['pylons.strict_tmpl_context'] = True
473
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 469
diff changeset
72 test = os.path.split(config['__file__'])[-1] == 'test.ini'
6b934c9607e7 Improved testing scenarios. Made test env creator
Marcin Kuzminski <marcin@python-works.com>
parents: 469
diff changeset
73 if test:
547
1e757ac98988 renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 491
diff changeset
74 from rhodecode.lib.utils import create_test_env, create_test_index
688
8acbfa837180 Tests rewrite for 1.2 added some globals configs to make tests easier.
Marcin Kuzminski <marcin@python-works.com>
parents: 665
diff changeset
75 from rhodecode.tests import TESTS_TMP_PATH
8acbfa837180 Tests rewrite for 1.2 added some globals configs to make tests easier.
Marcin Kuzminski <marcin@python-works.com>
parents: 665
diff changeset
76 create_test_env(TESTS_TMP_PATH, config)
1725
2370fc2a04f2 reverted whoosh for tests
Marcin Kuzminski <marcin@python-works.com>
parents: 1723
diff changeset
77 create_test_index(TESTS_TMP_PATH, config, True)
631
05528ad948c4 Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents: 629
diff changeset
78
2016
6020e3884a58 implements #212 moved default encoding variable into rhodecode-config. It's now possible to change
Marcin Kuzminski <marcin@python-works.com>
parents: 1726
diff changeset
79 # MULTIPLE DB configs
43
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
80 # Setup the SQLAlchemy database engine
1360
1f47adeb67c2 Bumped sqlalchemy version to 0.7, replaced timerproxy with new event system for sqlalchemy.
Marcin Kuzminski <marcin@python-works.com>
parents: 1300
diff changeset
81 sa_engine_db1 = engine_from_config(config, 'sqlalchemy.db1.')
43
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
82
49
3ada2f409c1c Added sqlalchemy support
Marcin Kuzminski <marcin@python-blog.com>
parents: 43
diff changeset
83 init_model(sa_engine_db1)
631
05528ad948c4 Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents: 629
diff changeset
84
1036
405b80e4ccd5 Major refactoring, removed when possible calls to app globals.
Marcin Kuzminski <marcin@python-works.com>
parents: 1018
diff changeset
85 repos_path = make_ui('db').configitems('paths')[0][1]
405b80e4ccd5 Major refactoring, removed when possible calls to app globals.
Marcin Kuzminski <marcin@python-works.com>
parents: 1018
diff changeset
86 repo2db_mapper(ScmModel().repo_scan(repos_path))
239
b18f89d6d17f Adde draft for permissions systems, made all needed decorators, and checks. For future usage in the system.
Marcin Kuzminski <marcin@python-works.com>
parents: 107
diff changeset
87 set_available_permissions(config)
1036
405b80e4ccd5 Major refactoring, removed when possible calls to app globals.
Marcin Kuzminski <marcin@python-works.com>
parents: 1018
diff changeset
88 config['base_path'] = repos_path
548
b75b77ef649d renamed hg_app to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 547
diff changeset
89 set_rhodecode_config(config)
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
90 # CONFIGURATION OPTIONS HERE (note: all config options will override
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
91 # any Pylons config options)
631
05528ad948c4 Hacking for git support,and new faster repo scan
Marcin Kuzminski <marcin@python-works.com>
parents: 629
diff changeset
92
2016
6020e3884a58 implements #212 moved default encoding variable into rhodecode-config. It's now possible to change
Marcin Kuzminski <marcin@python-works.com>
parents: 1726
diff changeset
93 # store config reference into our module to skip import magic of
6020e3884a58 implements #212 moved default encoding variable into rhodecode-config. It's now possible to change
Marcin Kuzminski <marcin@python-works.com>
parents: 1726
diff changeset
94 # pylons
6020e3884a58 implements #212 moved default encoding variable into rhodecode-config. It's now possible to change
Marcin Kuzminski <marcin@python-works.com>
parents: 1726
diff changeset
95 rhodecode.CONFIG.update(config)
43
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
96 return config