def evaluate()

in reagent/ope/estimators/estimator.py [0:0]


    def evaluate(self) -> Mapping[str, EstimatorResults]:
        results = {}
        if self._tasks is None:
            for estimators, input in self._experiments:
                for estimator in estimators:
                    estimator_name = repr(estimator)
                    if estimator_name in results:
                        result = results[estimator_name]
                    else:
                        result = EstimatorResults()
                        results[estimator_name] = result
                    result.append(estimator.evaluate(input))
        else:
            tmp_files = []
            tmp_file_names = []
            for task in self._tasks:
                fp = tempfile.NamedTemporaryFile()
                pickle.dump(task, fp, protocol=pickle.HIGHEST_PROTOCOL)
                fp.flush()
                tmp_files.append(fp)
                tmp_file_names.append(fp.name)
            with Pool(len(tmp_file_names)) as pool:
                evaluation_results = pool.map(run_evaluation, tmp_file_names)
            for tmp_file in tmp_files:
                tmp_file.close()
            for evaluation_result in evaluation_results:
                if evaluation_result is None:
                    continue
                for estimator_name, estimator_results in evaluation_result.items():
                    if estimator_name in results:
                        result = results[estimator_name]
                    else:
                        result = EstimatorResults()
                        results[estimator_name] = result
                    for estimator_result in estimator_results:
                        result.append(estimator_result)
        return results