code: def __call__(self, configs: "Configs"):
      if self.kind == FunctionKind.pass_configs:
          if len(self.params) == 1:
              return self.func(configs)
          else:
              return self.func()
      elif self.kind == FunctionKind.pass_kwargs:
          kwargs = {
              p.name: configs.__getattribute__(p.name)
              for p in self.params
          }
          return self.func(**kwargs)
      elif self.kind == FunctionKind.pass_params:
          args = [
              configs.__getattribute__(p.key) for p in self.pass_params
          ]
          return self.func(*args)
      elif self.kind == FunctionKind.pass_nothing:
          return self.func()
      else:
          assert False
  
file_path: labml/client/labml/internal/configs/config_function.py
imports: import inspect
  import warnings
  from enum import Enum
  from typing import List, Callable, cast, Union, Optional
  from typing import TYPE_CHECKING
  from .config_item import ConfigItem
  from .utils import get_config_names
  from ...utils.errors import ConfigsError
label_desc: Use image node_id 5 for calling the ConfigFunction obj's underlying member method code with example usage: obj.__call__(configs) and returns: self, self, self, self, self