def run_over_logs()

in 3_optimization-design-ptn/03_prompt-optimization/promptwizard/glue/paramlogger/__init__.py [0:0]


    def run_over_logs(self, method_obj):
        """
        Run the method referenced by method_obj over each entry in jsonl file present at location `file_path`.
        `id`, `inputs`, `outputs` fields in jsonl file at `file_path` can be accessed via dummy_id, dummy_input,
        dummy_output parameters respectively.

        :param method_obj:
        :return: None
        """
        def wrap(file_path, dummy_id, dummy_input, dummy_output, dummy_meta, **kwargs):
            eval_file_path = join(self.BASE_PATH, method_obj.__name__ + "_" + basename(file_path))
            args_to_log = defaultdict(dict)

            for json_obj in futil.read_jsonl_row(file_path):
                eval_result = method_obj(None,
                                         json_obj[LogLiterals.ID],
                                         json_obj[LogLiterals.INPUTS],
                                         json_obj[LogLiterals.OUTPUTS],
                                         json_obj[LogLiterals.META],
                                         **kwargs)
                args_to_log[LogLiterals.ID] = json_obj[LogLiterals.ID]
                args_to_log[LogLiterals.EVAL_RESULT] = eval_result
                args_to_log[LogLiterals.META][LogLiterals.TIMESTAMP] = datetime.now()
                futil.append_as_jsonl(file_path=eval_file_path, args_to_log=args_to_log)
        return wrap