def evaluate(self, data_collection):
        # map inputs
        mapped_input_dict = self._dict_from_data_collection(self.input_mapping,
                data_collection)

        # combine auxiliary inputs with mapped inputs
        all_inputs = mapped_input_dict.copy()
        all_inputs.update(self.auxiliary_inputs)

        # evaluate meter
        outputs_dict = self.evaluate_raw(**all_inputs)

        # combine auxiliary outputs with raw outputs
        all_outputs = outputs_dict.copy()
        all_outputs.update(self.auxiliary_outputs)


        # map meter evaluations back to data_collection form
        mapped_output_data_collection = self._data_collection_from_dict(
                self.output_mapping, all_outputs)

        # combine with original data, add tags as necessary
        mapped_output_data_collection.add_tags(self.tagspace)

        return mapped_output_data_collection
arglist : DOUBLESTAR test
dataset/ETHPy150Open impactlab/eemeter/eemeter/meter/base.py/MeterBase.evaluate--crossover with--dataset/ETHPy150Open nucleic/enaml/enaml/core/parser.py/p_arglist5