Mercurial > hg > wsgintegrate
annotate wsgintegrate/factory.py @ 20:caf763fc1c7d
front end more servers
author | Jeff Hammel <k0scist@gmail.com> |
---|---|
date | Thu, 06 Mar 2014 22:52:25 -0800 |
parents | 67cc627cbea7 |
children | d742aff49859 |
rev | line source |
---|---|
2
70fa0bda7726
stub factory class built on pyloader class
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
1 """ |
70fa0bda7726
stub factory class built on pyloader class
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
2 WSGI integration factory |
70fa0bda7726
stub factory class built on pyloader class
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
3 """ |
70fa0bda7726
stub factory class built on pyloader class
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
4 |
10
67cc627cbea7
stub reloading; does not yet work
Jeff Hammel <jhammel@mozilla.com>
parents:
3
diff
changeset
|
5 import os |
67cc627cbea7
stub reloading; does not yet work
Jeff Hammel <jhammel@mozilla.com>
parents:
3
diff
changeset
|
6 import sys |
2
70fa0bda7726
stub factory class built on pyloader class
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
7 from pyloader.factory import IniFactory |
70fa0bda7726
stub factory class built on pyloader class
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
8 |
70fa0bda7726
stub factory class built on pyloader class
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
9 class WSGIfactory(IniFactory): |
10
67cc627cbea7
stub reloading; does not yet work
Jeff Hammel <jhammel@mozilla.com>
parents:
3
diff
changeset
|
10 def __init__(self, inifile, main=''): |
67cc627cbea7
stub reloading; does not yet work
Jeff Hammel <jhammel@mozilla.com>
parents:
3
diff
changeset
|
11 IniFactory.__init__(self, inifile, main) |
67cc627cbea7
stub reloading; does not yet work
Jeff Hammel <jhammel@mozilla.com>
parents:
3
diff
changeset
|
12 self.mtime = os.path.getmtime(self.inifile) |
67cc627cbea7
stub reloading; does not yet work
Jeff Hammel <jhammel@mozilla.com>
parents:
3
diff
changeset
|
13 |
2
70fa0bda7726
stub factory class built on pyloader class
Jeff Hammel <jhammel@mozilla.com>
parents:
diff
changeset
|
14 def __call__(self, environ, start_response): |
10
67cc627cbea7
stub reloading; does not yet work
Jeff Hammel <jhammel@mozilla.com>
parents:
3
diff
changeset
|
15 """WSGI application""" |
67cc627cbea7
stub reloading; does not yet work
Jeff Hammel <jhammel@mozilla.com>
parents:
3
diff
changeset
|
16 |
67cc627cbea7
stub reloading; does not yet work
Jeff Hammel <jhammel@mozilla.com>
parents:
3
diff
changeset
|
17 # if the configuration has changed, |
67cc627cbea7
stub reloading; does not yet work
Jeff Hammel <jhammel@mozilla.com>
parents:
3
diff
changeset
|
18 # reload the .ini file |
67cc627cbea7
stub reloading; does not yet work
Jeff Hammel <jhammel@mozilla.com>
parents:
3
diff
changeset
|
19 mtime = os.path.getmtime(self.inifile) |
67cc627cbea7
stub reloading; does not yet work
Jeff Hammel <jhammel@mozilla.com>
parents:
3
diff
changeset
|
20 if mtime > self.mtime: |
67cc627cbea7
stub reloading; does not yet work
Jeff Hammel <jhammel@mozilla.com>
parents:
3
diff
changeset
|
21 print "Reloading '%s': %s > %s" % (self.inifile, mtime, self.mtime) |
67cc627cbea7
stub reloading; does not yet work
Jeff Hammel <jhammel@mozilla.com>
parents:
3
diff
changeset
|
22 try: |
67cc627cbea7
stub reloading; does not yet work
Jeff Hammel <jhammel@mozilla.com>
parents:
3
diff
changeset
|
23 config = self.read(self.inifile) |
67cc627cbea7
stub reloading; does not yet work
Jeff Hammel <jhammel@mozilla.com>
parents:
3
diff
changeset
|
24 self.configure(config) |
67cc627cbea7
stub reloading; does not yet work
Jeff Hammel <jhammel@mozilla.com>
parents:
3
diff
changeset
|
25 except Exception, e: |
67cc627cbea7
stub reloading; does not yet work
Jeff Hammel <jhammel@mozilla.com>
parents:
3
diff
changeset
|
26 print >> sys.stderr, "Error reading '%s': %s" % (self.inifile, e) |
67cc627cbea7
stub reloading; does not yet work
Jeff Hammel <jhammel@mozilla.com>
parents:
3
diff
changeset
|
27 self.mtime = mtime |
20 | 28 |
3 | 29 app = self.load(self.main) |
30 return app(environ, start_response) |