예제 #1
0
    def _eval_func_str(self, ctx, func_str):
        """
        evals and updates context ctx for func_str
        returns evaluated ctx
        """
        assert(func_str.startswith('|'))
        funcs = func_str[1:].split('|')

        for func in funcs:
            func_name, *func_params = func.strip().split(':')
            if func_name == 'base64':  # not a real function
                ctx.encode_base64 = True
            else:
                try:
                    eval_func(func_name, ctx, *func_params)
                except KeyError:
                    raise RefError("{}: unknown function".format(func_name))

        return ctx
예제 #2
0
    def _eval_func_str(self, ctx, func_str):
        """
        evals and updates context ctx for func_str
        returns evaluated ctx
        """
        assert func_str.startswith("||")
        funcs = func_str[2:].split("|")

        for func in funcs:
            func_name, *func_params = func.strip().split(":")
            if func_name == "base64":  # not a real function
                ctx.encode_base64 = True
            else:
                try:
                    eval_func(func_name, ctx, *func_params)
                except KeyError:
                    raise RefError(f"{func_name}: unknown ref function used.")

        return ctx