code: def resolver(cls, var_name: str) -> FunctionType:
          
          def dec(f):
              if var_name in cls().resolvers:
                  raise ConfigurationError(
                      f'Resolver for {var_name} already registered')
              cls().resolvers[var_name] = f
              return f
  
          return dec
docs: Variable resolver decorator. Function or method decorated with it is
          used to resolve the config variable.
  
          .. note::
              Variable is resolved only once.
              Next gets are returned from the cache.
  
          :param var_name: Variable name
          :return: Function decorator