"""Creation of dynamic container based on the configuration example.""" from dependency_injector import containers, providers class UserService: ... class AuthService: ... def populate_container(container, providers_config): for provider_name, provider_info in providers_config.items(): provided_cls = globals().get(provider_info["class"]) provider_cls = getattr(providers, provider_info["provider_class"]) setattr(container, provider_name, provider_cls(provided_cls)) if __name__ == "__main__": services_config = { "user": { "class": "UserService", "provider_class": "Factory", }, "auth": { "class": "AuthService", "provider_class": "Factory", }, } services = containers.DynamicContainer() populate_container(services, services_config) user_service = services.user() auth_service = services.auth() assert isinstance(user_service, UserService) assert isinstance(auth_service, AuthService)