Mercurial > hg > WSGraph
comparison wsgraph/web.py @ 12:421d5119e324
reluctantly make this a CLI entry point
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Mon, 10 Dec 2012 17:30:44 -0800 |
parents | 9016b126aa87 |
children | 7459702bf574 |
comparison
equal
deleted
inserted
replaced
11:7b8e40eda563 | 12:421d5119e324 |
---|---|
3 """ | 3 """ |
4 web handler for WSGraph | 4 web handler for WSGraph |
5 """ | 5 """ |
6 | 6 |
7 import json | 7 import json |
8 import sys | |
8 from webob import Request, Response, exc | 9 from webob import Request, Response, exc |
9 | 10 |
10 # rank constants | 11 # rank constants |
11 GRAPH = 0 | 12 GRAPH = 0 |
12 NODE = 1 | 13 NODE = 1 |
104 | 105 |
105 """ | 106 """ |
106 | 107 |
107 # get resource requestor | 108 # get resource requestor |
108 segments = self.path_segments(request.path_info) | 109 segments = self.path_segments(request.path_info) |
109 if len(segments) not in (0,1,2): | 110 rank = len(segments) |
111 if rank not in (0,1,2): | |
110 return exc.HTTPNotFound() | 112 return exc.HTTPNotFound() |
111 | 113 |
112 | 114 |
113 # is resource in the graph? [TODO] | 115 # is resource in the graph? [TODO] |
116 if (rank == EDGE) or (rank == NODE): | |
117 if tuple(segments) not in self.graph: | |
118 retun exc.HTTPNotFound() | |
114 | 119 |
115 # formatter | 120 # formatter |
116 formatter = self.formatters[len(segments)] | 121 formatter = self.formatters[len(segments)] |
117 return Response(content_type='text/plain', | 122 return Response(content_type='text/plain', |
118 body="WSGraph") | 123 body="WSGraph") |
133 raise NotImplementedError | 138 raise NotImplementedError |
134 | 139 |
135 def OPTIONS(self, request): | 140 def OPTIONS(self, request): |
136 return Response() # TODO: Allow=', '.join(self.methods); Content-Length=0 | 141 return Response() # TODO: Allow=', '.join(self.methods); Content-Length=0 |
137 | 142 |
138 if __name__ == '__main__': | |
139 | 143 |
140 ### example web server | 144 def main(args=sys.argv[1:]): |
145 """example web server""" | |
141 | 146 |
142 # imports | 147 # imports |
143 from wsgiref import simple_server | 148 from wsgiref import simple_server |
144 from model import MemoryCache | 149 from model import MemoryCache |
145 from optparse import OptionParser | 150 from optparse import OptionParser |
157 app = Dispatcher(graph=graph) | 162 app = Dispatcher(graph=graph) |
158 server = simple_server.make_server(host='0.0.0.0', port=options.port, app=app) | 163 server = simple_server.make_server(host='0.0.0.0', port=options.port, app=app) |
159 print 'http://localhost:%s/' % options.port | 164 print 'http://localhost:%s/' % options.port |
160 server.serve_forever() | 165 server.serve_forever() |
161 | 166 |
167 if __name__ == '__main__': | |
168 main() |