class AnotherService(Service): deps = Needs( ['a'] ) # no interface supplied, but inherited with shared port of domain @provides def get_another(self, *args, **kwargs): return self.deps.a(*args, **kwargs)
class MyService(Service): deps = Needs(['a', 'b']) @provides def get_a(self): return self.deps.a() @provides def get_b(self): return self.deps.b()
class E(Service): deps = Needs(['b']) @provides def e(self, value): return self.deps.b(value=2 * value)
class B(Service): deps = Needs(['c']) @provides def b(self, value): return (value * 10) + self.deps.c()
class A(Service): deps = Needs(['b']) @provides def a(self, value): return self.deps.b(value=value)
class Consumer(Service): deps = Needs(['food']) @provides def eat(self): return self.deps.food()
class MyService(Service): deps = Needs(['health']) @provides def happiness(self): return self.deps.health()
class MyService(Service): deps = Needs(['health', 'time', 'money']) @provides def happiness(self): return self.deps.health(), self.deps.time(), self.deps.money()