Я новичок в колбе и питоне. Я хочу реализовать контейнер для внедрения зависимостей и получить доступ к зависимостям внутри разных модулей. Моя первая попытка выглядит примерно так:
class AppModule(Module):
def __init__(self, app):
self.app = app
"""Configure the application."""
def configure(self, binder):
client = self.configure_cosmos_client()
binder.bind(CosmosClient, to=client, scope=singleton)
binder.bind(Dao, to=Dao, scope=singleton)
def configure_cosmos_client(self) -> CosmosClient:
return CosmosClient(
url_connection=self.app.config.get('ENDPOINT'),
auth={'masterKey': self.app.config.get('PRIMARYKEY')}
)
app = Flask(__name__)
injector = Injector([AppModule(app)])
FlaskInjector(app=app, injector=injector)
app.run()
и далее внутри модуля я хочу получить зависимость CosmosClient примерно так:
class Dao:
cosmos_client = None
def __init__(self):
self.cosmos_client = DI.get(CosmosClient)
Есть ли способ добиться этого? Обратите внимание, что «DI.get» является лишь примером, так как я не мог найти, как получить доступ к этим зависимостям, кроме введения зависимостей в маршрут.