"""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)