- Timestamp:
- 07/02/08 01:19:31 (5 months ago)
- Files:
-
- fizzjik/fizzjik/hub.py (modified) (2 diffs)
- fizzjik/fizzjik/io/rest.py (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
fizzjik/fizzjik/hub.py
r79 r82 16 16 config = None 17 17 18 18 19 def __init__(self, config=None, *args, **kw): 19 20 service.MultiService.__init__(self, *args, **kw) … … 25 26 self.config = ConfigParser() 26 27 self.config.read(config) 28 29 @property 30 def name(self): 31 return self.__class__.__name__ 27 32 28 33 def startService(self, *args, **kw): fizzjik/fizzjik/io/rest.py
r79 r82 1 1 import inspect 2 import logging 2 3 3 4 from twisted.web2 import server, channel … … 35 36 36 37 return None 37 38 39 def child_(self, request): 40 return self 38 41 39 42 def render(self, ctx): 40 41 43 if self.method: 42 44 return self.renderMethod(ctx) 45 elif hasattr(self.service, 'getServiceNamed'): 46 return self.renderHub(ctx) 43 47 elif self.service: 44 48 return self.renderService(ctx) 49 50 def renderHub(self, ctx): 51 services = {} 52 for k, s in self.service.namedServices.iteritems(): 53 services[k] = self._getPublicMethods(s) 54 out_methods = self._getPublicMethods(self.service) 45 55 56 resp = {'service': self.service.name, 57 'sub_services': services, 58 'public_methods': out_methods} 59 60 return http.Response(stream=simplejson.dumps(resp, sort_keys=True, 61 indent=2)) 46 62 47 63 def renderService(self, ctx): 48 public_methods = {} 49 50 for k in dir(self.service): 51 a = getattr(self.service, k) 52 if hasattr(a, 'public'): 53 public_methods[k] = a 54 55 out_methods = {} 56 for k, f in public_methods.iteritems(): 57 out_methods[k] = {} 58 out_methods[k]['spec'] = inspect.formatargspec( 59 inspect.getargspec(f.im_func)) 60 out_methods[k]['doc'] = getattr(f, '__doc__', '') 64 out_methods = self_getPublicMethods(self.service) 61 65 62 66 resp = {'service': self.service.name, … … 83 87 return http.Response(stream=s) 84 88 89 def _getPublicMethods(self, svc): 90 public_methods = {} 91 92 for k in dir(svc): 93 a = getattr(svc, k) 94 if hasattr(a, 'public'): 95 public_methods[k] = a 96 97 out_methods = {} 98 for k, f in public_methods.iteritems(): 99 out_methods[k] = {} 100 out_methods[k]['spec'] = inspect.formatargspec( 101 inspect.getargspec(f.im_func)) 102 out_methods[k]['doc'] = getattr(f, '__doc__', '') 103 return out_methods 104 85 105 class ResterizerFactory(channel.HTTPFactory): 86 106 def __init__(self, parent):
