from cpl.application.abc import ApplicationABC from cpl.core.console.console import Console from cpl.dependency import ServiceProvider from test_abc import TestABC from test_service import TestService from di_tester_service import DITesterService from tester import Tester class Application(ApplicationABC): def __init__(self, services: ServiceProvider): ApplicationABC.__init__(self, services) def _part_of_scoped(self): ts: TestService = self._services.get_service(TestService) ts.run() def main(self): with self._services.create_scope() as scope: Console.write_line("Scope1") ts: TestService = scope.get_service(TestService) ts.run() dit: DITesterService = scope.get_service(DITesterService) dit.run() if ts.name != dit.name: raise Exception("DI is broken!") with self._services.create_scope() as scope: Console.write_line("Scope2") ts: TestService = scope.get_service(TestService) ts.run() dit: DITesterService = scope.get_service(DITesterService) dit.run() if ts.name != dit.name: raise Exception("DI is broken!") Console.write_line("Global") self._part_of_scoped() #from static_test import StaticTest #StaticTest.test() self._services.get_service(Tester) Console.write_line(self._services.get_services(TestABC))