annotate pylons_app/config/environment.py @ 49:3ada2f409c1c

Added sqlalchemy support made models for database changed views to handle sqlalchemy
author Marcin Kuzminski <marcin@python-blog.com>
date Thu, 08 Apr 2010 01:50:46 +0200
parents 2e1247e62c5b
children 5e2470ebdbc6
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"""
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
2 import logging
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
3 import os
12
5f30a6d558dc Added pylons manage script
Marcin Kuzminski
parents: 0
diff changeset
4
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
5 from mako.lookup import TemplateLookup
43
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
6 from pylons.configuration import PylonsConfig
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
7 from pylons.error import handle_mako_error
43
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
8 from sqlalchemy import engine_from_config
12
5f30a6d558dc Added pylons manage script
Marcin Kuzminski
parents: 0
diff changeset
9
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
10 import pylons_app.lib.app_globals as app_globals
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
11 import pylons_app.lib.helpers
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
12 from pylons_app.config.routing import make_map
43
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
13 from pylons_app.model import init_model
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
14
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
15 log = logging.getLogger(__name__)
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
16
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
17 def load_environment(global_conf, app_conf):
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
18 """Configure the Pylons environment via the ``pylons.config``
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
19 object
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
20 """
43
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
21 config = PylonsConfig()
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
22
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
23 # Pylons paths
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
24 root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
32
f93b523c0be3 dirty fix for multiple file encodings,
Marcin Kuzminski <marcin@python-blog.com>
parents: 12
diff changeset
25 paths = dict(root=root,
f93b523c0be3 dirty fix for multiple file encodings,
Marcin Kuzminski <marcin@python-blog.com>
parents: 12
diff changeset
26 controllers=os.path.join(root, 'controllers'),
f93b523c0be3 dirty fix for multiple file encodings,
Marcin Kuzminski <marcin@python-blog.com>
parents: 12
diff changeset
27 static_files=os.path.join(root, 'public'),
f93b523c0be3 dirty fix for multiple file encodings,
Marcin Kuzminski <marcin@python-blog.com>
parents: 12
diff changeset
28 templates=[os.path.join(root, 'templates')])
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
29
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
30 # Initialize config with the basic options
43
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
31 config.init_app(global_conf, app_conf, package='pylons_app', paths=paths)
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
32
43
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
33 config['routes.map'] = make_map(config)
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
34 config['pylons.app_globals'] = app_globals.Globals(config)
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
35 config['pylons.h'] = pylons_app.lib.helpers
43
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
36
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
37 # Setup cache object as early as possible
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
38 import pylons
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
39 pylons.cache._push_object(config['pylons.app_globals'].cache)
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
40
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
41
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
42 # 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
43 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
44 directories=paths['templates'],
f93b523c0be3 dirty fix for multiple file encodings,
Marcin Kuzminski <marcin@python-blog.com>
parents: 12
diff changeset
45 error_handler=handle_mako_error,
f93b523c0be3 dirty fix for multiple file encodings,
Marcin Kuzminski <marcin@python-blog.com>
parents: 12
diff changeset
46 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
47 input_encoding='utf-8', default_filters=['escape'],
71ffa932799d Added app basic auth.
Marcin Kuzminski <marcin@python-blog.com>
parents: 32
diff changeset
48 imports=['from webhelpers.html import escape'])
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
49
43
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
50 #sets the c attribute access when don't existing attribute ar accessed
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
51 config['pylons.strict_tmpl_context'] = False
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
52
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
53 #MULTIPLE DB configs
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
54 # Setup the SQLAlchemy database engine
49
3ada2f409c1c Added sqlalchemy support
Marcin Kuzminski <marcin@python-blog.com>
parents: 43
diff changeset
55 if config['debug']:
3ada2f409c1c Added sqlalchemy support
Marcin Kuzminski <marcin@python-blog.com>
parents: 43
diff changeset
56 #use query time debugging.
3ada2f409c1c Added sqlalchemy support
Marcin Kuzminski <marcin@python-blog.com>
parents: 43
diff changeset
57 from pylons_app.lib.timerproxy import TimerProxy
3ada2f409c1c Added sqlalchemy support
Marcin Kuzminski <marcin@python-blog.com>
parents: 43
diff changeset
58 sa_engine_db1 = engine_from_config(config, 'sqlalchemy.db1.',
3ada2f409c1c Added sqlalchemy support
Marcin Kuzminski <marcin@python-blog.com>
parents: 43
diff changeset
59 proxy=TimerProxy())
3ada2f409c1c Added sqlalchemy support
Marcin Kuzminski <marcin@python-blog.com>
parents: 43
diff changeset
60 else:
3ada2f409c1c Added sqlalchemy support
Marcin Kuzminski <marcin@python-blog.com>
parents: 43
diff changeset
61 sa_engine_db1 = engine_from_config(config, 'sqlalchemy.db1.')
43
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
62
49
3ada2f409c1c Added sqlalchemy support
Marcin Kuzminski <marcin@python-blog.com>
parents: 43
diff changeset
63 init_model(sa_engine_db1)
43
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
64
0
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
65 # CONFIGURATION OPTIONS HERE (note: all config options will override
564e40829f80 initial commit.
Marcin Kuzminski
parents:
diff changeset
66 # any Pylons config options)
43
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
67
2e1247e62c5b changed for pylons 0.1 / 1.0
marcink
parents: 41
diff changeset
68 return config