コード例 #1
0
 def test_as_app(self):
     """The agent class can be accessed as an application."""
     app = BaseAgent().as_app()
     multi_service = IService(app, None)
     self.assertTrue(IServiceCollection.providedBy(multi_service))
     services = list(multi_service)
     self.assertEqual(len(services), 1)
コード例 #2
0
ファイル: test_base.py プロジェクト: mcclurmc/juju
 def test_as_app(self):
     """The agent class can be accessed as an application."""
     app = BaseAgent().as_app()
     multi_service = IService(app, None)
     self.assertTrue(IServiceCollection.providedBy(multi_service))
     services = list(multi_service)
     self.assertEqual(len(services), 1)
コード例 #3
0
def inServiceHierarchy(svc, predicate):
    """
    Find services in the service collection which satisfy the given predicate.
    """
    for subsvc in svc.services:
        if IServiceCollection.providedBy(subsvc):
            for value in inServiceHierarchy(subsvc, predicate):
                yield value
        if predicate(subsvc):
            yield subsvc
コード例 #4
0
def inServiceHierarchy(svc, predicate):
    """
    Find services in the service collection which satisfy the given predicate.
    """
    for subsvc in svc.services:
        if IServiceCollection.providedBy(subsvc):
            for value in inServiceHierarchy(subsvc, predicate):
                yield value
        if predicate(subsvc):
            yield subsvc
コード例 #5
0
def _scan_app_services(acc, root, prefix):
    vc = 0
    for s in root:
        sname = s.name
        if not sname:
            vc += 1
            sname = "$%d" % vc
        acc[prefix + sname] = s
        if IServiceCollection.providedBy(s):
            _scan_app_services(acc, s, sname + ".")
    return acc
コード例 #6
0
ファイル: services.py プロジェクト: bithub/bit.bot.base
 def _flatten(self, name, service):
     klass = '%s.%s' % (
         service.__module__, service.__class__.__name__)
     _service = {}
     _service['services'] = []
     _service['multi'] = False
     if IServiceCollection.providedBy(service):
         _service['multi'] = True
         for sub, subservice in service.namedServices.items():
             _service['services'].append(self._flatten(sub, subservice))
     for k in ['port', 'running']:
         if hasattr(service, k):
             _service[k] = str(getattr(service, k))
     _service['klass'] = klass
     _service['name'] = name
     _service['parent'] = service.parent.name
     return _service
コード例 #7
0
ファイル: agent.py プロジェクト: bithub/bit.bot.base
 def _flatten(self, name, agent):
     klass = '%s.%s' % (agent.__module__, agent.__class__.__name__)
     _agent = {}
     _agent['agents'] = []
     _agent['multi'] = False
     if IServiceCollection.providedBy(agent):
         _agent['multi'] = True
         for sub, subagent in agent.namedAgents.items():
             _agent['agents'].append(
                 self._flatten(sub, subagent))
     for k in ['port', 'running']:
         if hasattr(agent, k):
             _agent[k] = str(getattr(agent, k))
     _agent['klass'] = klass
     _agent['name'] = name
     _agent['parent'] = '%s.%s' % (
         agent.parent.__module__, agent.parent.__class__.__name__)
     return _agent