Mercurial > hg > WSGraph
comparison wsgraph/web.py @ 21:f56d27f03e4a
pretend we are slick but we can be so much slicker
| author | Jeff Hammel <jhammel@mozilla.com> |
|---|---|
| date | Mon, 10 Dec 2012 17:50:45 -0800 |
| parents | 542232f858a9 |
| children | a401bf63c938 |
comparison
equal
deleted
inserted
replaced
| 20:542232f858a9 | 21:f56d27f03e4a |
|---|---|
| 38 | 38 |
| 39 | 39 |
| 40 class Dispatcher(object): | 40 class Dispatcher(object): |
| 41 | 41 |
| 42 def __init__(self, graph, | 42 def __init__(self, graph, |
| 43 graph_formatters=None, | 43 graph_formatters, |
| 44 node_formatters=None, | 44 node_formatters, |
| 45 edge_formatters=None, | 45 edge_formatters, |
| 46 require_auth=False): | 46 require_auth=False): |
| 47 self.graph = graph | 47 self.graph = graph |
| 48 self.require_auth = require_auth | 48 self.require_auth = require_auth |
| 49 | |
| 50 # use JSON formatter by default | |
| 51 if graph_formatters is None: | |
| 52 graph_formatters = {None: JSONGraphFormatter} | |
| 53 if node_formatters is None: | |
| 54 node_formatters = {None: JSONFormatter} | |
| 55 if edge_formatters is None: | |
| 56 edge_formatters = {None: JSONFormatter} | |
| 57 | 49 |
| 58 # view formatters | 50 # view formatters |
| 59 self.formatters = {GRAPH: graph_formatters, | 51 self.formatters = {GRAPH: graph_formatters, |
| 60 NODE: node_formatters, | 52 NODE: node_formatters, |
| 61 EDGE: edge_formatters} | 53 EDGE: edge_formatters} |
| 164 | 156 |
| 165 # example model | 157 # example model |
| 166 graph = MemoryCache() | 158 graph = MemoryCache() |
| 167 | 159 |
| 168 # example formatter(s) | 160 # example formatter(s) |
| 169 # TODO | 161 formatter = JSONformatter(content_type='text/plain') |
| 162 _formatters = {} | |
| 163 _formatters = dict([('%s_formatters' % i, {None: getattr(formatter, i)}) | |
| 164 for i in 'graph', 'node', 'edge']) | |
| 170 | 165 |
| 171 # WSGI app | 166 # WSGI app |
| 172 app = Dispatcher(graph=graph) | 167 app = Dispatcher(graph=graph, **_formatters) |
| 173 server = simple_server.make_server(host='0.0.0.0', port=options.port, app=app) | 168 server = simple_server.make_server(host='0.0.0.0', port=options.port, app=app) |
| 174 print 'http://localhost:%s/' % options.port | 169 print 'http://localhost:%s/' % options.port |
| 175 server.serve_forever() | 170 server.serve_forever() |
| 176 | 171 |
| 177 if __name__ == '__main__': | 172 if __name__ == '__main__': |
