@typed_pos_args('get_variable', (str, Disabler), optargs=[object])
@noKwargs
@noArgsFlattening
@unholder_return
def func_get_variable(self, node: mparser.BaseNode, args: T.Tuple[(T.Union[(str, Disabler)], T.Optional[object])], kwargs: 'TYPE_kwargs') -> 'TYPE_var':
    (varname, fallback) = args
    if isinstance(varname, Disabler):
        return varname
    try:
        return self.variables[varname]
    except KeyError:
        if (fallback is not None):
            return self._holderify(fallback)
    raise InterpreterException(f'Tried to get unknown variable "{varname}".')
@typed_pos_args('get_variable', (str, Disabler), optargs=[object])
@noKwargs
@noArgsFlattening
@unholder_return
def func_get_variable(self, node: mparser.BaseNode, args: T.Tuple[(T.Union[(str, Disabler)], T.Optional[object])], kwargs: 'TYPE_kwargs') -> 'TYPE_var':
    (varname, fallback) = args
    if isinstance(varname, Disabler):
        return varname
    try:
        return self.variables[varname]
    except KeyError:
        if (fallback is not None):
            return self._holderify(fallback)
    raise InterpreterException(f'Tried to get unknown variable "{varname}".')