annotate piecrust/wsgiutil/cwdapp.py @ 440:32c7c2d219d2

performance: Refactor how data is managed to reduce copying. * Make use of `collections.abc.Mapping` to better identify things that are supposed to look like dictionaries. * Instead of handling "overlay" of data in a dict tree in each different data object, make all objects `Mapping`s and handle merging at a higher level with the new `MergedMapping` object. * Since this new object is read-only, remove the need for deep-copying of app and page configurations. * Split data classes into separate modules.
author Ludovic Chabant <ludovic@chabant.com>
date Sun, 28 Jun 2015 08:22:39 -0700
parents d40b744a9d99
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
376
21687b933193 serve: Add a WSGI utility module for easily getting a default app.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
1 # This is a utility module that can be used with any WSGI-compatible server
21687b933193 serve: Add a WSGI utility module for easily getting a default app.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
2 # like Werkzeug or Gunicorn. It returns a WSGI app for serving a PieCrust
21687b933193 serve: Add a WSGI utility module for easily getting a default app.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
3 # website located in the current working directory.
21687b933193 serve: Add a WSGI utility module for easily getting a default app.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
4 import os
379
d40b744a9d99 serve: Add a generic WSGI app factory.
Ludovic Chabant <ludovic@chabant.com>
parents: 378
diff changeset
5 from piecrust.wsgiutil import get_app
376
21687b933193 serve: Add a WSGI utility module for easily getting a default app.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
6
21687b933193 serve: Add a WSGI utility module for easily getting a default app.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
7
21687b933193 serve: Add a WSGI utility module for easily getting a default app.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
8 root_dir = os.getcwd()
379
d40b744a9d99 serve: Add a generic WSGI app factory.
Ludovic Chabant <ludovic@chabant.com>
parents: 378
diff changeset
9 app = get_app(root_dir)
378
fe8a58817088 serve: Compatibility with `mod_wsgi`.
Ludovic Chabant <ludovic@chabant.com>
parents: 376
diff changeset
10 # Add this for `mod_wsgi`.
fe8a58817088 serve: Compatibility with `mod_wsgi`.
Ludovic Chabant <ludovic@chabant.com>
parents: 376
diff changeset
11 application = app
376
21687b933193 serve: Add a WSGI utility module for easily getting a default app.
Ludovic Chabant <ludovic@chabant.com>
parents:
diff changeset
12