Mercurial > piecrust2
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 |
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 |