def resolver(cls, var_name: str) -> FunctionType:
        """
        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
        """
        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
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
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