Closed as not planned
Description
class Config(BaseSettings):
server_id: int
model_config = SettingsConfigDict(env_nested_delimiter="__")
@lru_cache
def get_config()->Config:
return Config()
class Services(containers.DeclarativeContainer):
config: Config = providers.Configuration()
gateways = providers.DependenciesContainer()
repositories = providers.DependenciesContainer()
cache = providers.Factory(CacheService, memcache_repository=repositories.memcache)
class MainApplication(containers.DeclarativeContainer):
args = providers.Callable(parse_arguments)
config = providers.Configuration()
core = providers.Container(Core)
gateways = providers.Container(Gateways, config=config)
repositories = providers.Container(Repositories, gateways=gateways, config=config)
services = providers.Container(Services, config=config, gateways=gateways, repositories=repositories)
if __name__ == "__main__":
config = get_config()
application = MainApplication(config=config)
application.core.init_resources()